python编程定义了一个循环,该循环要求名称、数字和要跳过的数字

python编程定义了一个循环,该循环要求名称、数字和要跳过的数字,python,loops,count,Python,Loops,Count,循环,请求名称、数字和要跳过的数字。 输入您的姓名:Alex 输入您的起始号码:5 你想跳过哪个号码:3 你还有更多的数字要跳过吗(是/否):是 请仅输入Y或N。 你有更多的号码要跳过吗(是/否):是 您想跳过哪个号码:1 您是否有更多数字要跳过(是/否):N 亚历克斯从5开始数数。 开始 5.4.2.0! 我的代码如下,但我认为任何人都可以更改它,因为我的代码看起来不太好: text = input("Enter your name: ") print(text) text

循环,请求名称、数字和要跳过的数字。 输入您的姓名:Alex 输入您的起始号码:5 你想跳过哪个号码:3 你还有更多的数字要跳过吗(是/否):是 请仅输入Y或N。 你有更多的号码要跳过吗(是/否):是 您想跳过哪个号码:1 您是否有更多数字要跳过(是/否):N 亚历克斯从5开始数数。 开始 5.4.2.0!

我的代码如下,但我认为任何人都可以更改它,因为我的代码看起来不太好:

text = input("Enter your name: ")
print(text)
text1 = input("Input your starting number:")
number1 = int(text1)
text2 = input("What number do you want to skip:")
number2 = int(text2)

def count_down_skip(start, skip=0):

    
    return [num for num in reversed(range(start + 1)) if num != skip]


print("... ".join(map(str, count_down_skip(5, 3))) + "!")

def yes_or_no(question):
    reply = str(input(question+' (y/n): ')).lower().strip()
    if reply[0] == 'y':
        return 1
    elif reply[0] == 'n':
        return 0
    else:
        return yes_or_no("Please only input Y or N. ")


while True:
    # DRAW PLOT HERE;
    if(yes_or_no('Do you have more numbers to skip')):
      
        break
text3 = input("What number do you want to skip:")
number3 = int(text2)

def count_down_skip(start, skip=0):
    """
    Counting down a sequence with a skip value,
    from a defined start point in reversed order.

    Args:
        start: start loop index.
        skip: number to skip over.

    Returns:
        (list): skipped list.

    """
    return [num for num in reversed(range(start + 1)) if num != skip]


print("... ".join(map(str, count_down_skip(5, 1))) + "!")

def yes_or_no(question):
    reply = str(input(question+' (y/n): ')).lower().strip()
    if reply[0] == 'y':
        return 0
    elif reply[0] == 'n':
        return 1
    else:
        return yes_or_no("Please only input Y or N. ")


while True:
    # DRAW PLOT HERE;
    if(yes_or_no('Do you have more numbers to skip')):
        break
print("Alex is starting to count from 5") 
print("start")

#print("... ".join(map(str, count_down_skip(5, 1))) + "!")

def count_down_skip(start, skip = []):
    return [num for num in reversed(range(start + 1)) if num not in skip]

print("... ".join(map(str,count_down_skip(5,[1,3]))) + "!")

def count_down_skip(start, skip=0):

    return [num for num in reversed(range(start + 1)) if num not in skip]


print("... ".join(map(str, count_down_skip(10, [1,4,3]))) + "!")

我想如果我想跳过一些数字,比如从10到0,而不使用143,我应该使用类似number()或int()的东西,对吗?有人能帮我修改代码吗?它可以工作,但有一点不完美。

很好的尝试,我会这样做,请参见以下内容:

def main():
    skipable = set()

    name = input("What is your name?")
    max_number = input("What number do you want to count down from?")
    if type(int(max_number)) != int:
        raise Exception('You done messed up, please enter an integer next time')
    max_number = int(max_number)
    skipping = True
    while skipping:
        skip = input("Would you like to skip any numbers in the count down? Y/N")
        if skip == 'Y':
            number_to_skip = input("What number would you like to skip")
            try:
                number_to_skip = int(number_to_skip)
                skipable.add(number_to_skip)
            except Exception as e:
                print('Try entering an integer next time')
        elif skip == 'N':
            skipping = False
        else:
            print('Please Enter Y or N')

    numbers_to_print = [i for i in range(0, max_number+1) if i not in skipable]
    print(f'{name} is counting:')
    numbers_to_print.sort(reverse=True)
    print('...'.join(map(str, numbers_to_print)) + '!')


if __name__ == '__main__':
    main()

结果如下所示:

What is your name?>? James
What number do you want to count down from?>? 5
Would you like to skip any numbers in the count down? Y/N>? Y
What number would you like to skip>? 2
Would you like to skip any numbers in the count down? Y/N>? N
James is counting:
5...4...3...1...0!
编辑 哦,如果你想让它倒计时,你可以倒下来扔一个:

numbers_to_print.sort(reverse=True)
在那里,它将对列表进行降序排序


编辑2。更改了上面的代码以更好地匹配问题

您真是太棒了!结果很好。我在print.sort中添加了数字(reverse=True)。但是如果我希望输出格式是5…4…2…0!打印应该是打印(“…”.join(map(str,i))+“!”)对吗?!是的,这看起来是可行的映射函数需要一个函数和一个可写的,让我修改上面的代码,修改上面的代码,试试看。这有道理吗?你是最棒的!!!!!成功了!非常感谢你!愿你身边所有幸运的事物永永远远!