python每日一练(7)

简介: python每日一练(7)

(1) 统计字符🍄

输入一行字符,分别统计出其中英文字母空格、数字和其它字符的个数

# (1)统计字符
# 输入一行字符,分别统计出其中英文字母空格、数字和其它字符的个数
string = input ("请输入字符串")
char = 0
number = 0
space = 0
other = 0
for i in  string:
#调用isalpha方法进行计数
    if i.isalpha():
        char += 1
#调用isdigit方法进行计数
    elif i.isdigit():
        number += 1
#调用isspace方法进行计数
    elif i.isspace():
        space += 1
    else:
        other += 1
print(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 = 1
for 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 = 0
up = 2
down = 1
for i in range(20):
    sum += up / down
#用一个变量 a 储存原来的变量down
    a = down
# 将原来的 up 赋值给 down --- 就是现在的 down
    down = up
#将原来的 up(即现在的down)和原来的 down 相加 --- 得到现在的up
    up = down + a
print("这个数列前29项的和为%.2f" %sum)

之前做题有总结过保留小数位的方法,保留两位小数 --- > "%.2f"  %sum

若有遗忘可以跳转到👉:🔗http://t.csdnimg.cn/XdF0c

分享我最近的精神状态

自创表情包

使用它的背后故事

就是本周的精神状态以及日常摸鱼状态啦~

目录
相关文章
|
Python 人工智能
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
267 1
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
|
Shell Unix Linux
Linux 终端命令之文件浏览(3) less
Linux 终端命令之文件浏览(3) less
199 0
Linux 终端命令之文件浏览(3) less
|
Rust
Rust 编程小技巧摘选(8)
Rust 编程小技巧摘选(8)
384 0
Rust 编程小技巧摘选(8)
|
算法 C++ 机器人
力扣 C++|一题多解之动态规划专题(1)
力扣 C++|一题多解之动态规划专题(1)
146 0
力扣 C++|一题多解之动态规划专题(1)
|
C++ Python 索引
Python Numpy入门基础(二)数组操作
Python Numpy入门基础(二)数组操作
206 0
Python Numpy入门基础(二)数组操作
|
C++ 存储
力扣C++|一题多解之数学题专场(1)
力扣C++|一题多解之数学题专场(1)
200 0
力扣C++|一题多解之数学题专场(1)
|
Java Go C++
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
177 0
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
|
Java Go C++
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
205 0
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
|
Java Go C++
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
192 0
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
|
Java Go Rust
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
174 0
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II

推荐镜像

更多