第一题:
题目描述:计算字符串最后一个单词的长度,单词以空格隔开。
输入描述: 一行字符串,非空,长度小于5000。
输出描述: 整数N,最后一个单词的长度。
示例1:
输入:hello world
输出:5
方法一:完全使用字符串
str_input = input('输入一个字符串:').strip() #对输入的字符串进行左右去空格处理 len_str = 0 for char in str_input[::-1]: if char == ' ': break else: len_str +=1 print('最后一个单词的长度:%d'%(len_str))
方法二:使用list
str_input = input('输入一个字符串:').strip() #对输入的字符串进行左右去空格处理 list_str = str_input.split() #使用空格将字符串分割成一个列表形式. print(len(list_str[-1]))
第二题:
2. 计算字符个数题目描述: 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入
字符串中含有该字符的个数。不区分大小写。
输入描述: 输入一个有字母和数字以及空格组成的字符串,和一个字符。输出描述:输出输入字符串中含有该字符的个数。
示例1:
输入:ABCDEF A
输出:1
str_tmp = input("输入字符串") list_tmp = str_tmp.split() str1 = str() char = str() count = 0 for str1 in list_tmp[:-1]: #遍历列表除了,最后一个元素以外 for char in str1: #在每一个元素中寻找的字符中寻找与目标字符相符合的字符 if char == list_tmp[-1]: count +=1 print(count)
第三题:
题目描述:密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。
假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。他是这么变换的,大家都知道手机上的字母: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,就这么简单,渊子把密码中出现的小写字母都变成对应的数字,数字和
其他的符号都不做变换。
声明:密码中没有空格,而密码中出现的大写字母则变成小写之后往后移一位,如:X,先变成小写,再往后移一位,不就是y了嘛,简单吧。记住,z往后移是a哦.
输入描述:输入包括多个测试数据。输入是一个明文,密码长度不超过100个字符,输入直到文件结尾;
输出描述:输出渊子真正的密文
示例1:
输入:YUANzhi1987
输出:zvbo9441987
Original_Password = [] dict_num = {'a':2,'b':2,'c':2,'d':3,'e':3,'f':3,'g':4,'h':4,'i':4,'j':5,'k':5,'l':5,'m':6,'n':6,'o':6,'p':7,'q':7,'r':7,'s':7,'t':8,'u':8,'v':8,'w':9,'x':9,'y':9,'z':9} print(len(dict_num)) str_passwd = input('输入加密后的密码:') if str_passwd.find(' ') == -1 and len(str_passwd) < 100: for char in str_passwd[:]: if char.isupper() and char != 'Z': Original_Password.append(chr(ord(char.lower())+1)) elif char.islower(): Original_Password.append(str(dict_num[char])) elif char == 'Z': Original_Password.append('a') else : Original_Password.append(char) Original_Password_str = ''.join(Original_Password) print(Original_Password_str) else: print('密码带有非法字符空格!')
第四题:
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
- 输入描述:
输入包括一个整数n,(3 ≤ n < 1000)
- 输出描述:
输出对数
- 示例1 :
输入:
10
输出:
2
count = 0 in_num = int(input('输入一个3~1000整数:')) if 3 <= in_num < 1000: list_num = [] for i in range(1,in_num): #寻找在1~in_num之间的质数 for num in range(2,i): #判断数字i是不是质数,如果是质数,则将以该数为索引值的元素变为1,如果不是则将以该数为索引值的元素置0 if i%num == 0: list_num.append(0) break else: list_num.append(1) half_len = len(list_num)//2 for i in range(half_len+1): if list_num[i] == 1: for j in range(half_len,len(list_num)-i): if list_num[j] == 1: if i + j+2 == in_num: count +=1 print(count) else: print('输入一个3~1000整数')
第五题:
现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。现在需要你用程序来判断IP是否合法。输入描述:输入一个ip地址
输出描述:返回判断的结果YES or NO
ip_str = input('请输入IP地址') if ip_str.find(' ') == -1: ip_list = ip_str.split('.') if len(ip_list) == 4: for char in ip_list: if not char.isdecimal() or int(char) > 255 or int(char) < 0: print("NO") break else: print("YES") else: print("NO") else: print("NO")
第六题:
学生管理系统, 分为管理员登陆和学生登陆;
管理员登陆, 可以操作:
管理员密码修改;
添加学生的信息;
删除学生的信息;
修改学生的信息;
查询学生的信息(根据学号);
查看所有学生的信息;
退出系统;
学生登录:
查询个人信息;
修改密码;
学生信息包括:
学号, 姓名, 性别, 班级, 出生年月, 用户名, 密码
学生用户名和学号保持一致;
管理员信息包括: 用户名, 密码
administrator = { 'root': { 'username':'root', 'passwd':'123456' }, 'teacher': { 'username':'teacher', 'passwd':'123456' } } user ={ '061501': { 'username':'061501', 'passwd':'061501', 'studentId':'061501', 'name':'liya', 'gender':'1', 'student_class':'1602', 'birthday':'2000-01-15' } } infor = """****学生管理系统**** 1)管理员登录 2)学生登录 3)退出 """ admin_menu = """ 管理员操作界面 1)密码修改 2)添加学生 3)删除学生 4)修改学生信息 5)查询学生的信息(根据学号) 6)查看所有学生的信息 7)返回上一层 8)退出系统""" change_student_infor_menu = """ 1)修改姓名 2)修改性别 3)修改班级 4)修改出生日期 5)修改密码 6)退出修改 """ student_menu_str = """ 1)查询个人信息; 2)修改密码; 3)返回上一层 4)退出系统 """ user_login_str = {'administrator':None , 'user':None} #保存当前登陆的用户 def admin_change_passwd(): print('当前位置:管理员密码修改,退出请按q') old_passwd = input('输入旧的密码:') if old_passwd == 'q': return new_passwd = input('输入新的密码:') if new_passwd == 'q': return new_passwd_confirm = input('再次确认新密码') if new_passwd_confirm == 'q': return if old_passwd == administrator[user_login_str['administrator']]['passwd']: if new_passwd == new_passwd_confirm: administrator[user_login_str['administrator']]['passwd']= new_passwd print('密码修改成功:') else: print('两次密码不一致') else: print('原始密码不正确:') def add_student(): print('当前位置:注册用户') studentId = input('请输入学号').strip() if studentId and studentId not in user: passwd = input("密码") name = input('姓名:') gender = input("性别(男-1 , 女-2)") if not gender: gender = None else: gender = int(gender) student_class = input("班级:") birthday = input('出生年月(年-月-日):') user[studentId] = { 'username': studentId, 'passwd': studentId, 'studentId': studentId, 'name': name, 'gender': gender, 'student_class': student_class, 'birthday': birthday } print("注册成功") else: print("用户已经被注册") def del_student(): print('当前位置:删除学生信息') del_id = input('请输入要删除的学生的学号:') if del_id in user: del user[del_id] else: print('该学生不存在!') #函数功能 :修改学生除账号,学号以外的所有信息 def change_student_infor(): studentId = input('请输入学号').strip() print(change_student_infor_menu) if studentId in user: change_Oper = input('输入操作序号:') while change_Oper != '6': if change_Oper == '1': newname = input('输入姓名:') user[studentId]['name'] = newname print('姓名修改成功') elif change_Oper == '2': newgender = input('性别(男-1 , 女-2)') user[studentId]['gender'] = newgender print('性别修改成功') elif change_Oper == '3': newstudent_class = input('班级:') user[studentId]['student_class'] = newstudent_class print('班级修改成功') elif change_Oper == '4': newbirthday = input('出生日期:') user[studentId]['birthday'] = newbirthday print('出生日期修改成功') elif change_Oper == '5': newpasswd = input('输入新的密码:') newpasswd_confirm = input('再次确认新密码') if newpasswd == newpasswd_confirm: user[studentId]['passwd'] = newpasswd print('密码修改成功!') else: print('两次密码不一致') else : print('%s错误的操作命令!!!' % (change_Oper)) change_Oper = input('输入操作序号:') print(change_student_infor_menu) else: print('该学生不存在!') # 查看学生的所有信息 def view_student_infor_one(): studentId = input('请输入学号').strip() if studentId in user: print(user[studentId]) else: print('该学生不存在!') # 查看所有学生的所有信息 def view_student_infor_all(): if user : print(user) else: print('没有录入学生信息!') # 管理员登录验证 def administrator_login(): count =0 while count < 3 : admin_username = input('账号:') if admin_username in administrator: admin_passwd = input('密码:') if admin_passwd == administrator[admin_username]['passwd']: print('登陆成功') user_login_str['administrator'] = admin_username #保存当前登陆的用户 return True else: print("密码不正确!!!") return False else: print('不存在的管理员!!!') return False else : print("尝试次数过多,退出!") return False def administrator_operation(): admin_Oper = input('输入操作序号:') if admin_Oper == '1': admin_change_passwd() return True elif admin_Oper == '2': add_student() return True elif admin_Oper == '3': del_student() return True elif admin_Oper == '4': change_student_infor() return True elif admin_Oper == '5': view_student_infor_one() return True elif admin_Oper == '6': view_student_infor_all() return True elif admin_Oper == '7': user_login_str['administrator'] = None #退出时将当前登录用户消除 return False elif admin_Oper == '8': exit(0) else : print('%s错误的操作命令!!!' % (admin_Oper)) return True # 学生登录 def student_login(): count =0 while count < 3 : student_username = input('账号:') if student_username in user: student_passwd = input('密码:') if student_passwd == user[student_username]['passwd']: print('登陆成功') user_login_str['user'] = student_username #保存当前登陆的用户 return True else: print("密码不正确!!!") return False else: print('不存在的学生学号!!!') return False else : print("尝试次数过多,退出!") return False def student_operation(): student_Oper = input('输入操作序号:') if student_Oper == '1': view_student_self() return True elif student_Oper == '2': student_change_passwd() return True elif student_Oper == '3': user_login_str['user'] = None #退出时将当前登录用户消除 return False elif student_Oper == '4': exit(0) else: print('%s错误的操作命令!!!' % (student_Oper)) return True # 学生查看自己的信息 def view_student_self(): print(user[user_login_str['user']]) # 学生修改自己密码 def student_change_passwd(): print('当前位置:学生修改自己密码,退出请按q') old_passwd = input('输入旧的密码:') if old_passwd == 'q': return new_passwd = input('输入新的密码:') if new_passwd == 'q': return new_passwd_confirm = input('再次确认新密码') if new_passwd_confirm == 'q': return if old_passwd == user[user_login_str['user']]['passwd']: if new_passwd == new_passwd_confirm: administrator[user_login_str['user']]['passwd']= new_passwd print('密码修改成功:') else: print('两次密码不一致') else: print('原始密码不正确:') def main(): while True: print(infor) Oper_str = input('输入操作序号:') if Oper_str == '1': if administrator_login(): mark_login = True while mark_login : print(admin_menu) mark_login=administrator_operation() elif Oper_str == '2': if student_login(): stu_mark_login = True while stu_mark_login : print(student_menu_str) stu_mark_login=student_operation() elif Oper_str == '3': exit(0) else: print('%s错误的操作命令!!!'%(Oper_str)) main()