python练手经典100例及答案(80个python练手项目列表)
python编程:输入一个自然数n,如果n为奇数,输出表达式1+1/3+…+1/n的值
def summ(n):
if n%2:
m=1
else:
m=2
return round(sum([1/x for x in range(m,n+1,2)]),2)
print(summ(5))
推荐几个适合新手练手的Python项目
《Python实战:四周实现爬虫系统》百度网盘免费下载
链接:
提取码: xbdu? ?明态
Python实战旅槐埋:四周实现爬拆蚂虫系统
Python挑战100题(14~20)
题目:给你个小写英文字符串a和一个非负数b(0=b26), 将a中的每个小写字符替换成字母表中比它大b的字母。这里将字母表的z和a相连,如果超过了z就回到了a。
例如a="cagy", b=3,
则输出 :fdjb
提示: ord('a') = 97, ord('b') = 98, chr(97) = a
参考答案:
题目:给你一个字符串a和一个正整数n,判断a中是否存在长度为n的回文子串。如果存在,则输出YES,否则输出NO。
回文串的定义: 记串str逆序之后的字符串是str1,若str=str1,则称str是回文串,如"abcba".
参考答案:
题目:给你两个时间st和et(00:00:00=st = et=23:59:59), 请你给出这两个时间间隔的秒数。
如:st="00:00:00", et="00:00:10", 则输出10.
参考答案:
方法一:切片
方法二:time模块
题目:给你一个时间t(t是一个字典,共有六个字符串key(year,month,day,hour,minute,second),值为每个值为数字组成的字符串,
如t={'year':'2013','month':'9','day':'30','hour':'16','minute':'45','second':'2'}
请将其按照以下格式输出, 格式:XXXX-XX-XX XX:XX:XX。如上例应该输出: 2013-09-30 16:45:02。
参考答案:
方法一:利用datetime模块
方法二:一行
题目:给你一个整数组成的列表L,按照下列条件输出:
若L是升序排列的,则输出"UP";
若改郑L是降序排列的,则输出"DOWN";
若L无序,则输出"WRONG"。
参考答案:
题目:一个环形的公路上有n个加油站,编号为0,1,2,...n-1,
每个加油站加油都有一个上限,保存在列表limit中,即limit[i]为第i个加油站加油的上限,
而从第i个加油站开车开到第(i+1)%n个加油站需要cost[i]升油,cost为一个列表。
现在有一辆开始时没有油的车,要从一个加油站出发绕这个公核启颂路跑一圈回到起点。
给你整数n,列表limit和列表cost,你来判断能否完成任务。
如果能够完成任务,输出起始的加油站编号,如果有多个,输出编号最小的。
如果不能完成任务,输出-1。
参考答案:
构造新的limit和cost并遍历,来源
题目:给你一个整数列表L,判断L中是否存在相同的旁芹数字,
若存在,输出YES,否则输出NO。
参考答案:
python的题目?
1.将列表的元素按逆序重新存放。
my_list = [1, 2, 3, 4, 5]
my_list.reverse() # 将列表元素反转
print(my_list) # 输出反转后的列表
2.将列表中的偶数变成其平方值,奇数保持不变。
my_list = [1, 2, 3, 4, 5]
for i in range(len(my_list)):
if my_list[i] % 2 == 0: # 如果元素是偶数
my_list[i] = my_list[i] ** 2 # 将元素平方
print(my_list) # 输出更改后的列表
3.生成包含100个100以内的随机正整数的元组,统计每个数出现的次数。
生成包含100个100以内的随机正整掘歼数的元组,统计每个数出现的次数。
4.输入5X5的矩阵a,完成下列要求:旦散纯a.输出矩阵ab.将第2行和第5行元素对调后,再重新输出a
# a.
a = [[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]]
for row in a:
print(row) # 每行输出矩阵
# b.
a[1], a[4] = a[4], a[1] # 将第2行和第5行元素对调
# c.
for row in a:
print(row) # 重新输出矩阵
5.创建由星期一到星期日的7个值组成的字典,输出键列表、值列表和键值列表。
days_of_week = {
"Monday": 1,
"Tuesday": 2,
"Wednesday": 3,
"Thursday": 4,
"Friday": 5,
"Saturday": 6,
"Sunday": 7
}
keys = list(days_of_week.keys()) # 将字典键转换为列表
values = list(days_of_week.values()) # 将字典值转换为列表
key_values = list(days_of_week.items()) # 将字典键值对转换为列表
print("Keys:", keys) # 输出键列表
print("Values:", values) # 输出值列表
print("Key-Values:", key_values) # 输出键值列表
6.输入10名学生的姓名和成绩,输出其最高分和最低分。要求使用字典存放学生的姓名和成绩。
my_dict = {}
for i in range(10):
name = input("Enter student name: ") # 输入学生姓名
score = int(input("Enter student score: ")) # 输入学生成绩
my_dict[name] = score # 将学生姓名和成绩存入字典
highest_score = max(my_dict.values()) # 获取最高成绩
lowest_score = min(my_dict.values()) # 获取最低成绩
print("Highest score: ", highest_score) # 输出最高成绩
print("Lowest score: ", lowest_score) # 输出最低成绩
7.随模咐机产生10个[0,10]范围的整数,分别组成集合A和集合B。输出集合A、集合B的内容、长度以及他们的并集、交集和差集。
import random
A = set(random.sample(range(11), 10)) # 随机从0到10范围内选取10个不重复的整数,将其作为集合A的元素
B = set(random.sample(range(11), 10)) # 随机从0到10范围内选取10个不重复的整数,将其作为集合B的元素
print("Set A: ", A) # 输出集合A
print("Set B: ", B) # 输出集合B
print("Length of A: ", len(A)) # 输出集合A的长度
print("Length of B: ", len(B)) # 输出集合B的长度
print("Union of A and B: ", A.union(B)) # 输出集合A和集合B的并集
print("Intersection of A and B: ", A.intersection(B)) # 输出集合A和集合B的交集
print("Difference of A and B: ", A.difference(B)) # 输出集合A和集合B的差集