1. 获取昨天日期
引入datetime模块
import datetime def getYesterday(): today = datetime.date.today() #返回当前本地日期 # oneday = datetime.timedelta(day=1) #两个日期对象的最小间隔 oneday = datetime.date.resolution #两个日期对象的最小间隔 yesterday = today - oneday return yesterday print(getYesterday()) #2020-10-17
2. 计算每个月天数
import calendar #导入日历模块 monthRange = calendar.monthrange(2020,10) #当月的天数 print(monthRange) #输出当月的天数
# (3, 31)
3. 字符串大小转换
str = "https://www.cnblogs.com/kevin.hou" print(str.upper()) #把所字符中的小写字母转换成大写字母 print(str.lower()) #把所有字符中的大写字母转换成小写字母 print(str.capitalize()) #把第一个字母转化为大写字母,其余小写 print(str.title()) #把每个单词的第一个字母转化为大写,其余小写 # HTTPS://WWW.CNBLOGS.COM/KEVIN.HOU # https://www.cnblogs.com/kevin.hou # Https://www.cnblogs.com/kevin.hou # Https://Www.Cnblogs.Com/Kevin.Hou
4. 字符串判断
#测试实例1 print("测试实例1") str = "runoob.com" # print(str.isalnum()) #判断所有的字符都是数字或者字母 print(str.isalpha()) #判断所有的字符都是字母 print(str.isdigit()) #判断所有的字符都是数字 print(str.islower()) #判断所有的字符都是小写 print(str.isupper()) #判断所有的字符都是大写 print(str.istitle()) #判断所有的单词都是首字母大写,像标题 print(str.isspace()) #判断所有的字符都是空白字符、 、 、 print("----------------------------------") #测试实例2 print("测试实例2") str = "Bake corN" print(str.isalnum()) #判断所有的字符都是数字或者字母 print(str.isalpha()) #判断所有的字符都是字母 print(str.isdigit()) #判断所有的字符都是数字 print(str.islower()) #判断所有的字符都是小写 print(str.isupper()) #判断所有的字符都是大写 print(str.istitle()) #判断所有的单词都是首字母大写,像标题 print(str.isspace()) # 测试实例1 # False # False # False # True # False # False # False # ---------------------------------- # 测试实例2 # False # False # False # False # False # False # False
5. 生成日历
#引入日历模块 import calendar #输入指定年月 yy = int(input("输入年份:")) mm = int(input("输入月份:")) #显示日历 print(calendar.month(yy, mm)) # 输入年份:2020 # 输入月份:10 # October 2020 # Mo Tu We Th Fr Sa Su # 1 2 3 4 # 5 6 7 8 9 10 11 # 12 13 14 15 16 17 18 # 19 20 21 22 23 24 25 # 26 27 28 29 30 31
输入年份:2020 输入月份:11 November 2020 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
6. 简单计算器
def add(x,y): """相加""" return x+y def subtract(x,y): """相减""" return x-y def multiply(x,y): """相乘""" return x*y def divide(x,y): """相除""" return x/y #用户输入 print("选择运算:") print("1、相加") print("2、相减") print("3、相乘") print("4、相除") choice = input("输入你的选择(1/2/3/4):") num1 = int(input("输入第一个数字:")) num2 = int(input("输入第二个数字:")) if choice == '1': print(num1, "+", num2, "=", add(num1, num2)) elif choice == '2': print(num1, "-", num2 ,"=", subtract(num1, num2)) elif choice == '3': print(num1, "*", num2, "=", multiply(num1, num2)) elif choice == '4': if num2 !=0: print(num1, "/", num2, "=", divide(num1, num2)) else: print("分母不能为0") else: print("非法输入")
选择运算: 1、相加 2、相减 3、相乘 4、相除 输入你的选择(1/2/3/4):1 输入第一个数字:2 输入第二个数字:3 2 + 3 = 5 选择运算: 1、相加 2、相减 3、相乘 4、相除 输入你的选择(1/2/3/4):2 输入第一个数字:3 输入第二个数字:5 3 - 5 = -2 选择运算: 1、相加 2、相减 3、相乘 4、相除 输入你的选择(1/2/3/4):3 输入第一个数字:4 输入第二个数字:5 4 * 5 = 20 选择运算: 1、相加 2、相减 3、相乘 4、相除 输入你的选择(1/2/3/4):4 输入第一个数字:8 输入第二个数字:4 8 / 4 = 2.0
7. 最小公倍数
#定义函数 def lcm(x,y): #获取最大的数 if x > y: greater = x else: greater = y while(True): if ((greater % x ==0) and (greater % y ==0)): lcm = greater break greater += 1 return lcm #获取用户输入 num1 = int(input("输入第一个数字:")) num2 = int(input("输入第一个数字:")) print(num1, "和", num2, "的最小公倍数为", lcm(num1, num2)) # 输入第一个数字:3 # 输入第一个数字:5 # 3 和 5 的最小公倍数为 15
8. 最大公约数
def hcf(x,y): """该函数返回两个数的最大公约数""" #获取最小值 if x > y: smaller = y else: smaller = x for i in range(1, smaller +1): if ((x % i ==0) and (y % i == 0)): hcf = i return hcf #用户输入两个数字 num1 = int(input("输入第一个数字:")) num2 = int(input("输入第二个数字:")) print(num1, "和", num2, "的最大公约数为", hcf(num1, num2))
输入第一个数字:1 输入第二个数字:2 1 和 2 的最大公约数为 1 输入第一个数字:3 输入第二个数字:5 3 和 5 的最大公约数为 1
9. 十进制转二进制、十六进制、八进制
#获取输入十进制数 dec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec)) print("转换为八进制为:",oct(dec)) print("转换为十六进制为:",hex(dec)) # 输入数字:2 # 十进制数为: 2 # 转换为二进制为: 0b10 # 转换为八进制为: 0o2 # 转换为十六进制为: 0x2
10. 斐波那契数列
#斐波那契数列指的是这样一个数列0,1,1,2,3,5,8,13;特别指出:第0项是0,第1项是第一个1. #从第三项开始,每一项都等于前两项之和。 #获取用户输入数据 nterms = int(input("你需要几项?")) #第一和第二项 n1 = 0 n2 = 1 count = 2 #判断输入的值是否合法 if nterms <= 0: print("请输入一个正整数。") elif nterms == 1: print("斐波那契数列:") print(n1) else: print("斐波那契数列:") print(n1, ",", n2 ,end = ",") while count < nterms: nth = n1 + n2 print(n1+n2, end=",") #更新值 n1 = n2 n2 = nth count +=1
你需要几项?0 请输入一个正整数。 你需要几项?1 斐波那契数列: 0 你需要几项?2 斐波那契数列: 0 , 1, 你需要几项?3 斐波那契数列: 0 , 1,1, 你需要几项?8 斐波那契数列: 0 , 1,1,2,3,5,8,13,
11. 文件I/O
with open("test.txt", "wt") as out_file: out_file.write("该文本会写入到文件中 看到我了吧!") #Read a file with open("test.txt", "rt") as in_file: text = in_file.read() print(text)
12. 获取最大值
N = int(input('输入需要对比大小数字的个数:')) print("请输入需要对比的数字:") num = [] for i in range(1, N+1): temp = int(input('输入第%d个数字:' %i)) num.append(temp) print('您输入的数字为:',num) print('最大值为:',max(num)) N = int(input('输入需要对比数字的个数: ')) num = [int(input('请输入第%d 个对比数字: ' %i)) for i in range(1, N+1)] print('您输入的数字为:', num) print('最大值为:',max(num)) # 输入需要对比大小数字的个数:2 # 请输入需要对比的数字: # 输入第1个数字:12 # 输入第2个数字:23 # 您输入的数字为: [12, 23] # 最大值为: 23
# 输入需要对比数字的个数: # 4 # 请输入第1 个对比数字: # 1 # 请输入第2 个对比数字: # 2 # 请输入第3 个对比数字: # 3 # 请输入第4 个对比数字: # 4 # 您输入的数字为: [1, 2, 3, 4] # 最大值为: 4
13. 判断闰年
year = int(input("输入一个年份:")) if (year % 4) ==0: if (year % 100) ==0: if (year % 400) ==0: print("{0}是闰年".format(year)) #整百年能被400整除的是闰年 else: print("{0}不是闰年".format(year)) else: print("{0}是闰年".format(year)) else: print("{0}不是闰年".format(year)) year = int(input("请输入一个年份:")) if (year % 4 ) == 0 and (year %100 ) !=0 or (year % 400) ==0: print("{0}是闰年.format(year)") else: print("{0}不是闰年".format(year)) import calendar year = int(input("请输入年份:")) check_year = calendar.isleap(year) if check_year == True: print("%d是闰年"% year) else: print("%d是平年"% year) # 输入一个年份:1990 # 1990不是闰年 # 请输入一个年份:1001 # 1001不是闰年 # 请输入年份:2014 # 2014是平年
14. 判断奇偶数
num = int(input("输入一个数字:")) if (num % 2) == 0: print("{0}是偶数".format(num)) else: print("{0}是奇数".format(num)) while True: try: num = int(input('输入一个整数:')) except ValueError: print("输入的不是整数!") continue if num % 2 ==0: print('偶数') else: print('奇数') break # 输入一个数字:0 # 0是偶数 # 输入一个整数:1 # 奇数
15. 计算平方根
num = float(input('请输入一个数字:')) num_sqrt = num ** 0.5 print('%0.2f的平方根为%0.2f'%(num,num_sqrt)) # 请输入一个数字:9 # 9.00的平方根为3.0
16. 随机生成验证码的两种方式
import random #导入随机函数 list1 = [] #新建列表 for i in range(65,91): list1.append(chr(i)) #通过for循环遍历assii追加到空列表中 for j in range(97,123): list1.append(chr(j)) for k in range(48,58): list1.append(chr(k)) ma = random.sample(list1,6) print(ma) #获取到的为列表 ma = ''.join(ma) #将列表转化为字符串 print(ma) import random i = 1 a = random.randint(0,100) b = int(input('请输入0-100中的一个数字 然后查看是否与电脑一样:')) while a !=b: if a > b: print('你第%d输入的数字小于电脑随机数字'%i) b = int(input('请再次输入数字:')) else: print('你第%d输入的数字大于电脑随机数字'%i) b = int(input('请再次输入数字:')) i+=1 else: print('恭喜你,你第%d次输入的数字与电脑的随机数字%d一样'%(i,b)) # 请输入0-100中的一个数字 # 然后查看是否与电脑一样:1 # 你第1输入的数字小于电脑随机数字 # 请再次输入数字:4 # 你第2输入的数字小于电脑随机数字 # 请再次输入数字:6 # 你第3输入的数字小于电脑随机数字 # 请再次输入数字:90 # 你第4输入的数字大于电脑随机数字 # 请再次输入数字:12 # 你第5输入的数字小于电脑随机数字 # 请再次输入数字:16 # 你第6输入的数字小于电脑随机数字 # 请再次输入数字:24 # 你第7输入的数字小于电脑随机数字 # 请再次输入数字:56 # 恭喜你,你第8次输入的数字与电脑的随机数字56一样
17. 合并去重
list1 = [2,3,8,4,9,5,6] list2 = [5,6,10,17,11,2] list3 = list1 + list2 print(list3) #不去重只进行两个列表的组合 print(set(list3)) #去重,类型为set需要转换成list # [2, 3, 8, 4, 9, 5, 6, 5, 6, 10, 17, 11, 2] # {2, 3, 4, 5, 6, 8, 9, 10, 11, 17}
18. 打印每个名字
L = ["James", "Meng", "Xin"] for i in range(len(L)): print("Hello,%s"%L[i]) # Hello,James # Hello,Meng # Hello,Xin
19. 替换列表中所有的3为3a
num = ["harden", "lampard", 3,34,45,56,76,87,78,45,3,3,3,87686,98,76] print(num.count(3)) print(num.index(3)) for i in range(num.count(3)): #获取3出现的次数 ele_index = num.index(3) #获取首次3出现的坐标 num[ele_index] = "3a" #修改3为3 print(num) # 4 # 2 # ['harden', 'lampard', '3a', 34, 45, 56, 76, 87, 78, 45, 3, 3, 3, 87686, 98, 76] # ['harden', 'lampard', '3a', 34, 45, 56, 76, 87, 78, 45, '3a', 3, 3, 87686, 98, 76] # ['harden', 'lampard', '3a', 34, 45, 56, 76, 87, 78, 45, '3a', '3a', 3, 87686, 98, 76] # ['harden', 'lampard', '3a', 34, 45, 56, 76, 87, 78, 45, '3a', '3a', '3a', 87686, 98, 76]
20. 打印9*9乘法表
for i in range(1, 10): for j in range(1, i+1): # print('{}x{}={} '.format(j,i,i*j),end='') print('%d x %d =%d '%(i,j,i*j),end='') print() 1 x 1 =1 2 x 1 =2 2 x 2 =4 3 x 1 =3 3 x 2 =6 3 x 3 =9 4 x 1 =4 4 x 2 =8 4 x 3 =12 4 x 4 =16 5 x 1 =5 5 x 2 =10 5 x 3 =15 5 x 4 =20 5 x 5 =25 6 x 1 =6 6 x 2 =12 6 x 3 =18 6 x 4 =24 6 x 5 =30 6 x 6 =36 7 x 1 =7 7 x 2 =14 7 x 3 =21 7 x 4 =28 7 x 5 =35 7 x 6 =42 7 x 7 =49 8 x 1 =8 8 x 2 =16 8 x 3 =24 8 x 4 =32 8 x 5 =40 8 x 6 =48 8 x 7 =56 8 x 8 =64 9 x 1 =9 9 x 2 =18 9 x 3 =27 9 x 4 =36 9 x 5 =45 9 x 6 =54 9 x 7 =63 9 x 8 =72 9 x 9 =81
21.把原字典的键值对颠倒并生产新的字典
dict1 = {"A": "a", "B": "b", "C": "c"}
dict2 = {y:x for x,y in dict1.items()}
print(dict2)
# {'a': 'A', 'b': 'B', 'c': 'C'}
22. 合并去重
list1 = [2,3,8,4,9,5,6] list2 = [5,6,10,17,11,2] list3 = list1 + list2 print(list3) #不去重只进行两个列表的组合 print(set(list3)) #去重,类型为set需要转换成list # [2, 3, 8, 4, 9, 5, 6, 5, 6, 10, 17, 11, 2] # {2, 3, 4, 5, 6, 8, 9, 10, 11, 17}
23. 输出某个路径及其子目录下所有以.html为后缀的文件
import os def print_dir(filepath): for i in os.listdir(filepath): path = os.path.join(filepath, i) if os.path.isdir(path): print_dir(path) if path.endswith(".html"): print(path) filepath = "E:Anaconda" print_dir(filepath) E:AnacondaLibidlelibhelp.html E:AnacondaLibsite-packagesalabasterabout.html E:AnacondaLibsite-packagesalabasterdonate.html E:AnacondaLibsite-packagesalabasterlayout.html E:AnacondaLibsite-packagesalabaster avigation.html
24. 输出某个路径及其子目录下的所有文件路径
import os def show_dir(filepath): for i in os.listdir(filepath): path = (os.path.join(filepath, i)) #isdir()判断是否是目录 print(path) #如果是目录,使用递归方法 filepath = "C:Program FilesInternet Explorer" show_dir(filepath) C:Program FilesInternet ExplorerD3DCompiler_47.dll C:Program FilesInternet ExplorerDiagnosticsHub.DataWarehouse.dll C:Program FilesInternet ExplorerDiagnosticsHub.ScriptedSandboxPlugin.dll C:Program FilesInternet ExplorerDiagnosticsHub_is.dll C:Program FilesInternet ExplorerDiagnosticsTap.dll C:Program FilesInternet Exploreren-US C:Program FilesInternet ExplorerExtExport.exe C:Program FilesInternet ExplorerF12.dll C:Program FilesInternet ExplorerF12Resources.dll C:Program FilesInternet ExplorerF12Tools.dll C:Program FilesInternet Explorerie9props.propdesc C:Program FilesInternet Exploreriediagcmd.exe C:Program FilesInternet Exploreriedvtool.dll C:Program FilesInternet Explorerieinstal.exe C:Program FilesInternet Explorerielowutil.exe C:Program FilesInternet Explorerieproxy.dll C:Program FilesInternet ExplorerIEShims.dll C:Program FilesInternet Exploreriessetup.ceb C:Program FilesInternet Exploreriessetup.dll C:Program FilesInternet Exploreriexplore.exe C:Program FilesInternet Explorerimages C:Program FilesInternet Explorerjsdbgui.dll C:Program FilesInternet Explorerjsdebuggeride.dll C:Program FilesInternet ExplorerJSProfilerCore.dll C:Program FilesInternet Explorerjsprofilerui.dll C:Program FilesInternet Explorerlog C:Program FilesInternet ExplorerMemoryAnalyzer.dll C:Program FilesInternet Explorermsdbg2.dll C:Program FilesInternet Explorer etworkinspection.dll C:Program FilesInternet Explorerpdm.dll C:Program FilesInternet Explorerpdmproxy100.dll C:Program FilesInternet Explorerperfcore.dll C:Program FilesInternet Explorerperf_nt.dll C:Program FilesInternet ExplorerPlugins C:Program FilesInternet ExplorerSIGNUP C:Program FilesInternet Explorersqmapi.dll C:Program FilesInternet ExplorerTimeline.cpu.xml C:Program FilesInternet ExplorerTimeline.dll C:Program FilesInternet ExplorerTimeline_is.dll C:Program FilesInternet Explorerzh-CN
25. 输出某个路径下的所有文件和文件夹的路径
import os def print_dir(): filepath = input("请输入一个路径:") if filepath == "": print("请输入正确的路径") else: for i in os.listdir(filepath): #获取目录中的文件及其子目录列表 print(os.path.join(filepath,i)) #把路径组合起来 print(print_dir())
26. 把一个list中所有的字符串变成小写:
L = ['Hello', 'World', 'SONY', 'SHARP', 'GEA'] for s in L: s.lower() print(s.lower()) hello world sony sharp gea
27. 列出当前目录下的所有文件和目录名
import os def show_dir(filepath): for i in os.listdir(filepath): path = (os.path.join(filepath, i)) print(path) if os.path.isdir(path): # isdir()判断是否是目录 show_dir(path) # 如果是目录,使用递归方法 filepath = "E:/" print(show_dir(filepath))
28.计算阶乘n!
def fac(): num = int(input("请输入一个数字:")) factorial = 1 #查看数字是负数,0或正数 if num < 0: print("抱歉,负数没有阶乘!!!") elif num == 0: print("0的阶乘为1") else: for i in range(1, num + 1): factorial = factorial * i print("%d 的阶乘为 %d" %(num, factorial)) def factorial(n): result = n for i in range(1, n): result *=i return result # def fact(n): # if n==1: # return 1 # return n * fact(n-1) print(fac())
请输入一个数字:-1 抱歉,负数没有阶乘!!! None 请输入一个数字:0 0的阶乘为1 None 请输入一个数字:3 3 的阶乘为 6 None
29. 计算a*a +b*b +c*c +..........
#求平方和 def calc(numbers): sum = 0 for n in numbers: sum = sum + n*n return sum print(calc(numbers=[1,2,3] )) #14
30. 计算x的n 次方
def power(x,n): s = 1 while n >0 : n = n-1 s = s*x return s print(power(2,3)) # 8
31. 冒泡排序
list = [56,12,1,8,354,10,100,34,56,7,23,456,234,-58] #需要排序的列表 def sortport(): #定义排序函数 for i in range(len(list)-1): #判断i在len(list)-1列表中 for j in range(len(list)-1-i): #判断j在len(list)-1-i列表中 if list[j] > list[j+1]: #判断list[j]的值和list[j+1]的值大小 list[j],list[j+1] = list[j+1],list[j] #进行排序 return list #返回最终排好序的列表,按从小到大顺序排列 print(sortport()) # [-58, 1, 7, 8, 10, 12, 23, 34, 56, 56, 100, 234, 354, 456]
print(len(list)) #len(list)为计算list中值的个数,为14