python入门基础常见问题,代码总和整理

一行代码实现九九乘法表:

print('\n'.join(['\t'.join([f'{y} * {x} = {x * y}' for y in range(1, x+1)]) for x in range(1,10)]))

print('\n'.join(['\t'.join(["%2s*%2s=%2s"%(j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))

实现九九乘法表

row=1
while row<=9:
    col=1
    while col<=row:
        print('{}*{}={}'.format(col,row,col*row),end='\t')
        col +=1
    print()
    row +=1

斐波那契数列

有一个数列(例如:1,1,2,3,5,8,13...),使用循环求出数列的第n个数,n为从键盘录入的

n=eval(input('请输入n的值:'))
n1=1
n2=1
count=3
if n==1 or n==2:
    print(f'第{n}个数为:1')
else:
    while count <= n:
        nth=n1+n2
        n1=n2
        n2=nth
        count +=1
print(f'斐波那契数列的第{n}个数为{nth}')

1.使用递归函数实现:求第n个斐波那契数列

def fib(n):
    if n == 1 or n == 2:
        return 1 
    return fib(n-1) + fib(n-2)

2.求前n个斐波那契数列:

n1=1
n2=1
lst=[0,1,1]
i=4
while i <=1000:
    nth = n1+n2
    n1=n2
    n2=nth
    i +=1
    lst.append(nth)
print(lst)

打印出正三角形

for i in range(10):  行
    for j in range(0, 10 - i):   列
        print(end="-")
    for k in range(10 - i, 10):
        print("*", end=" ")
    print("")

求1+2!+3!+...+20!的和

sum = 0
t = 1
for i in range(1,21):
    t *= i
    sum += t
print(sum)

百钱买百鸡

for I in range(0,21):
    for j in range(0,34):
        for m in range(0,100,3):
            if i+j+m==100and5*i+3*j+m//3==100:
                print(i,j,m)

递归求前n个斐波那契数列:

#默认值带出小于或等于2的值
resList = [0,1,1]
def flag(n):
    #递归到最后,因为flag(n-1) + flag(n-2)同时执行,n的值为1或2,直接return结果1
    if n == 1 or n == 2:
        return 1
    a = flag(n-1) + flag(n-2)
    #判断如果追加的值小于集合最后一个值时,则不添加值
    if(a > resList[-1]):
        resList.append(a)
    return a
n = 10
#因为resList集合有默认值,所以对于n小于2时,不执行函数 flag(),直接在外部处理
if n < 0:
    print("n不可以小与0")
elif n == 0:
    print("0")
elif n == 1:
    print("0,1")
else:
    flag(n)
    print(resList)

你可能感兴趣的:(python入门基础常见问题,代码总和整理)