基礎
讀程序,總結(jié)程序的功能:
numbers=1
for i in range(0,20):
numbers*=2
print(numbers)
解:
2的20次冪
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(包括100)的能夠被3或7整除,并且不能被21整除的數(shù)的個數(shù)
3.求1到100之間所有數(shù)的和、平均值
sum1 = 0
for i in range(101):
sum1 += i
print(sum1)
ave = sum1 / 100
print(ave)
結(jié)果:
5050
50.5
4.計算1-100之間能3整除的數(shù)的和
sum1 = 0
for i in range(101):
if not i%3:
sum1 += i
print(sum1)
結(jié)果:
1683
5.計算1-100之間不能被7整除的數(shù)的和
sum1 = 0
for i in range(101):
if i%7:
sum1 += i
print(sum1)
結(jié)果:
4315
6.有一對兔子,從出生后第3個月起,每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問第n個月的兔子總共有多少?
規(guī)律: 第一個月和第二個月的數(shù)量都是1 從第三個月開始 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
循環(huán):
n = input('請輸入要第幾個月的兔子數(shù):')
sum1 = 1
sum2 = 1
for i in range(3, int(n)+1):
if 3 > int(n) >= 1:
print('1')
else:
temp = sum1 + sum2
sum1 = sum2
sum2 = temp
print(temp)
結(jié)果:
請輸入要第幾個月的兔子數(shù):6
8
遞歸:
def rabbits(n):
if n<=2:
return 1
else:
return rabbits(n-1)+rabbits(n-2)
n = input('請輸入要第幾個月的兔子數(shù):')
print(rabbits(int(n)))
結(jié)果:
請輸入要第幾個月的兔子數(shù):6
8
7.判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。判斷素數(shù)的方法:用一個數(shù)分別除2到sqrt(這個數(shù)),如果能被整除,則表明此數(shù)不是素數(shù),反之是素數(shù)
import math
list1 = []
for index1 in range(101, 200):
num_sqrt = int(math.sqrt(index1))
for index2 in range(2, num_sqrt+1):
if not index1%index2:
break
elif index2==num_sqrt:
list1.append(index1)
print(list1)
結(jié)果:
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
8.打印出所有的水仙花數(shù),所謂水仙花數(shù)是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個水仙花數(shù),因為153 = 1^3 + 5^3 + 3^3
list1 = []
for num in range(100, 999):
num_str = str(num)
if num==int(num_str[0]) ** 3 + int(num_str[1]) ** 3 + int(num_str[2]) ** 3:
list1.append(num)
print(list1)
結(jié)果
[153, 370, 371, 407]
9.有一分數(shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數(shù)列的第20個分數(shù)
1 2 1
2 3 2
3 5 3
4 8 5
分子:上一個分數(shù)的分子加分母 分母: 上一個分數(shù)的分子
fz = 2 fm = 1
fz+fm / fz
denominator = 1
numerator = 2
index = 1
flag = 20
while index!=flag:
temp = denominator
denominator = numerator
numerator = temp + numerator
index += 1
print(numerator, '/', denominator)
結(jié)果:
17711 / 10946
10.給一個正整數(shù),要求:1、求它是幾位數(shù) 2.逆序打印出各位數(shù)字
num = input('請輸入一個整數(shù):')
print('%s的長度是:%s'%(num,len(num)))
print('逆序輸出為:', num[::-1])
結(jié)果:
請輸入一個整數(shù):12356
12356的長度是:5
逆序輸出為: 65321