- 讀程序捏检,總結(jié)程序的功能:
numbers=1 #變量
for i in range(0,20): # 循環(huán)次數(shù)為20 i=0~19
numbers*=2 # number=2**(i+1)
print(numbers)
答:本題輸出結(jié)果為2的20次方,其功能是求2的n次方(n=1~20)
改正:
功能是求2的20次方
注意:如果for中的變量不需要在循環(huán)體中使用供填,這個(gè)變量命名時(shí)可以用'_'命名
for _ in range(20)
print('==')
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內(nèi)能滿(mǎn)足被3整除或者被7整除但不能被21整除的個(gè)數(shù)
- 編程實(shí)現(xiàn)(for和while各寫(xiě)?遍):
- 求1到100之間所有數(shù)的和赡模、平均值
# for循環(huán)
num=0
sum1=0
for x in range(1,101):
sum1+=x
num+=1
print("1~100之間所有數(shù)的和=%d"%(sum1))
print("1~100之間所有數(shù)的平均值=%f"%(sum1/num))
結(jié)果:
1~100之間所有數(shù)的和=5050
1~100之間所有數(shù)的平均值=50.500000
# while循環(huán)
number=1
sum1=0
num=0
while number<=100:
sum1+=number
number+=1
num+=1
print("1~100之間所有數(shù)的和=%d"%(sum1))
print("1~100之間所有數(shù)的平均值=%f"%(sum1/num))
結(jié)果:
1~100之間所有數(shù)的和=5050
1~100之間所有數(shù)的平均值=50.500000
- 計(jì)算1-100之間能3整除的數(shù)的和
# for循環(huán)
sum1=0
for x in range(1,101):
if x%3==0:
sum1+=x
print(sum1)
#擴(kuò)展 0-100能被3整除的數(shù)的和
sum1=0
for x in range(0,101,3):
sum1+=x
print(sum1)
結(jié)果:
1683
1683
#while循環(huán)
sum1=0
number=1
while number<=100:
if number%3==0:
sum1+=number
number+=1
print(sum1)
結(jié)果:
1683
- 計(jì)算1-100之間不能被7整除的數(shù)的和
#for循環(huán)
sum1=0
for x in range(1,101):
if x%7:
sum1+=x
print(sum1)
結(jié)果:
4315
#while循環(huán)
sum1=0
number=1
while number<=100:
if number%7:
sum1+=number
number+=1
print(sum1)
結(jié)果:
4315
- 有?對(duì)兔?,從出?后第3個(gè)?起查吊,每個(gè)?都??對(duì)兔?谐区,?兔??到第三個(gè)?后每個(gè)????對(duì)兔?,假如兔?都不死逻卖,問(wèn)第n個(gè)?的兔?總共有多少宋列? 規(guī)律: 第?個(gè)?和第?個(gè)?的數(shù)量都是1 從第三個(gè)?開(kāi)始 n =( n-1) + (n-2) 1,1,2,3,5,8,13,21...n? 1 1 2 1 3 2 = 1+1 4 3 = 1+2 5 5 = 2+3 6 8 = 3+5 n 第(n-1)+第(n-2) n = n1 + n2 n==3 n1=1,n2=1 n=n1+n2=2 n==4 n1 = n2 n2 = n n = n1+n2
import random
number1=1
number2=1
mon=random.randint(1,12)
num=1
while num<=mon:
if num<=2:
number1=1
else:
# number1,number2=number1+number2,number1
number3=number1
number1+=number2
number2=number3
num+=1
print('第%d月共有兔子%d只'%(mon,number1))
結(jié)果
第11月共有兔子89只
- 判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)评也。判斷素?cái)?shù)的?法:??個(gè)數(shù)分別除2到sqrt(這個(gè)數(shù))炼杖,如果能被整除,則表明此數(shù)不是素?cái)?shù)盗迟,反之是素?cái)?shù)
# 沒(méi)用break:
import math
number1=True
number2=0
for x in range(101,200):
number1=True
for y in range(2,int(math.sqrt(x))+1):
if x%y==0:
number1=False;break
if number1:
number2+=1坤邪; print('素?cái)?shù)%d'%(x))
print(number2)
結(jié)果:
素?cái)?shù)101
素?cái)?shù)103
素?cái)?shù)107
素?cái)?shù)109
素?cái)?shù)113
素?cái)?shù)127
素?cái)?shù)131
素?cái)?shù)137
素?cái)?shù)139
素?cái)?shù)149
素?cái)?shù)151
素?cái)?shù)157
素?cái)?shù)163
素?cái)?shù)167
素?cái)?shù)173
素?cái)?shù)179
素?cái)?shù)181
素?cái)?shù)191
素?cái)?shù)193
素?cái)?shù)197
素?cái)?shù)199
21
- 打印出所有的?仙花數(shù),所謂?仙花數(shù)是指?個(gè)三位數(shù),其各位數(shù)字??和等于該數(shù)本身罚缕。例如:153是
?個(gè)?仙花數(shù),因?yàn)?53 = 1^3 + 5^3 + 3^3
for number in range(100,1000):
num1=number//100
num2=(number%100)//10
num3=number%10
num4=num1**3+num2**3+num3**3
if num4==number:
print('%d是水仙花'%(number))
結(jié)果:
153是水仙花
370是水仙花
371是水仙花
407是水仙花
- 有?分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個(gè)數(shù)列的第20個(gè)分?jǐn)?shù)
1 2 1 2 3 2 3 5 3 4 8 5 分?:上?個(gè)分?jǐn)?shù)的分?加分? 分?: 上?個(gè)分?jǐn)?shù)的分? fz = 2 fm = 1 fz+fm / fz
mul1=1 # 分子
mul2=1 # 分母
num1=1
while num1<=20:
mul3=mul1
mul1+=mul2 #分子
mul2=mul3 #分母
# mul1, mul2 = mul1 + mul2, mul1
num1+=1
print('%d/%d'%(mul1,mul2))
結(jié)果
17711/10946
- 給?個(gè)正整數(shù)艇纺,要求:1、求它是?位數(shù) 2.逆序打印出各位數(shù)
import random
number=random.randint(100,10000)
print(number)
for x in range(1,100):
if number//10**x:
pass
else:
print('他是%d位數(shù)'%(x))
break
chr=str(number)
for x in range(len(chr),0,-1):
print(chr[x])
簡(jiǎn)單的一種:
import random
number=random.randint(100,10000)
print(number)
chr=str(number)
long=len(chr)
print('他是%d位數(shù)'%(long))
for x in range(len(chr),0,-1):
print(chr[x-1])
結(jié)果:
7939
他是4位數(shù)
9
3
9
7
簡(jiǎn)單的一種:
4504
他是4位數(shù)
4
0
5
4