1. 编写一个程序,创建一个包含10个随机整数的列表,并统计列表中每个元素出现的次数。
list1 = [23,33,44,55,66,23,33,33,33,44] dict1 = {} for x in list1: dict1[x] = list1.count(x) print(dict1)
2. 编写一个程序,创建一个包含10个随机整数的列表,并找出列表中的第二大值和第二小值。(稍难)
list1 = [23,33,44,55,66,23,33,44,23,66] list1.sort() min1 = min(list1) max1 = max(list1) for x in list1: if x > min1: min1 = x break while True: if list1[-1] == max1: del list1[-1] else: max1 = list1[-1] break print(min1,max1) #方法二: import random nums = [random.randint(0, 99) for _ in range(10)] newNums=[] for x in nums: if x not in newNums: newNums.append(x) newNums.sort() print("第二大的是",newNums[-2],"第二小的是",newNums[1])
3. 编写一个程序,输入三个数,判断它们是否能构成一个等腰三角形,并输出相应的提示信息。
shuru = int(input("请输入一个三位数:")) ge = shuru % 10 shi = shuru // 10 % 10 bai = shuru // 100 if ge + shi > bai and ge + bai > shi and shi + bai > ge: if ge == shi or ge == bai or shi == bai: print("这个数可以构成等腰三角形") else: print("这个数不能构成等腰三角形")
4. 编写程序判断num对应的整数是否是素数
num = int(input("请输入一个整数:")) if (num % 2 == 0 and num != 2) or num < 2: print("这个数不是素数") elif num == 2 or num == 3: print("这个数是素数") else: for x in range(3,num+1,2): if num % x == 0: print("这个数不是素数") break else: print("这个数是素数") break #方法二: num = 16 for x in range(2,num): if num % x == 0: print("num不是素数") break else: print("num是素数")
5.编写一个程序,使用循环打印出以下图形:
n = 3
***
**
*
n = 4
****
***
**
*
n =3 for x in range(n,0,-1): print(x*"*")
6.编写一个程序,输入一个年、月、日三个日期信息,计算该日期是该年的第几天(难)
nian = int(input("请输入年")) yue = int(input("请输入月")) ri = int(input("请输入日")) yue2 = 28 tian = 0 if (nian % 4 == 0 and nian % 100 != 0) or (nian % 400 == 0): yue2 = 29 else: yue2 = 28 if yue == 1: print(f"第{ri}天") else: for x in range(1,yue): if x == 1 or x == 3 or x == 5 or x == 7 or x == 8 or x == 10 or x == 12: tian += 31 elif x == 4 or x == 6 or x == 9 or x == 11: tian += 30 else: tian += yue2 print(f"第{tian+ri}天")
7. 创建一个包含3个键值对的字典
dict1 = { "a":10, "b":"hello", "c":"world!" }
8. 创建一个字典保存一个订单的数据,然后修改其中价格对应的键值对的值为100
dict1 = { "订单号":10, "价格":90, "数量":1 } dict1["价格"] = 100 print(dict1)
9. 统计列表中每个元素的个数,以字典的形式返回(键是元素,值是对应的元素的个数)
list1 = [23,33,44,55,66,23,33,33,33,44] dict1 = {} for x in list1: dict1[x] = list1.count(x) print(dict1)
10. 定义一个列表,在列表中保存多个学生的信息(学生信息中包括:姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
list1 = [ {"姓名":"张1","年龄":19,"成绩":98,"电话":"152123321","性别":"男"}, {"姓名":"张2","年龄":20,"成绩":59,"电话":"152223321","性别":"女"}, {"姓名":"张3","年龄":22,"成绩":60,"电话":"152323328","性别":"不明"}, {"姓名":"张4","年龄":16,"成绩":30,"电话":"152423321","性别":"女"}, {"姓名":"张5","年龄":24,"成绩":77,"电话":"152523328","性别":"男"}, {"姓名":"张6","年龄":19,"成绩":88,"电话":"152623321","性别":"女"}, {"姓名":"张7","年龄":30,"成绩":91,"电话":"152923321","性别":"男"}, ]
1)统计不及格学生的个数
count = 0 for x in list1: if x["成绩"] < 60 : count += 1 print(count)
2)打印不及格未成年学生的名字和对应的成绩
for x in list1: if x["成绩"] < 60 and x["年龄"]< 18: print(x["姓名"],x["成绩"])
3)求所有男生的平均年龄
count = 0 nianling = 0 for x in list1: if x["性别"] == "男": count += 1 nianling += x["年龄"] print(f"平均年龄是{nianling / count}")
4)打印手机尾号是8的学生的名字
for x in list1: if int(x["电话"]) % 10 == 8: print(x["姓名"])
5)打印最高分和对应的学生的名字
max1 = list1[0]["成绩"] for x in list1: if x["成绩"] > max1: max1 = x["成绩"] print("最高分是:",max1) for x in list1: if x["成绩"] == max1: print("最高分对应的学生",x["姓名"])
6)删除性别不明的所有学生
for x in range(len(list1)-1,-1,-1): if list1[x]["性别"] == "不明": del list1[x] print(list1)
11. 编写一个程序,创建一个字符串变量,并打印出该字符串的长度。
a = "abcdefg" count1 = 0 for x in a: count1 += 1 print(count1)
12.编写一个程序,创建一个字符串变量,并打印出该字符串的第一个字符。
a = "abcdefg" print(a[0])
13.编写一个程序,创建一个字符串变量,并打印出该字符串的最后一个字符。
a = "abcdefg" print(a[-1])
14. 编写一个程序,创建一个字符串变量,并打印出该字符串的倒序。
a = "abcdefg" newA = "" for x in range(len(a)-1,-1,-1): newA += a[x] print(newA)
15.编写一个程序,创建一个字符串变量,并检查该字符串是否以某个指定的子字符串开头。
a = "abcdefg" b = "ab" if b == a[0:len(b)]: print("是") else: print("否")
16.编写一个程序,创建一个字符串变量,并检查该字符串是否以某个指定的子字符串结尾。
a = "abcdefg" b = "ab" if b == a[-len(b):]: print("是") else: print("否")