呕心沥血整理的30个Python代码实现的常用功能

python 3.7,呕心沥血整理的30个Python代码实现的常用功能

涉及到的常用功能:
字符串相关操作
列表相关操作
生成日历,判断闰年
IO操作
基础数学计算
冒泡排序
turtle画五角星

#1,字符串大小写转换

str_random = 'you can DO whatever you want to DO with python'
print(str_random.title())       #每个单词的第一个字母大写
print(str_random.capitalize())  #只转换第一个字母为大写
print(str_random.lower())       #所有字母转换成小写
print(str_random.upper())       #所有字母转换成大写

在这里插入图片描述
#2,判断字符串的类型(可以自己写 test case)

print('test case 1')
str_random = 'python3.7/Java/C++'
print(str_random.islower())    #判断字符是否都是小写
print(str_random.isupper())    #判断字符是否是都大写
print(str_random.istitle())    #判断字符是否是标题大写
print(str_random.isspace())    #判断字符是否都是空白字符,\n\t\r
print(str_random.isalnum())    #判断字符是否都是数字或者字母
print(str_random.isalpha())    #判断字符是否是都是字母
print(str_random.isdigit())    #判断字符是否是都是数字

在这里插入图片描述
#3,计算任意月份的天数

import calendar
year = int(input('please enter the year: '))
month = int(input('please enter the month: '))
DaysofMonth = calendar.monthrange(year, month)
print('%s year %s month has %s (weekday, days)' % (year, month, DaysofMonth))
#weekady是这个month的第一天的工作日,比如input的是2020年10月,(weekday, days)=(3,31)即10月1日是星期四,本月有31天。

在这里插入图片描述
#4,获取前天,昨天,今天的日期

import datetime
today = datetime.date.today()
oneday = datetime.timedelta(days = 1)
yesterday = today - oneday
thedaybeforeyesterday = today - 2 * oneday
print(thedaybeforeyesterday, '\n', yesterday, '\n', today)

在这里插入图片描述
#5,生成日历

import calendar
year = int(input('please enter the year: '))
month = int(input('please enter the month: '))
print(calendar.month(year, month))      #输出当月的日历
print(calendar.calendar(year))          #输出整年的日历

在这里插入图片描述
#6,判断是否是闰年

year = int(input('please enter the year: '))
if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:
    print('%s is leap year' %  (year))
else:
    print('%s is NOT leap year' %  (year))

在这里插入图片描述
#7,文件IO操作

with open('test.txt', 'wt') as out_txt:    #写入内容
    out_txt.write('this text will be written into file \n you can see me now.')

with open('test.txt', 'rt') as in_txt:     #读取内容
    content = in_txt.read()
print(content)

在这里插入图片描述
#8,输出指定文件的路径,以.mp3为例

import os
path = r'C:\Users\python_music download'
musicpathlist = []
for root, dirs, files in os.walk(path):    #root为文件夹的名字, dirs为文件夹下子文件夹集合, files为文件夹中的文件集合
    for file in files:
        if os.path.splitext(file)[1] == '.mp3':    #判断是否是mp3文件
            musicpathlist.append(os.path.join(path, file))     #生成列表
print(musicpathlist)

在这里插入图片描述
#9,输出某个路径下的所有子文件夹路径

import os
filepath = r'C:\python test\test_202009'
for i in os.listdir(filepath):
    subfilepath = (os.path.join(filepath, i))    #文件夹下的所有目录,包含子文件夹目录
    if os.path.isdir(subfilepath):               #只输出是子文件夹的目录
        print(subfilepath)

在这里插入图片描述
#10, 正则匹配,以51job为例

import re
file = open('51job.txt', encoding='UTF-8')      #搜索后F12检查源代码,copy tag的内容到txt中,也可以用request模块
contents = str(file.readlines())                #读取内容
pattern_tag1 = re.compile(r'{"type":.*?"tags":.*?"job_name":"(.*?)".*?"adid":""}', re.S)            #匹配工作title
pattern_tag2 = re.compile(r'{"type":.*?"tags":.*?"company_name":"(.*?)".*?"adid":""}', re.S)        #匹配公司名
pattern_tag3 = re.compile(r'{"type":.*?"tags":.*?"providesalary_text":"(.*?)".*?"adid":""}', re.S)  #匹配薪资
pattern_tag4 = re.compile(r'{"type":.*?"tags":.*?"workarea_text":"(.*?)".*?"adid":""}', re.S)       #匹配工作地点
pattern_tag5 = re.compile(r'{"type":.*?"tags":.*?"updatedate":"(.*?)".*?"adid":""}', re.S)          #匹配发布日期
tag1_list = re.findall(pattern_tag1, contents)              #以列表形式存储各项内容
tag2_list = re.findall(pattern_tag2, contents)
tag3_list = re.findall(pattern_tag3, contents)
tag4_list = re.findall(pattern_tag4, contents)
tag5_list = re.findall(pattern_tag5, contents)
print(tag1_list, len(tag1_list))        #输出并检查
print(tag2_list, len(tag2_list))
print(tag3_list, len(tag3_list))
print(tag4_list, len(tag4_list))
print(tag5_list, len(tag5_list))        #以上5类信息(也可增加匹配其他信息)可以整合在同一个列表中
file.close()

在这里插入图片描述
#11,简单操作excel,以例10匹配的5类信息的内容为例

import xlwt
file1 = xlwt.Workbook()
sheet = file1.add_sheet('job_info')             #创建工作表
row0 = ["序号","职位名","公司名","工作地点","薪资","发布时间"]        #第一行内容
for i in range(0, len(row0)):           
    sheet.write(0, i, row0[i])          #第一行内容写入
for j in range(0, len(tag1_list)):
    sheet.write(j+1, 0, j+1)            #第一列序号内容写入
    sheet.write(j+1, 1, tag1_list[j])   #第二列job_name内容写入
    sheet.write(j+1, 2, tag2_list[j])   #第三列company_name内容写入
    sheet.write(j+1, 3, tag3_list[j])   #第四列providesalary_text内容写入
    sheet.write(j+1, 4, tag4_list[j])   #第五列workarea_text内容写入
    sheet.write(j+1, 5, tag5_list[j])   #第六列updatedate内容写入
file1.save('test_51job.xls')       #保存

在这里插入图片描述
#12,十进制转换成二进制,八进制,十六进制

num = int(input('please enter a number: '))
print('decimal number is:', num)
print('binary number is:', bin(num))
print('octonary number is:', oct(num))
print('hexadecimal number is:', hex(num))

在这里插入图片描述
#13,求两个数的最大公约数

x = int(input('please enter a number: '))
y = int(input('please enter another number: '))
def gcd(a, b):
    if a < b:
        a, b = b, a
    while b != 0:
        temp = a % b
        a, b = b, temp
    return a
print('the greatest common divisor of %s and %s is %s' % (x, y, gcd(x, y)))

在这里插入图片描述
#14,求两个数的最小公倍数

x = int(input('please enter a number: '))
y = int(input('please enter another number: '))
bigger = max(x, y)
smaller = min(x, y)
for i in range(1, smaller + 1):
    if bigger * i % smaller == 0:
        print('the least common multiple of %s and %s is %s' % (x, y, bigger * i))
        break

在这里插入图片描述
#15,生成斐波那契数列

n = int(input('please enter a number: '))
def fib(n):
    if n == 1:
        return [1]
    if n == 2:
        return [1, 1]
    fib = [1, 1]
    for i in range(2, n):
        fib.append(fib[-1] + fib[-2])
    return fib
print(fib(n))

在这里插入图片描述
#16,获取最大值和最小值

numbers = list(map(int, input('please enter the numbers and split with space:').split()))
print('the max number is %s' % (max(numbers)))
print('the min number is %s' % (min(numbers)))

在这里插入图片描述
#17,判断奇数和偶数

numbers = list(map(int, input('please enter the numbers and split with space:').split()))
for i in range(len(numbers)):
    if numbers[i] % 2 == 0:
        print('%s is an even number.' % numbers[i])
    else:
        print('%s is an odd number.' % numbers[i])

在这里插入图片描述
#18,计算x的平方根和立方根

x = float(input('please enter a number x = '))
print('x square root is %.5f' % (x ** (1 / 2)))
print('x cube root is %.5f' % (x ** (1 / 3)))

在这里插入图片描述
#19,输出9*9乘法表,

for i in range(1, 10):
    for j in range(1, i + 1):
        print('%d * %d = %d' ', ' % (i, j, i * j), end = '')
    print('\n') 

在这里插入图片描述
#20,计算阶乘n!

n = int(input('please enter a number: '))
Factorial = n
for i in range(1, n):
    Factorial *= i
print('%s! = %s' % (n, Factorial))

在这里插入图片描述
#21,计算a的平方+b的平方+c的平方+…

array = list(map(int, input('please enter the numbers and split with space:').split()))
sum_array = 0
for i in range(len(array)):
    sum_array += array[i] * array[i]
print(sum_array)

在这里插入图片描述
#22,计算x的n次方

x = float(input('please enter x = '))
n = int(input('please enter n = '))
print('the %sth power of %.2f is %.2f' % (n, x, x ** n))

在这里插入图片描述
#23,list中的字符大小写转换

list_name = ['Tom', 'Robert', 'Jimmt', 'Lucy', 'Aaron', 'Jack', 'Peter']
print([i.capitalize() for i in list_name])
print([i.upper() for i in list_name])
print([i.lower() for i in list_name])

在这里插入图片描述
#24,字典key和value对换位置产生新字典

dict_x = {'Jan': '1', 'Feb' : '2', 'Mar' : '3', 'Apr' : '4'}
print(dict_x)
dict_y = {b : a for a, b in dict_x.items()}
print(dict_y)

在这里插入图片描述
#25,逐个输出列表中的每个元素

list_name = ['Tom', 'Robert', 'Jimmt', 'Lucy', 'Aaron', 'Jack', 'Peter']
for i in range(len(list_name)):
    print('%s is getting rich!' % (list_name[i]))

在这里插入图片描述
#26, 逐个打印列表中每个元素的字符

list_com = ['writing', 'encourage', 'you', 'enroll', 'advantage', 'course']
for i in range(len(list_com)):
    for j in range(len(list_com[i])):
        print(list_com[i][j], end = ' ')

在这里插入图片描述
#27,合并列表并去除重复元素

list_a = [456,867,132,7,465,1,9,563,4]
list_b = [546,465,456,45,123,1,54,867,8,7]
print(list_a + list_b)                      #两个列表重新组合,有重复
print(set(list_a + list_b))                 #两个列表重新组合,无序,没有重复,输出的是集合
print(list(set(list_a + list_b)))           #两个列表重新组合,无序,没有重复,输出的是列表
print(sorted(list(set(list_a + list_b))))   #两个列表重新组合,有序,没有重复,输出的是列表

在这里插入图片描述
#28,随机生成验证码,可以取消循环

import random, string
count = 0
while True:
    num_random = '0123456789'
    str_random = string.ascii_letters
    ver_code = random.sample(num_random + str_random, 6)
    ver_code = ''.join(ver_code)
    print(ver_code)
    count += 1
    if count >= 10:
        break

在这里插入图片描述
#29,冒泡排序

list_random = [456,15,48,9,6,41,8,59,4,498,94,84,96,56,554,56,114,564,45,64]
def BubbleSort():
    for i in range(len(list_random) - 1):
        for j in range(len(list_random) - 1 - i):
            if list_random[j] > list_random[j + 1]:
                list_random[j], list_random[j + 1] = list_random[j + 1], list_random[j]
    return list_random
print(BubbleSort())

在这里插入图片描述
#30, turtle画五角星

import turtle
turtle.pensize(15)
turtle.pencolor('yellow')
turtle.speed(3)
turtle.fillcolor('red')
turtle.hideturtle()
turtle.begin_fill()
for _ in range(5):
    turtle.forward(200)
    turtle.right(144)
turtle.end_fill()
turtle.penup()
turtle.goto(-20,-180)
turtle.color('violet')
turtle.write('Five-pointed Star', font=('Arial', 25, 'normal'))
turtle.mainloop()

在这里插入图片描述
感谢大家看到这里,如上述例子有出入,还望指正,十分感谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值