-
用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
course_set1, course_set2, course_set3 = {'John', 'Tao', 'Tom', 'Bob', 'Ali','Hank'}, {'Lily', 'Tom', 'Nub', 'Hank','Alice', 'Yao'}, {'Hank', 'Ali', 'Wangxun', 'Zhangyi', 'Tom'}
-
求选课学生总共有多少人
new_course_set = course_set1 | course_set2 | course_set3 print("选课学生总人数:", len(new_course_set))
-
求只选了第一个学科的人的数量和对应的名字
#方案一: count1 = 0 new_course_set1 = set() for student in course_set1: if student not in course_set2 and student not in course_set3: count1 += 1 new_course_set1.add(student) print("只选了第一个学科的人的数量:", count1, '\n对应的名字:', list(new_course_set1))
#方案二: new_course_set1 = course_set1 - course_set2 - course_set3 print("只选了第一个学科的人的数量:", len(new_course_set1), '\n对应的名字:', list(new_course_set1))
-
求只选了一门学科的学生的数量和对应的名字
new_course_set = (course_set1 ^ course_set2 ^ course_set3) - (course_set1 & course_set2 & course_set3) print("只选了一门学科的人的数量:", len(new_course_set), '\n对应的名字:', list(new_course_set))
-
求只选了两门学科的学生的数量和对应的名字
new_course_set1 = ((course_set1 & course_set2)|(course_set1 & course_set3)|(course_set3 & course_set2)) new_course_set2 = (course_set1 & course_set2 & course_set3) new_course_set = (new_course_set1 - new_course_set2) print("只选了两门学科的人的数量:", len(new_course_set), '\n对应的名字:', list(new_course_set))
-
求选了三门学科的学生的数量和对应的名字
new_course_set = (course_set1 & course_set2 & course_set3) print("只选了三门学科的人的数量:", len(new_course_set), '\n对应的名字:', list(new_course_set))
-
-
输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)
例如: 输入’abcd1234 ’ 输出’bd24’
str1 = str(input('请输入一串字符:')) for x in range(len(str1)): if x % 2: print(str1[x])
-
输入用户名,判断用户名是否合法(用户名长度6~10位)
users_names = str(input('请输入用户名')) if len(users_names) < 6 or len(users_names) > 10: print("您输入的用户名不合法!请再次输入") else: print("您输入的用户名合法!欢迎进入")
-
输入用户名,判断用户名是否合法(用户名中只能由数字和字母组成)
例如: ‘abc’ — 合法 ‘123’ — 合法 ‘abc123a’ — 合法
users_names = str(input('请输入用户名:')) for x in users_names: if not( ('0' <= x <= '9') or ('a' <= x <= 'z') or ('A' <= x <= 'Z')): print("您输入的用户名不合法!请再次输入") break else: print("您输入的用户名合法!欢迎进入")
users_name = str(input('请输入用户名:')) for x in users_name: if not ('0'<= x <='9' or 'a'<= x <='z' or 'A'<= x <='Z'): print('不合法') break else: print('合法')
-
输入用户名,判断用户名是否合法(用户名必须包含且只能包含数字和字母,并且第一个字符必须是大写字母)
例如: ‘abc’ — 不合法 ‘Mabc’ — 不合法 ‘123’ — 不合法 ‘abc123’ — 不合法 ‘Abc123ahs’ — 合法
users_names = str(input('请输入用户名:')) if ('A' <= users_names[0] <= 'Z'): count = 0 for x in users_names[1:]: if not ('0'<= x <='9' or 'a'<= x <='z' or 'A'<= x <='Z'): print('不合法') break else: if '0'<= x <='9': count += 1 else: if count > 0: print('合法') else: print('不合法') else: print('不合法!')
-
输入一个字符串,将字符串中所有的数字字符取出来产生一个新的字符串
例如:输入**‘abc1shj23kls99+2kkk’** 输出:'123992’
str1 = 'abc1shj23kls99+2kkk' str2 = '' for x in str1: if '0' <= x <= '9': str2 += x print(str2)
-
输入一个字符串,将字符串中所有的小写字母变成对应的大写字母输出 (用upper方法和自己写算法两种方式实现)
例如: 输入**‘a2h2klm12+’ ** 输出 'A2H2KLM12+'
str1 = str(input('请输入一串字符:')) new_str = '' for x in str1: if 'a' <= x <= 'z': new_str += chr(ord(x) - 32) else: new_str += x print(new_str)
str1 = str(input('请输入一串字符:')) result = str1.upper() print(result)
-
输入一个小于1000的数字,产生对应的学号
例如: 输入**‘23’,输出’py1901023’** 输入**‘9’, 输出’py1901009’** 输入**‘123’,输出’py1901123’**
num = int(input('请输入一个小于1000的数字:')) result = 'py1902' + (3-len(num))* '0' + num print(result)
num = int(input('请输入一个小于1000的数字:')) stu_id = f'py1901{num:0>3}' print(stu_id)
-
输入一个字符串,统计字符串中非数字字母的字符的个数
例如: 输入**‘anc2+93-sj胡说’** 输出:4 输入**’===’** 输出:3
str1 = str(input('请输入一个字符串:')) count = 0 for x in str1: if not ('0'<= x <='9' or 'a'<= x <='z' or 'A'<= x <='Z'): count += 1 print(count)
-
输入字符串,将字符串的开头和结尾变成’+’,产生一个新的字符串
例如: 输入字符串**‘abc123’, 输出’+bc12+’**
str1 = str(input('请输入一个字符串:')) new_str1 = '+' + str1[1:-1] + '+' print(new_str1)
-
输入字符串,获取字符串的中间字符
例如: 输入**‘abc1234’** 输出:‘1’ 输入**‘abc123’** 输出**‘c1’**
str1 = str(input('请输入一个字符串:')) if len(str1) % 2: print(str(len(str1) // 2)) else: print(str(len(str1) // 2), str(len(str1) // 2 -1))
-
写程序实现字符串函数find/index的功能(获取字符串1中字符串2第一次出现的位置)
例如: 字符串1为:how are you? Im fine, Thank you! , 字符串2为:you, 打印8
str1 ='how are you? Im fine, Thank you!' str2 = 'you' length1 = len(str1) length2 = len(str2) for i in range(length1 - length2 + 1): if str1[i:i + length2] == str2: print(i) break else: print('没有!')
str1 ='how are you? Im fine, Thank you!' str2 = 'you' result = str1.find(str2, 0, len(str1)) print(result)
str1 ='how are you? Im fine, Thank you!' str2 = 'you' result1 = str1.find(str2) print(result1)
-
获取两个字符串中公共的字符
例如: 字符串1为:abc123, 字符串2为: huak3 , 打印:公共字符有:a3
str1 = 'abc123'
str2 = 'huak3'
new_str = ''
for x in str1:
if x in str2 and x not in new_str:
new_str += x
print(new_str)