python之基础练习30题
学而时习之,不亦说乎!
python是一门语言,要经常练习,希望我整理出来的这些题目对初学者或者经常不用python的你有所帮助。
题目:
1,九九乘法表
2,手动输入一个字符串,打散放进一个列表,小写字母从大到小排列序,大写字母保持不变
3,li=[1,2,3,4,5,6,7,8,8]组成多少个互不相同且不重复的两位数
4,计算1+2+3...+98+99+100,并打印出计算公式
5.列表['alex','egon','yuan','wusir','666']
1.把666替换成999
# 2.获取"yuan"索引
# 3.假设不知道前面有几个元素,分片得到最后的三个元素
6.切割字符串"luffycity"为"luffy","city"
7.求1~100间所有偶数的和(亦可奇数和,分别使用for,while循环写)
8.从键盘接收一百分制成绩(0~100),要求输出其对应的成绩等级A~E。
# 其中,90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。
9.输入一年份,判断该年份是否是闰年并输出结果。(该程序可以重复使用 使用while True)
# 注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。
10.将列表['alex', 'steven', 'egon'] 中的每一个元素使用 ‘\_’ 连接为一个字符串
11.求100以内不能被3整除的所有数,并把这些数字放在列表sum3=[]里,并求出这些数字的总和和平均数。
12.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?
13.猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;
小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!
14、实现一个整数加法计算器
15.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,
失败时允许重复输入三次 ###
16.使用while循环输出2-3+4-5+6...+100的和:
17.使用 for 循环和 range 实现输出1-2+3-4+5..+99的和
18.使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12
19.使用 while 循环实现输出 1-100 内的所有奇数
20.摆放家具
需求:
1).房子有户型,总面积和家具名称列表
新房子没有任何的家具
2).家具有名字和占地面积,其中
床:占4平米
衣柜:占2平面
餐桌:占1.5平米
3).将以上三件家具添加到房子中
4).打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表
21、M与N的数学运算:用户输入两个数 M 和 N,其中 N 是整数,计算M 和 N 的5种数学运算结果,
并依次输出,结果间用空格分隔。5种数学运算分别是:M 与 N 的和、M 与 N 的乘积、
M 的 N 次幂、M除 N 的余数、M 和 N 中较大的值。
22、将输入的字符串垂直输出
23、计算2的n次方,n由用户输入
24、成绩转换:编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于
60的输出“pass”,否则输出“fail”,成绩不四舍五入。
25、完美立方:找到大于1的4个整数满足完美立方等式:a3=b3+c3+d3(例如123=63+83+103)。
编写一个程序,对于任意给定的正整数N(N ≤100),寻找所有的四元组(a,b,c,d),
满足a3=b3+c3+d3,其中1<a,b,c,d≤N。
26、货币转换:写一个程序进行货币间币值转换,其中:人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,
符号和数值之间没有空格。
27、月份缩写:如果有 months = "Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec.",编写一个程序,
用户输入一个月份的数字,输出月份的缩写。
28、恺撒密码:凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中
的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,假设用户可能使用的输入仅包含
小写字母a~z和空格,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中空格不用进行加密处理。
29、3位水仙花数计算:“3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,并输出结果。
30、购物车 功能要求:
要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
代码:
1,九九乘法表:
for循环:
for i in range(1,10): for j in range(1,i+1): print(f"{j}*{i}={j*i}\t",end="") print()
while循环:
i =1 while i < 10: j=1 while j < i+1: print(f"{j}*{i}={j * i}\t", end="") j+=1 print() i+=1
2,手动输入一个字符串,打散放进一个列表,小写字母从大到小排列序,大写字母保持不变
str = input("请输入一个字符串:") str_list = list(str) list =[] dict={} for i in range(len(str_list)): if "a"<=str_list[i]<="z": list.append(str_list[i]) else: dict[i]=str_list[i] list.sort() list.reverse() for i in dict: list.insert(i,dict[i]) new_str = "".join(list) print(new_str)
3,li=[1,2,3,4,5,6,7,8,8]组成多少个互不相同且不重复的两位数
li=[1,2,3,4,5,6,7,8,8] li2=[] for i in range(len(li)): for j in range(len(li)): if i != j : str = 10*li[i]+li[j] li2.append(str) li2_set = set(li2) li3=list(li2_set) print(li3)
4,计算1+2+3...+98+99+100,并打印出计算公式
sum = 0 list=[] for i in range(1,101): list.append(i) sum+=i list1 =[str(i) for i in list] # 把列表中的数字以字符串的方式存放在新列表中 str_list = "+".join(list1) print(f"{str_list}={sum}")
5.列表['alex','egon','yuan','wusir','666'](编程)
1.把666替换成999
2.获取"yuan"索引
3.假设不知道前面有几个元素,分片得到最后的三个元素
list = ['alex','egon','yuan','wusir','666'] # 1, list[-1]="999" # 2, print(list.index("yuan")) # 3, list1=[] for i in range(-3,0): list1.append(list[i]) print(list1)
6.切割字符串"luffycity"为"luffy","city"
str ="luffycity" str1=str[:5] str2=str[5:] print(f"{str1},{str2}")
7.求1~100间所有偶数的和(亦可奇数和,分别使用for,while循环写)
# 偶数 和 sum = 0 for i in range(1,101): if i%2 == 0: sum +=i print(sum) # 打印出偶数公式及和 list =[] sum =0 for i in range(1,101): if i%2 ==0: list.append(i) sum +=i list1 = [str(i) for i in list] str_list = "+".join(list1) print(f"{str_list}={sum}") i= 1 list=[] sum =0 while i <101: if i%2 ==0: list.append(i) sum +=i i +=1 list1 = [str(i) for i in list] str_list = "+".join(list1) print(f"{str_list}={sum}")
8.从键盘接收一百分制成绩(0~100),要求输出其对应的成绩等级A~E。
其中,90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。
while True: str = input("请输入分数:") if str.isdigit(): int_str = int(str) if 100>=int_str >=90: print("A") # break elif 80<=int_str<=89: print("B") # break elif 70<=int_str<=79: print("c") # break elif int_str<60: print("E") # break else: print("输入分数数值不对,请检查") else: print("输入非数值类型,请输入数字类型:")
9.输入一年份,判断该年份是否是闰年并输出结果。(该程序可以重复使用 使用while True)
注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。
while True: str=input("请输入年份:") if str.isdigit(): int_str = int(str) if int_str%400 ==0: print("闰年") elif int_str%4 ==0: if int_str%100 ==0: print("不是闰年") else: print("闰年") else: print("请输入正确的年份")
10.将列表['alex', 'steven', 'egon'] 中的每一个元素使用 ‘\_’ 连接为一个字符串
list = ['alex', 'steven', 'egon'] str = "\_".join(list) print(str)
11.求100以内不能被3整除的所有数,并把这些数字放在列表sum3=[]里,并求出这些数字的总和和平均数
sum3 =[] sum1=0 for i in range(1,101): if i%3 ==0: sum3.append(i) sum1 +=i sum2 = sum1/len(sum3) print(sum3) print(sum1) print(sum2)
12.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?
money = 10000 tr =True i=0 while tr: money = money*1.0325 i+=1 if money//10000 >=2: tr = False print(money) print(i)
13.猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;
小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!
#随机设置一个数,比如7 number = 7 i=True while i: num = input("请输入你要猜的数字:") if num.isdigit(): num = int(num) if num < number: print("太小了") elif num > number: print("太大了") elif num == number: print("恭喜!你猜中了!") i = False else: print("输入错误,请重新输入")
14、实现一个整数加法计算器
while True: num = input("请输入要计算的整数算式:") sum1 = 0 sum2 =0 num_list = num.split("+") len_nlist = len(num_list) for i in num_list: if i.isdigit(): i = int(i) sum1 += i sum2 += 1 else: print("请输入正确的整数加法运算算式") break if sum2 == len_nlist: print(sum1)
15.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,
失败时允许重复输入三次 ###
tr = True i = 0 while tr: user = input("请输入用户名:") passwed = input("请输入密码:") if user == "seven": if passwed.isdigit(): passwed = int(passwed) if passwed == "123": print("登录成功") else: print("请重新登录,密码错误") else: print("请重新登录,密码非数字类型") elif user == "alex": if passwed.isdigit(): passwed = int(passwed) if passwed == "123": print("登录成功") else: print("请重新登录,密码错误") else: print("请重新登录,密码密码非数字类型") else: print("用户名错误,请重新输入") i +=1 if i == 3: print("失败已达三次,请明天重试") tr = False
16.使用while循环输出2-3+4-5+6...+100的和:
sum= 2 i=2 tr =True while tr: if i ==101: tr = False if i%2==0: sum = sum -(i+1) i+=1 elif i%2==1: sum += (i+1) i+=1 print(sum)
17.使用 for 循环和 range 实现输出1-2+3-4+5..+99的和
sum=1 for i in range(1,99): if i%2==1: sum = sum -(i+1) print(sum) elif i % 2 ==0: sum = sum +(i+1) print(sum) print(sum)
18.使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12
tr = True i = 1 while tr: if i <6: print(i) elif 6<i<10: print(i) elif 10<i<13: print(i) if i ==12: tr =False i+=1
19.使用 while 循环实现输出 1-100 内的所有奇数
i = 1
tr=True
i_list =[]
while tr:
if i%2 ==1:
i_list.append(i)
elif i ==100:
tr =False
i+=1
print(i_list)
20.摆放家具
需求:
1).房子有户型,总面积和家具名称列表
新房子没有任何的家具
2).家具有名字和占地面积,其中
床:占4平米
衣柜:占2平面
餐桌:占1.5平米
3).将以上三件家具添加到房子中
4).打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表
host_dict ={"1室户":"50","2室户":"85","3室户":"110"} host_jiajv = {"床":"4","衣柜":"2","餐桌":"1"} i = input("请输入房型:") j = input("请输入家具:") j_list = j.split(",") m_sum =0 for l in j_list: m = int(host_jiajv[l]) m_sum +=m n = int(host_dict[i]) k = n-m_sum print(f"户型:{i},总面积:{host_dict[i]}平米,剩余面积{k}平米,家具列表:{j}")
21、M与N的数学运算:用户输入两个数 M 和 N,其中 N 是整数,计算M 和 N 的5种数学运算结果,
并依次输出,结果间用空格分隔。5种数学运算分别是:M 与 N 的和、M 与 N 的乘积、
M 的 N 次幂、M除 N 的余数、M 和 N 中较大的值
tr = True while tr: m = input("请输入M的数值:") if m.isdigit(): m = int(m) else: print("输入的数值不对!") break n = input("请输入N的数值:") if n.isdigit(): n=int(n) tr =False5 else: print("输入的数值不对!") break if m > n: j = m else: j = n print(f"{m+n} {m*n} {m**n} {m%n} {j}")
22、将输入的字符串垂直输出
str1 = input("请输入你要输入的内容:") str_list = list(str1) for i in str_list: print(i)
23、计算2的n次方,n由用户输入
tr = True while tr: n = input("请输入2的几次方:") if n.isdigit(): n=int(n) tr =False else: print("输入的数值有误,请检查!") print(f"2的{n}次方的值是{2**n}")
24、成绩转换:编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于
60的输出“pass”,否则输出“fail”,成绩不四舍五入。
tr = True while tr: num = input("请输入学生的成绩:") num = float(num) if num >= 60: print("pass") else: print("fail")
25、完美立方:找到大于1的4个整数满足完美立方等式:a3=b3+c3+d3(例如123=63+83+103)。
编写一个程序,对于任意给定的正整数N(N ≤100),寻找所有的四元组(a,b,c,d),
满足a3=b3+c3+d3,其中1<a,b,c,d≤N。
list1 =[] list2 = [] for a in range(2,101): for b in range(2,101): for c in range(2,101): for d in range(2,101): if a**3 == b**3 + c**3 + d**3: list1.append(a) list1.append(b) list1.append(c) list1.append(d) tuple1 =tuple(list1) list2.append(tuple1) list1 = [] print(list2)
26、货币转换:写一个程序进行货币间币值转换,其中:人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,
符号和数值之间没有空格。
tr = True while tr: bizhong = input("请输入币种:") num = input("请输入金额:") if bizhong == "RMB": num = float(num) jiner = num / 6.78 print(f"兑换后的金额为{jiner}") elif bizhong =="USD": num = float(num) jiner = num *6.78 print(f"兑换后的金额为{jiner}") else: print("输入币种有误,请检查")
27、月份缩写:如果有 months = "Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec.",编写一个程序,
用户输入一个月份的数字,输出月份的缩写。
months = "Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec." months_list = months.split(".") num = input("请输入月份:") if num.isdigit(): num = int(num) if 0<num <13: print(months_list[num-1]) else: print("输入有误") else: print("输入有误哦")
28、恺撒密码:凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中
的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,假设用户可能使用的输入仅包含
小写字母a~z和空格,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中空格不用进行加密处理。
list1 =["d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","w","v","u","x","y","z","a","b","c"] str1 = input("请输入信息:") list2 = list(str1) len_list2 = len(list2) list3=[] for i in range(len_list2): if "a"<= list2[i] <="z": list3.append(list1[i]) elif list2[i] ==" ": list3.append(" ") str2 = "".join(list3) # print(str2)
29、3位水仙花数计算:“3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,并输出结果。
list1=[] for a in range(1,10): for b in range(1,10): for c in range(1,10): if 100*a + 10 * b +c == a**3 + b**3 + c**3 : m = 100* a + 10*b + c list1.append(m) # print(list1)
30、购物车 功能要求:
要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}】
goods = [{"name": "电脑", "price": 1999},{"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20},{"name": "美女", "price": 998}] while True: price1 =input("请输入总资产:") if price1.isdigit(): price1 = int(price1) break else: print("总资产请输入整数") num = input("请输入商品序号,多个商品用“,”隔开:") list1 = num.split(",") sum = 0 for i in list1: i = int(i) a = goods[i-1]["price"] sum += a if sum <= price1: print("购买成功") else: print("账户余额不足") for i in range(1,10): for j in range(1,i+1): print(f"{j}*{i}={j*i}\t",end="") print() i =1 while i < 10: j=1 while j < i+1: print(f"{j}*{i}={j * i}\t", end="") j+=1 print() i+=1
希望这些对您有帮助,有问题可留言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异