1.斐波那契数列
def fib(n):if n == 1 or n == 2:return 1else:return fib(n - 1) + fib(n - 2)
n = int(input("输入要打印的斐波那契数的项数: "))
for i in range(1,n+1):print(fib(i),end=" ")
2.计算等差数列前n项和
使用列表保存一个首项为2,公差为3的前n项,计算前n项和
n=int(input("输入等差数列的项数:"))
a=[]
a.append(2)
for i in range(n-1):a.append(a[i]+3)
print(a)
sum=0
for i in a:sum=sum+i
print(sum)
3.寻找幸运数字
用列表存储n个数字,找出6的倍数将他们存储到新列表中,并在原列表中删除这些元素,返回原列表和新列表。
n=int(input("存储数字个数:"))
nums=list(range(1,n+1))#使用range函数将range结果转化为列表
luck=nums[5::6]#设置步长为6,从第六个元素开始,每隔6个元素取出一个
for i in luck:nums.remove(i)
print("幸运数字:",luck)
print("nums剩余数字",nums)
3.将等差数列下标为7的倍数的元素删除
用列表保存等差数列前n项,将下标为7的倍数的元素存储到新的move列表中,从等差数列列表中删除move列表中的元素。
n = int(input("输入等差数列的项数:"))
a = []
#等差数列首项
a.append(2)
for i in range(1, n):a.append(a[i - 1] + 3)
# 打印等差数列
print(a)
#存储要删除的元素
move = []
for j in range(1, n):#将列表中下标为7的倍数的元素存储到move中if j % 7 == 0:move.append(a[j])
#在列表a中删除列表move中的元素
for k in move:a.remove(k)
print(a)
4.使用字典找到成绩最高的同学
使用字典存储三个学生三门课程的成绩,姓名、学科、成绩一一对应,返回总分最高的同学姓名。
students = {'小明': {'语文': 20, '数学': 96, '英语': 88},'小红': {'语文': 72, '数学': 80, '英语': 91},'小亮': {'语文': 83, '数学': 69, '英语': 75},
} # 使用字典存储三位同学的成绩
# 存储分数最高的学生的姓名
highname = ""
# 存储分数最高的学生的成绩
highscore = 0
# 计算三位同学的总成绩
for name, score in students.items():total_score = sum(score.values())if total_score > highscore:highscore = total_scorehighname = name# 依次输出三位同学的总成绩print(f"{name}的总分是:{total_score}")
print(f"{highname}的总分最高,共{highscore}")
其中用到了item()函数,具体用法在下面的链接中:
python中字典的items()函数_python中items()函数-CSDN博客
5.回文字符串
回文字符串:正读反读都相同的字符串,正序遍历和反序遍历的结果相同。
方法一:正序遍历和反序遍历同时进行,判断是否相同,第0个字符和第l-1个字符比较,依次往后
s=input("输入一个字符串:")
l=len(s)#l保存字符串s的长度
result=" "#存储判断回文串的结果
for i in range(0,l):if s[i]!=s[l-i-1]:result="不是回文串"breakelse:result="是回文串"
print(result)
方法二:将字符串逆序,然后与原字符串进行比较,如果相同就是回文串,否则不是。
s = input("输入一个字符串:")
l = list(s) # 将字符串s转为列表l
l.reverse() # 调用reverse函数逆序列表
rs = "".join(l) # 逆序后转回字符串
if rs == s:print("是回文串")
else:print("不是回文串")