Python基础题目练习记录

题目参考自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))

输出:
在这里插入图片描述
【说明】

  1. 使用了字典类型,创建空字典用{ },创建空集合不能使用{ },必须用set()
  2. 使用了字典类型的操作符 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中每遍历一次此元素时,字典对应的值加一个个数
  3. items=list(counts.items())使用list,将counts字典的所有键值对信息转换为列表类型
  4. 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))

输出:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值