初学Python必备十大经典案例(初学者必看)❃✿❈❉❀❁下
第一题
答案
def Hare(i):
if i == 1 or i == 2:
return 2
return Hare(i - 1) + Hare(i - 2)
for j in range(1, 13):
print(f"第{j}个月的兔子总数为{Hare(j)}")
运行结果
第1个月的兔子总数为2
第2个月的兔子总数为2
第3个月的兔子总数为4
第4个月的兔子总数为6
第5个月的兔子总数为10
第6个月的兔子总数为16
第7个月的兔子总数为26
第8个月的兔子总数为42
第9个月的兔子总数为68
第10个月的兔子总数为110
第11个月的兔子总数为178
第12个月的兔子总数为288
第二题
答案
a = 1
for i in range(9):
a = (a + 1) * 2
if i == 8:
print(f"第一天一共摘了{a}个桃子")
运行结果
第一天一共摘了1534个桃子
第三题
答案
value = "147963123987554682469173//c/d/r/g/h/w/j/a/c/g a b d t 4 k g ShSuUlT"
my_list = []
for i in value:
if i not in my_list:
my_list.append(i)
else:
continue
print(my_list)
a = 0
for j in my_list:
for n in value:
if j == n:
a += 1
else:
continue
print(f"{j}的个数是{a}")
a = 0
运行结果
['1', '4', '7', '9', '6', '3', '2', '8', '5', '/', 'c', 'd', 'r', 'g', 'h', 'w', 'j', 'a', ' ', 'b', 't', 'k', 'S', 'u', 'U', 'l', 'T']
1的个数是3
4的个数是4
7的个数是3
9的个数是3
6的个数是3
3的个数是3
2的个数是2
8的个数是2
5的个数是2
/的个数是11
c的个数是2
d的个数是2
r的个数是1
g的个数是3
h的个数是2
w的个数是1
j的个数是1
a的个数是2
的个数是8
b的个数是1
t的个数是1
k的个数是1
S的个数是2
u的个数是1
U的个数是1
l的个数是1
T的个数是1
第四题
答案
a = input("请输入一个字符串: ")
def func(n):
if n == -1:
return " "
return a[n] + func(n - 1)
print(func(len(a) - 1))
运行结果
请输入一个字符串: ABCDE
EDCBA
第五题
答案
for i in range(1, 10):
for j in range(1, i + 1):
if i > j:
print(f"{i}*{j}={i*j} ", end="")
else:
print(f"{i}*{j}={i*j} ", "")
运行结果
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
第六题
答案
new_list = [1, 2, 3, 4]
list = []
my_list = []
for i in new_list:
for j in [x for x in new_list if x != i]:
for y in [m for m in new_list if m != i and m != j]:
list.append(i)
list.append(j)
list.append(y)
my_list.append(list)
list = []
print(f"四个数字:1、2、3、4,能组成{len(my_list)}个互不相同且无重复数字的三位数")
print("分别是:")
print(my_list)
运行结果
四个数字:1、2、3、4,能组成24个互不相同且无重复数字的三位数
分别是:
[[1, 2, 3], [1, 2, 4], [1, 3, 2], [1, 3, 4], [1, 4, 2], [1, 4, 3], [2, 1, 3], [2, 1, 4], [2, 3, 1], [2, 3, 4], [2, 4, 1], [2, 4, 3], [3, 1, 2], [3, 1, 4], [3, 2, 1], [3, 2, 4], [3, 4, 1], [3, 4, 2], [4, 1, 2], [4, 1, 3], [4, 2, 1], [4, 2, 3], [4, 3, 1], [4, 3, 2]]
第七题
答案
for i in range(2, 1001):
my_list = []
for j in range(1, i):
if i % j == 0:
my_list.append(j)
else:
continue
if sum(my_list) == i:
print(f"1-1000以内的完数有:{i}")
else:
continue
运行结果
1-1000以内的完数有:6
1-1000以内的完数有:28
1-1000以内的完数有:496
第八题
答案
my_list = [0, 1, 2, 3, 6, 5, 4, 7]
value1 = int(len(my_list) - 1)
new_list = []
for i in range(1, 9):
for n in my_list:
if n % 2 != 0:
new_list.append(n)
value = int(len(new_list))
if i == 1:
print(f"{i}位数的奇数个数为{value}")
new_list = []
elif i == 2:
er = value * value1
print(f"{i}位数的奇数个数为{er}")
new_list = []
elif i == 3:
san = value * value1 * (value1 + 1) ** (i - 2)
print(f"{i}位数的奇数个数为{san}")
new_list = []
elif i == 4:
si = value * value1 * (value1 + 1) ** (i - 2)
print(f"{i}位数的奇数个数为{si}")
new_list = []
elif i == 5:
wu = value * value1 * (value1 + 1) ** (i - 2)
print(f"{i}位数的奇数个数为{wu}")
new_list = []
elif i == 6:
liu = value * value1 * (value1 + 1) ** (i - 2)
print(f"{i}位数的奇数个数为{liu}")
new_list = []
elif i == 7:
qi = value * value1 * (value1 + 1) ** (i - 2)
print(f"{i}位数的奇数个数为{qi}")
new_list = []
elif i == 8:
ba = value * value1 * (value1 + 1) ** (i - 2)
print(f"{i}位数的奇数个数为{ba}")
sum = value + er + san + si + wu + liu + qi + ba
print(f"0—7所能组成的奇数个数一共有{sum}")
运行结果
1位数的奇数个数为4
2位数的奇数个数为28
3位数的奇数个数为224
4位数的奇数个数为1792
5位数的奇数个数为14336
6位数的奇数个数为114688
7位数的奇数个数为917504
8位数的奇数个数为7340032
0—7所能组成的奇数个数一共有8388608
第九题
答案
def hight(i):
if i == 1 or i == 2:
return 100
return hight(i - 1) / 2
my_list = []
for j in range(1, 11):
my_list.append(hight(j))
print(f"第10次落地时,共经过{sum(my_list)}米")
print(f"第十次反弹了{hight(10)}米")
运行结果
第10次落地时,共经过299.609375米
第十次反弹了0.390625米
第十题
答案
value = int(input("请输入几个人围成一圈: "))
my_list = []
a = -1
ace = True
for i in range(1, value + 1):
my_list.append(i)
while ace:
for j in range(3):
if len(my_list) == 1:
print(f"最后留下的原来是第{my_list[0]}号")
ace = False
break
if a == len(my_list) - 1:
a = -1
a += 1
if j == 2:
my_list.remove(my_list[a])
a -= 1
运行结果
请输入几个人围成一圈: 50
最后留下的原来是第11号