python每日一练(7)
🌈write in front🌈
🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流.
🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如需转载还请通知⚠️
📝个人主页:Aileen_0v0🧸—CSDN博客
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:Aileen_0v0🧸的PYTHON学习系列专栏——CSDN博客
🗼我的格言:"没有罗马,那就自己创造罗马~"
目录
(1) 统计字符🍄
输入一行字符,分别统计出其中英文字母空格、数字和其它字符的个数
# (1)统计字符# 输入一行字符,分别统计出其中英文字母空格、数字和其它字符的个数string = input ("请输入字符串")char = 0number = 0space = 0other = 0for i in string:#调用isalpha方法进行计数 if i.isalpha(): char += 1#调用isdigit方法进行计数 elif i.isdigit(): number += 1#调用isspace方法进行计数 elif i.isspace(): space += 1 else: other += 1print(f"英文字符有{char}个,数字有{number}个,空格有{space}个,其他字符有{other}个.")
(2)落体反弹问题🌽
每次落地后反一球从100米高度自由落下,跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米? 第10次反弹多高?
通过分析小球的运动轨迹,我们可以看到,第一次小球落下的高度是100m
后面都是前一次的高度的一半进行来回弹跳
# 落体反弹问题# 每次落地后反一球从100米高度自由落下,跳回原高度的一半;# 再落下,求它在第10次落地时,共经过多少米?# 第10次反弹多高?#初始高度high = 100#初始弹跳次数count = 0#创建一个空列表 a 装每一次的来回路程a = []#利用for循环让它来回跳跃10次--从0-9一共10次for count in range(0,10): #根据来回示弹跳的情况进行分情况讨论 #第一次只有降落,所以小球运动高度为100 if count == 0: high = 100 a.append(high) count += 1 else: #第二次及后面都是前一次运动高度的一半,并且小球来回弹跳2次 high /= 2 a.append(2*high)#打印出每一次小球运动的高度print(a)# 它在第10次落地时,共经过多少米?--我们可以利用sum函数进行求和print(sum(a))# 第10次反弹高度---是第十次来回的一半 通过下标访问列表第十个元素print( a[9]/2 )
在Python中,使用()和[]有不同的含义。
()通常表示函数的调用或者元组的创建,例如:
result = my_function() # 调用函数my_tuple = (1, 2, 3) # 创建元组
[]通常表示列表的创建或者通过索引获取列表中的元素,例如:
my_list = [1, 2, 3] # 创建列表my_element = my_list[0] # 获取列表中第一个元素
在Python中,元组是不可变的,而列表可以改变。因此,如果需要创建一个不可变的元素集合,应该使用()来创建元组。如果需要创建一个可变的元素集合,应该使用[]来创建列表。
(3)猴子吃桃问题🍑
猴子第一天摘下若千个桃子,当即吃了一半,还不过瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求原来它一共摘了多少个桃子。
第十天剩下1个桃子,我们可以先假设第九天有p个,第十天表示为a = 1,根据规律,我们可以知道,猴子每天吃掉前一天桃子数量的一半多1个,所以第十天可以表示为(p/2)-1=1,我们可以反推出第九天p = (1+1)*2=4个,即p = (a+1)*2,这就是前一天(n)和后一天(n+1)的桃子数量关系,
写成函数表示就是: f (n) = (f (n + 1) + 1) * 2
tip1:递归
#递归def fun(n):# n 为天数 if n == 10: #结束条件 return 1 else: return (fun(n+1)+1)*2 # 递推公式print(fun(1))
tip2:循环
#循环a = 1for x in range(1,11): print("第",11-x,"天剩",a,"个桃子") a = (a + 1) * 2
(4) 求指定数列的和🍅
有一分数序列: 2/1,3/2,5/3,8/5,13/821/13...求出这个数列的前20项之和。
# 求指定数列的和# 有一分数序列: 2/1,3/2,5/3,8/5,13/821/13...# 求出这个数列的前20项之和。sum = 0up = 2down = 1for i in range(20): sum += up / down#用一个变量 a 储存原来的变量down a = down# 将原来的 up 赋值给 down --- 就是现在的 down down = up#将原来的 up(即现在的down)和原来的 down 相加 --- 得到现在的up up = down + aprint("这个数列前29项的和为%.2f" %sum)
之前做题有总结过保留小数位的方法,保留两位小数 --- > "%.2f" %sum
若有遗忘可以跳转到👉:🔗http://t.csdnimg.cn/XdF0c
分享我最近的精神状态
自创表情包
使用它的背后故事
就是本周的精神状态以及日常摸鱼状态啦~
来源地址:https://blog.csdn.net/Aileenvov/article/details/133813319
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341