一些python练习题
手动手机的一些python练习题,有时间的时候敲一敲。
""" Python使用简洁代码 """ # # 1,交换两个变量的值 # a = 666 # b = 999 # a, b = b, a # 交换值 # print(a,b) # 999 666 # # # 2,查找对象使用的内存 # import sys # slogan = '今天是个好日子!' # print(sys.getsizeof(slogan)) # 90 # 3,翻转字符串 import random a = '今天是个好日子!' b = a[::-1] # 翻转 print(b) # !子日好个是天今 # 4,检查字符串是否为回文 def is_palindrome(string): return string == string[::-1] print(is_palindrome('今天是个好日子')) # False print(is_palindrome('我们们我')) # True # 5,将列表里的元素合并成字符串 alist = ['I', 'am', 'god', 'man'] astring = ' '.join(alist) print(astring) # I am god man # 6,查找两个列表中所有不重复的元素 def union(list1, list2): return list(set(list1+list2)) alist = [5,2,0] blist = [1,2,3] print(union(alist, blist)) # [0, 1, 2, 3, 5] # 7,打印字符串N次 astring = '我们' nstring = 10 * astring print(nstring) # 输出:我们我们我们我们我们我们我们我们我们我们 # 8,链式比较 a = 100 print(98 < a < 120) # True print(100==a<120) # True # 9,单词大小写问题 a = 'I am god man' b = a.upper() # 全部大写 I AM GOD MAN c = a.capitalize() # 首字母大写 I am god man d = a.title() # 各单词首字母大写 I Am God Man print(b, c, d) # 10,统计列表中元素出现的频率 from collections import Counter numbers = [1, 1, 3, 2, 4, 4, 3, 6] # 开始统计 counters = Counter(numbers) print(counters) # 返回的是类似一个字典Counter({1: 2, 3: 2, 4: 2, 2: 1, 6: 1}) # 11,判断字符串所含元素是否相同 a = 'python' b = 'ypthon' count_a, count_b = Counter(a), Counter(b) if count_a == count_b: print('Yes') # Yes else: print('不相同') # 12,将数字字符串转换成数字列表 sstring = "666888" numbers = list(map(int, sstring)) print(numbers) # [6, 6, 6, 8, 8, 8] # 13,使用enumerate来获取列表的索引和值 string = 'python' for index, value in enumerate(string): print(index, value) # 14,代码执行消耗时间 import time start_time = time.time() numbers = [i for i in range(1, 100)] end_time = time.time() time_cosume = end_time - start_time print('代码执行消耗的时间为:{}'.format(time_cosume)) # 代码执行消耗的时间为:0.0 # 15,比较集合和列表的查找效率 number = 999999 # 生成数字列表和数字集合 numList = [i for i in range(1, 1000000)] numSet = {i for i in range(1, 1000000)} # 列表的查找耗时评估 start_time = time.time() _ = number in numList end_time = time.time() print('列表的查找时间为:{}'.format(end_time-start_time)) # 列表的查找时间为:0.009906291961669922 # 集合的查找耗时评估 start_time = time.time() _ = number in numSet end_time = time.time() print('集合的查找时间为:{}'.format(end_time-start_time)) # 集合的查找时间为:0.0 # 16,字典的合并 d1 = {"apple":13, "orange":12} # 其实打印是字典 d2 = {"爆款协作": 48, "特朗普":"没妈妈"} # 合并两个字典 new_d = {**d1, **d2} print(new_d) # {'apple': 13, 'orange': 12, '爆款协作': 48, '特朗普': '没妈妈'} # 17,随机采样 import random books = ["爆款写作", "这个世界,偏爱会写作的人", "写作七堂课", "越书写越明白"] # 随机取两本 reading_books = random.sample(books, 2) print(reading_books) # ['爆款写作', '写作七堂课'] # 18,判断列表元素的唯一性 def is_unique(lst): if len(lst) == len(set(lst)): # 集合会去除列表的重复元素 return True else: return False numbers = [1, 1, 2, 3, 4, ] print(is_unique(numbers)) # False # 19,递归实现阶乘 def fac(n): if n > 1: return n * fac(n-1) else: return 1 number = 5 # number = int(input('请输入整数: ')) print('结果为:{}'.format(fac(number))) # 20,列出当前文件夹下所有的目录和文件名 import os files = [file for file in os.listdir('.')] print(files) # 21,将原字典的键值对调并产生新的字典 orginal_dict = {1: "java", 2:"python"} new_dict = {value:key for key, value in orginal_dict.items()} print(new_dict) # {'java': 1, 'python': 2} # 22,九九乘法表 for i in range(1, 10): print("") for j in range(1, i + 1): print('{} * {} = {}'.format(i, j, i*j),end=' ') # 23,计算每个月的天数 import calendar month_days = calendar.monthrange(2021, 8) print(month_days) # (4, 31) # 24, 随机生成验证码 import random, string # 数字 str_1 = '0123456789' # 字母 str_2 = string.ascii_letters print(str_2) # print(str_2) # 拼接 str_3 = str_1 + str_2 print(str_3) # 多个字符选项中选取特定数量的字符 captcha = random.sample(str_3, 6) # 得到随机取样得到列表 ['G', 'y', 'g', 'V', '0', 's'] print(captcha) # 将其转换成字符串 captcha_str = ''.join(captcha) print(captcha_str) # WQj2hM # 25,判断闰年 year = input('请输入四位数年份:') year = int(year) # 两个闰年条件,一个普通闰年,是4的倍数且不是100倍数的;还一个世纪闰年,公历年份是整百的,且必须是400的倍数 if ((year % 4 == 0 and year % 100!= 0) or (year % 400 == 0)): print("{}是闰年!".format(year)) else: print("{}不是闰年!".format(year))
逐梦很累,坚持加油。