关于使Python代码更简洁的建议

关于使Python代码更简洁的建议,python,Python,我刚刚开始学习python,刚刚编写了一个程序,允许用户查找斐波那契序列的第n项。我已经测试过了,它看起来像预期的那样工作。我的问题是如何使我的代码更简洁或更具python风格。如有任何建议或提示,将不胜感激 values = [0,1] n1 = 2 while True: # input and loop to limit the input range. try: n = int(input('Please enter p

我刚刚开始学习python,刚刚编写了一个程序,允许用户查找斐波那契序列的第n项。我已经测试过了,它看起来像预期的那样工作。我的问题是如何使我的代码更简洁或更具python风格。如有任何建议或提示,将不胜感激

values = [0,1]
n1 = 2

while True:                      # input and loop to limit the input range.
    try:
        n = int(input('Please enter position of fibonacci sequence you wish to know.'))
        break
    except:
        print('That\'s not a valid input')

if n < 3:                                #calculation block
    print (n)

else:
    while n1 != n:
        n2 = values[0] + values[1]
        values[0] = values[1]
        values[1] = n2
        n1 +=1

    print (n2)
值=[0,1]
n1=2
为True时:#输入并循环以限制输入范围。
尝试:
n=int(输入('请输入您希望知道的斐波那契序列的位置'))
打破
除:
打印('这不是有效的输入')
如果n<3:#计算块
打印(n)
其他:
而n1!=n:
n2=值[0]+值[1]
值[0]=值[1]
数值[1]=n2
n1+=1
打印(n2)

使用函数会使您的代码更加“pythonic”-简洁可能不是您的首要任务:

def get_user_input():
    while True:                      # input and loop to limit the input range.
        try:
            n = int(input('Please enter position of fibonacci sequence you wish to know.'))
            return n
        except:
            print('That\'s not a valid input')


def get_nth_fib_number(nth):
    values = [0, 1]

    current_fib = 2

    while current_fib <= nth:
        values.append(values[-2] + values[-1])
        current_fib += 1

    return values[nth]

get_nth_fib_number(get_user_input())
def get_user_input():
为True时:#输入并循环以限制输入范围。
尝试:
n=int(输入('请输入您希望知道的斐波那契序列的位置'))
返回n
除:
打印('这不是有效的输入')
def获取第n个光纤编号(第n个):
值=[0,1]
电流_fib=2
虽然目前的谎言,这可能是更好的。