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

2024-01-18 14:32

本文主要是介绍呕心沥血整理的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, awhile b != 0:temp = a % ba, b = b, tempreturn 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_lettersver_code = random.sample(num_random + str_random, 6)ver_code = ''.join(ver_code)print(ver_code)count += 1if 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()

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

这篇关于呕心沥血整理的30个Python代码实现的常用功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/619308

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time