题目参考自http://www.zhangdongshengtech.com/article-types/8/?page=3
1. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和
a = 2
b = 1
sum = a/b
print("【{}】{}/{},{}".format('1',a,b,sum))
for i in range(1,20):
a=(a+b)
b=(a-b)
sum+=(a/b)
print("【{}】{}/{},{}".format(i+1,a,b,sum))
输出:
在屏幕上输出一个菱形,如下:
n = eval(input("请输入奇数n:"))
for i in range(1,n+1,2):
s = '*'*i
print("{:^{}}".format(s,n))
for i in range(n-2,0,-2):
s = '*'*i
print("{:^{}}".format(s,n))
输出:
2. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
读题错误,以下代码做成了:输入一串字符串,统计其中每个字符出现的次数……
s = "fk;soejg'p [wirfsddsghfakkgj paopwefwhifwf alkfksghowoq"
counts={}
for i in range(len(s)):
counts[s[i]] = counts.get(s[i],0)+1
items=list(counts.items())
for i in range(len(items)):
word,count=items[i]
print("{}:{}".format(word,count))
输出:
【说明】
- 使用了字典类型,创建空字典用{ },创建空集合不能使用{ },必须用set()
- 使用了字典类型的操作符 counts[s[i]] = counts.get(s[i],0)+1,表示从字符串s中逐一获取每个字符,作为counts字典的键信息;counts.get(k,),表示在counts字典中获取键k对应的值,如果没有,则返回默认值。
counts[s[i]] = counts.get(s[i],0)+1
即指,从s字符串中逐一遍历每一个元素放入counts字典的键信息中,如果字典先前无此键信息,则记录键值的个数为0个,从s中每遍历一次此元素时,字典对应的值加一个个数 items=list(counts.items())
使用list,将counts字典的所有键值对信息转换为列表类型for i in range(len(items)): word,count=items[i]
将列表元素再次拆分
3. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
a = 1
print("第10天:1个")
for i in range(9,0,-1):
a = (a+1)*2
print("第{}天:{}个".format(i,a))
输出:
4. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,
求它在第10次落地时,共经过多少米?第10次反弹多高?
a = 100
s = 100
h = a/2
print("第1次落地,共经过{}米,第1次反弹{}米".format(s,h))
for i in range(2,10+1):
s = s + h*2
h = h/2
print("第{}次落地,共经过{:.2f}米,第{}次反弹{:.2f}米".format(i,s,i,h))
输出: