day4作业讲解和print补充
- 菲薄纳西数列中的第n个数的值:(0),1,1,2,3,5,8,13,21...
规律:丛第三个数开始,后面每个数是前面两个的和
n = 10
n1 = 0
n2 = 1
current = 1
if n == 1:
print(1)
#从第二个数开始求,x表示当前是第几个数
for x in range(2,n+1):
# 根据前两个数的值,计算当前值
current = n1 + n2
# 挪一次,为了下次循环求下一个值
n1 = n2
n2 = current
print(current)
- 判断101到200有多少个素数,并输出所有素数
除了1和本身,不能被其他数整除的数就是素数
=======方法一
count = 0
for num in range(101,201):
# 判断是否为素数
for x in range(2,num):
if num % x == 0:
print(num,'不是素数')
# 只要在2~num-1之间找到一个能被num整除的数,就说明num不是素数
break
else:
count += 1
print(num,'是素数')
print('101-200之间素数有:',count)
=======方法二
print('====================')
for num in range(101,201):
isprime = True #取一个数假设是素数
for x in range(2,num):
if num % x == 0:
isprime = False #当在2~num-1之间找到了一个能够被num整除的数,就说明假设不成立
break
#循环结束再判断之前假设是否成立
if isprime == True:
print(num,'是素数')
- 有一个分数序列:(1/1),2/1,3/2,5/3,8/5,13/8...求这个数列的第20个分数
分子:上一个分数的分子加分母 分母:上一个数的分子
fen_zi = 1
fen_mu = 1
for x in range(1,21):
#temp = fen_zi
#fen_zi = fen_zi + fen_mu
#fen_mu + temp
fen_zi,fen_mu = fen_zi + fen_mu,fen_zi
- 给出一个正整数,要求:1.求它是几位数2.逆序打印出每位数字
规律:一个整数是几位数,就看这个整数整除10,除几次后会变成0
num = int(input('请输入一个数:'))
num2 = num
length = 0
while True:
num //= 10
length += 1
if num == 0:
break
print(length)
for _ in range(length):
print(num2%10)
num2//=10
=============补充:print的定制=========
print可以在需要输出内容的最后,添加end和sep来定制一个print打印完成后默认输出的内容
和一个print打印多个内容的时候多个内容之间的间隔
print(111, end=' ')
print(222, end='+')
print(333, end='%')
print()
#111 222+333%
print(10,23,45,sep='+')
print(12,34,56)
print('zcv','144','ewr',end='+',sep='-')
=============补充===========
python中交换两个值
a = 10
b = 20
a,b = b,a