1.完成下列操作
list = [“xiaoming”,”xiaohua”,”xiaohong”]
(1)循环遍历出列表的所有元素
# (1)循环遍历出列表的所有元素 list = ["xiaoming", "xiaohua", "xiaohong"] for value in list: print(value)
运行结果:
xiaoming
xiaohua
xiaohong
(2)把列表list1[“jack”,”marry”,”tom”]中的每个元素逐一添加到list列表中
# (2)把列表list1[“jack”,”marry”,”tom”]中的每个元素逐一添加到list列表中 list = ["xiaoming", "xiaohua", "xiaohong"] list1 = ["jack", "marry", "tom"] list.extend(list1) print(list)
或者:
# (2)把列表list1[“jack”,”marry”,”tom”]中的每个元素逐一添加到list列表中 list = ["xiaoming", "xiaohua", "xiaohong"] list1 = ["jack", "marry", "tom"] for value in list1: list.append(value) print(list)
运行结果:
['xiaoming', 'xiaohua', 'xiaohong', 'jack', 'marry', 'tom']
(3)查看list列表是否有“xiaohua”这个元素
# (3)查看list列表是否有“xiaohua”这个元素 list = ["xiaoming", "xiaohua", "xiaohong"] if "xiaohua" in list: print("存在") else: print("不存在")
(4)查看list列表的长度
# (4)查看list列表的长度 list = ["xiaoming", "xiaohua", "xiaohong"] l = len(list) print(l)
2.将下列两个列表合并,将合并后的列表升序并输出.
list1 = [1,3,4,5,7]
list2 = [0,66,8,9]
# 2.将下列两个列表合并,将合并后的列表升序并输出. list1 = [1, 3, 4, 5, 7] list2 = [0, 66, 8, 9] ret = list1 + list2 ret.sort(reverse=False) print(ret)
或者:
# 2.将下列两个列表合并,将合并后的列表升序并输出. list1 = [1, 3, 4, 5, 7] list2 = [0, 66, 8, 9] list1.extend(list2) list1.sort(reverse=False) print(list1)
运行结果:
[0, 1, 3, 4, 5, 7, 8, 9, 66]
3.使用字典来存储一个人的信息(姓名、年龄[数字]、学号),
这些信息来自键盘的输入,储存完输出至终端.
# 3.使用字典来存储一个人的信息(姓名、年龄[数字]、学号), # 这些信息来自键盘的输入,储存完输出至终端. my_dict = {} my_dict["name"] = input("请输入您的姓名:") my_dict["age"] = int(input("请输入您的年龄:")) my_dict["no"] = input("请输入您的学号:") print(my_dict)
4.有下列字典dict1,查找值为“itcast”对应的key并输出到终端.(结果应该是输出school)
dict1={“school”:“itcast”,“date”:2017,”address”:“beijing”}
# 4.有下列字典dict1,查找值为“itcast”对应的key并输出到终端.(结果应该是输出school) # dict1={“school”:“itcast”,“date”:2017,”address”:“beijing”} dict1 = {"school": "itcast", "date": 2017, "address": "beijing"} for i in dict1.keys(): if dict1[i] == "itcast": print(i)
5.完成字符串的逆序以及统计
- 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
- 打印出字符串长度
- 使用切片逆序打印出字符串
- 统计输入的字符串中不同字符的个数,使用字典存储,并打印出来
# 5.完成字符串的逆序以及统计 # 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入 # 打印出字符串长度 # 使用切片逆序打印出字符串 # 统计输入的字符串中不同字符的个数,使用字典存储,并打印出来 while True: # 获取键盘输入 str_input = input("请任意输入一个字符串(长1-31):") # 测试长度: if len(str_input)<1 or len(str_input)>31: print("长度超出限制,请重新输入") continue # 统计字符个数的字典 count_dict = {} for c in str_input: # 如果有,则将其原来的值+1 if c in count_dict: count_dict[c] += 1 # 如果没有,则新增加这个键值对值设为1 else: count_dict[c] = 1 # 打印其长度并逆序打印字符串 print("您输入的字符串%s "%str_input, "长度:%d "%len(str_input), "逆序后为:%s "%str_input[::-1], "字符统计结果:",count_dict )
运行结果:
请任意输入一个字符串(长1-31):dsfsdghbfhdfh 您输入的字符串dsfsdghbfhdfh 长度:13 逆序后为:hfdhfbhgdsfsd 字符统计结果: {'d': 3, 'f': 3, 'b': 1, 'g': 1, 'h': 3, 's': 2} 请任意输入一个字符串(长1-31):
6.字符翻译程序
-
查看笔记本键盘1-9还有0号键其上方的字符,要求用户输入"1",那么输出"!",输入"2",那么输出"@",以此类推
-
用字典完成这个任务
-
用户如果输入的字符长度超过1或者是除数字以外其他字符,提示"未收录该字符的含义,请重新输入"
# 6.字符翻译程序 # 查看笔记本键盘1-9还有0号键其上方的字符,要求用户输入"1",那么输出"!",输入"2",那么输出"@",以此类推 # 用字典完成这个任务 # 用户如果输入的字符长度超过1或者是除数字以外其他字符,提示"未收录该字符的含义,请重新输入" # 字符对应的字典 char_dict = {"1":"!", "2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")"} while True: cmd = input("请输入命令:") # 如果输入的是"0123456789"中的数字才执行 if cmd in "0123456789" and len(cmd) == 1: print("键盘中%s号键对应的符号是%s"%(cmd,char_dict[cmd])) elif cmd == "quit": print("谢谢使用") break else: print("未识别的命令")
运行结果:
请输入命令:1 键盘中1号键对应的符号是! 请输入命令:2 键盘中2号键对应的符号是@ 请输入命令:6 键盘中6号键对应的符号是^ 请输入命令:
7.用户注册登录系统V2.0
-
设计一个程序
-
要求用户可以实现登录、注册、注销登录等功能
-
用户的用户名(6-20)、密码(8-20)、昵称、年龄信息保存到字典中
-
将每个已注册的用户保存到列表中,即上将一步的字典保存到列表中
-
维护用户的登录状态,每次只能有一个用户处于登录状态,直到选择注销登录
-
如果不选择退出系统,该程序应当一直运行
提示:
-
维护用户登录:用一个变量如 loginUser去记录一个已登录用户的用户名,
-
如果注销登录或者未登录状态,那么就把loginUser的值设为False,
-
或者其他,每次判断loginUser就能得知当前是否有用户已经登录
-
loginUser = False user_list = [{"name": "系统管理员", "username": "admin", "passwd": "123456"}] while True: print(" python攻城狮系统V6.0") if not loginUser: print("1.登录") else: print("1.登出") print("2.注册新用户") print("3.查看所有已注册用户") print("4.管理员身份") print("5.查看当前登录用户") print("6.退出系统") cmd = input("命令:") # 登录登出管理 if cmd == "1": # 如果是以登录状态,则询问是否注销登录 if loginUser: yn = input("确认注销登录(y/n)") if yn == "y": print("%s注销登录成功" % loginUser["name"]) loginUser = False continue # 如果是为登录状态,则进行登录 else: username = input("请输入用户名:") passwd = input("请输入密码:") login = None # 判断输入的用户是否存在 for user in user_list: # 判断输入的用户是否存在,以及密码是否正确 if user["username"] == username and user["passwd"] == passwd: login = user # 如果存在,且密码校验成功,则提示登录成功,并赋值非loginUser # 否则提示"用户名密码错误或用户名不存在" if login: print("欢迎%s,登录成功" % login["name"]) loginUser = login else: print("用户名密码错误或用户名不存在") # 注册新用户,添加新用户 elif cmd == "2": name = input("请输入昵称:") # 昵称 username = input("请输入用户名(登录用):") # 用户名,应判断是否存在 for user in user_list: # 判断用户名是否因存在 if user["name"] == username: print("用户名%s已经存在,请重试") continue # 如果存在,则重新输入 passwd1 = input("请输入密码:") passwd2 = input("请确认密码:") # 判断两次密码是否一致 if passwd1 != passwd2: print("密码不一致,请重新输入") continue # 不一致则重新输入 # 否则,注册成功 newuser = {"name": name, "username": username, "passwd": passwd1} # 添加到用户列表 user_list.append(newuser) print("注册成功") # 查看所以已注册用户的信息,应具备管理员权限 elif cmd == "3": # 判断是否已经登录 if loginUser: # 判断当前用户是不是管理员 if loginUser["username"] != "admin": print("权限不足,请获取管理员权限") continue else: i = 1 for u in user_list: print("No%d. " % i, u) i += 1 else: print("请以管理员身份登录并查看") # 管理管理员账户 elif cmd == "4": # 要求先登录 if not loginUser: print("请先登录") continue else: # 如果不是管理员 if loginUser["username"] != "admin": print("权限不足,请获取管理员权限") continue for u in user_list: if u["username"] == "admin" and loginUser["username"] == "admin": yn = input("需要修改管理员密码吗?(y/n)") if yn == "y": oldpasswd = input("请输入原密码:") if oldpasswd == loginUser["passwd"]: newpasswd = input("请输入新密码:") loginUser["passwd"] = newpasswd print("管理员密码已更新") else: print("密码错误,请重新输入") continue # 查看当期那登录用户是谁 elif cmd == "5": if loginUser: print("当前登录的用户为%s(%s)" % (loginUser["name"], loginUser["username"])) else: print("当前登录的用户为匿名用户") # 退出 elif cmd == "6": print("退出成功,谢谢您的使用!") break
8.判断有效日期
用户可以输入"20170327"等三种格式的日期
判断是否是有效日期,如"20170229"不是有效日期,"20171345"不是有效日期
pingnian_month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] runnian_month = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] while True: date = input("请输入一个日期(8位),输入QUIT退出程序:") # 如果输入QUIT则退出 if date == "QUIT": break # 如果长度不为8或者不是纯数字,则重新输入 if len(date) != 8 and not date.isdigit(): print("请输入一个八位的日期") continue else: year = int(date[0:4]) # 截取年份 month = int(date[4:6]) # 截取月份 day = int(date[6:]) # 截取日期 isRunNian = False # 判断是否是闰年 if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0: isRunNian = True # 判断月分是否合法 if month < 1 or month > 12: print("您输入的%s不是有效日期, 请重新输入" % date) continue if isRunNian: # 判断日期是否合法 if day < 1 or day > runnian_month[month]: print("您输入的%s不是有效日期, 请重新输入" % date) continue # 不合法直接重新输入 else: # 判断日期是否合法 if day < 1 or day > pingnian_month[month]: print("您输入的%s不是有效日期, 请重新输入" % date) continue print("您输入的%s是有效日期" % date) print("=" * 30)