1.读这段程序
numbers=1
for i in range(0,20):
numbers*=2
print(numbers)
1求20个2相乘的积。2**20
2.当i取值0时,numbers = numbers *2,numbers = 1乘2
3.当i取值1时,numbers = numbers *2,numbers = 2乘2
……
4.当i取值19时,numbers = numbers *2,numbers = numbers乘2
2. 读这段程序
summation=0
num=1
while num<=100:
if (num%3==0 or num%7==0) and num%21!=0:
summation += 1
num+=1
print(summation)
1.100以内,能被3整除或被7整除时,同时不能整除21的数的个数
2.当num<=100时,如果num能被3整除或被7整除时,同时不能整除21时;则summation = summation + 1 ;num = num + 1.
3.当 num =101时, 循环条件为False,结束循环。
4.打印summation的值
3.编程
1.for 求1到100之间所有数的和、平均值
num = 0
cishu = 0
for numcs in range(2, 100):
num += numcs
cishu += 1
juz = num / cishu
print('1-100之间数的和是:%d;平均值等于%.1f' % (num, juz))
1.while 求1到100之间所有数的和、平均值
num = 0
cishu = 0
dijc = 2
while dijc < 100:
num = dijc + num
dijc += 1
cishu += 1
juz = num / cishu
print('1-100之间数的和是:%d;平均值等于%.1f' % (num, juz))
2.for 计算1-100之间能3整除的数的和
he = 0
for cisu in range(2, 100):
if cisu % 3 == 0:
he += cisu
print('和是:%d' % he)
2.while 计算1-100之间能3整除的数的和
he = 0
cisu = 2
while cisu <= 99:
if cisu % 3 == 0:
he += cisu
cisu += 1
print('和是:%d' % he)
3.for 计算1-100之间不能被7整除的数的和
he = 0
for cis in range(2,100):
if cis % 7 != 0:
he += cis
cis += 1
print('和是:%d' % he) ####4214
3.while 计算1-100之间不能被7整除的数的和
he = 0
cisu = 2
while cisu <= 99:
if cisu % 7 != 0:
he += cisu
cisu += 1
print('和是:%d' % he) ####4214
稍微困难
1. F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2) 后一个数 = 前两个数的和
list3 = [1, 1]
xh = 0
num = int(input('请输入你要找的斐波那契数列位数:'))
if num <= 2:
print('结果为:1')
elif num > 2:
for x in range(0, num): # 位数是多少就运行多少次
listxuh = int(list3[x]) + int(list3[x + 1])
list3.append(listxuh)
xh += 1
if xh == num:
jig = list3[xh - 1]
print('结果是:%d' % jig)
2.判断101-200之间有多少个素数,并输出所有素数。判断素数的方法:用一个数分别除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数
listjg = []
for num2 in range(101, 201, 2):
h = 2
for num3 in range(2, num2):
num = num2 % num3
h += 1
if num == 0:
break
elif h >= num2 and num != 0:
listjg.append(num2)
print(len(listjg))
print('素数列表:', listjg)
3. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是个水仙花数,因为153 = 1^3 + 5^3 + 3^3 111---999
list2 = []
for x in range(111, 1000):
gw = x % 10
sw = x // 10 % 10
bw = x // 100
if x == gw ** 3 + sw ** 3 + bw ** 3:
list2.append(x)
print('水仙花数:', list2)
4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数分数⼦
- 分子:上一个分数的分子加分母
- 分母: 上一个分数的分子 fz = 2 fm = 1 fz+fm / fz
a. 分子 2 3 5 8 13 21
a. 分母 1 2 3 5 8 13
fz = [2]
fm = [1]
for x in range(0, 20):
fm.append(fz[x])
fz.append(fz[x] + fm[x])
print('%d/%d' % (fz[19], fm[19]))