[博学谷学习记录]超强总结,用心分享|人工智能重启之路--Python基础(一)--第四周学习记录
Python基础习题(一)
题目 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
a=input('被加数字:')
n=int(input('加几次?:'))
res=0
for i in range(n):
res+=int(a)
a+=a[0]
print('结果是:',res)
题目一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
height = 100
distance = 0
for i in range(10):
a = height # 原高度
height = height / 2 # 弹起高度
distance = distance + height + a # 累计总高度
else:
distance = distance - height # 减掉最后一次弹起高度
print(f'弹起高度为:{height}') # 弹起高度为:0.09765625
print(f'经过的距离为{distance}') # 经过的距离为299.609375
题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,第一天共摘了多少。
# 方法一:
'''
思路:1、函数要干什么?--->求第一天摘了多少桃子
2、递归出口,已知条件:第十天,剩一个桃子,即t == 10,n = 1
3、等价关系:
第10天还剩:1
第9天还剩:(f(10)+1)*2=4
第8天还剩:(f(9)+1)*2=10
......
第n天:(f(n+1)+1)*2
'''
# 定义一个函数表示第n天剩余桃子数
def taozi(n):
if n == 10:
return 1
return (taozi(n+1)+1)*2
num = taozi(1)
print(f'猴子一共摘了{num}个桃子')
# 方法二2:
peach=1
for i in range(9):
peach=(peach+1)*2
print(peach)
题目输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。程序分析利用for 语句,条件为输入的字符不为 ‘n’
string=input("输入字符串:")
alp=0
num=0
spa=0
oth=0
for i in range(len(string)):
if string[i].isspace():
spa+=1
elif string[i].isdigit():
num+=1
elif string[i].isalpha():
alp+=1
else:
oth+=1
print('space: ',spa)
print('digit: ',num)
print('alpha: ',alp)
print('other: ',oth)
题目 输出 9*9 乘法口诀表。
for i in range(1,10):
for j in range(1,i+1):
print('%d*%d=%2ld '%(i,j,i*j),end='')
print()
使用列表嵌套,完成8名老师随机分配3个办公室。
提示:
定义一个列表存放8位老师
names = ['A','B','C','D','E','F','G','H'],
定义一个列表用来保存3个办公室offices = [[],[],[]]
import random
# 定义一个列表用来保存3个办公室
offices = [[],[],[]]
# 定义一个列表用来存储8位老师的名字
names = ['A','B','C','D','E','F','G','H']
for name in names:
index = random.randint(0,2)
offices[index].append(name)
i = 1
for tempNames in offices:
print("办公室%d的人数为:%d" % (i,len(tempNames)))
i += 1
for name in tempNames:
print("%s" % name, end="")
print("n")
定义函数findall,要求返回符合要求的所有位置的起始下标,如字符串"helloworldhellopythonhelloc++hellojava"需要找出里面所有的"hello"的位置,返回的格式是一个元组,即:(0,10,21,29)
li = 'helloworldhellopythonhelloc++hellojava'
def find_all(li):
ret_li = []
start_index = 0
while True:
ret = li.find("hello",start_index)
if ret != -1:
ret_li.append(ret)
start_index = ret + 5
else:
break
return ret_li
print(find_all(li))



