• python常用功能


    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

      

      

      

      

     

      

     

     

      

      

     

     

     

  • 相关阅读:
    koa2跨域模块koa2-cors
    使用spring等框架的web程序在Tomcat下的启动顺序及思路理清
    logback 配置解析
    java 学习总结
    如何删除git远程分支
    C++11 锁 lock
    CAS 与 无锁队列
    docker 配置
    vim 中Taglist的安装和使用
    基于C++11的线程池,简洁且可以带任意多的参数
  • 原文地址:https://www.cnblogs.com/kevin-hou1991/p/13828821.html
Copyright © 2020-2023  润新知