本篇主要分享了包含文件处理、数据清洗等的基础操作以及常见算法的多种实现等。可以作为入门参考。
Python 3
1、冒泡排序
lis = [56,12,1,8,354,10,100,34,43,562,4,78,61]
def sortport():
for i in range(len(lis)-1):
for j in range(len(lis)-1-i):
if(lis[j]>lis[j+1]):
lis[j],lis[j+1] = lis[j+1],lis[j]
return lis
sortport()
2、计算x的n次方
def power(x,n):
s = 1
while n > 0:
n=n-1
s=s*x
return s
power(2,8)
3、计算 a*a + b*b + c*c + ...
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n*n
return sum
calc(1,2,3)
4、计算阶乘 n!的三种实现
def fac():
num = int(input("请输入一个数字:"))
factorial = 1
#检查数字(异常处理)
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)
5、列出当前目录下的所有文件和目录名称(处理文件)
import os
[d for d in os.listdir('.')]
6、把一个list中所有的字符串变成小写
L = ['Hello','World','IBM','Python']
[s.lower() for s in L]
7、输出某路径下所有文件和文件夹的路径
def print_dir():
filepath = input("请输入一个路径:")
if(filepath == ""):
print("请输入正确的路径")
else:
for i in os.listdir(filepath): #获取目录中的文件及子目录列表
print(os.path.join(filepath,i)) #把路径组合起来
print_dir()
8、输出某个路径及其子目录下的所有文件路径
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 = "C:\Program Files"
show_dir(filepath)
9、输出某路径及其子目录下所有以.html为后缀的文件(文件查找)
def print_dir(filepath):
for i in os.listdir(filepath):
path = os.path.join(filepath,i)
if(os.path.isdir(path)):
return path
if(path.endwith(".html")):
return path
filepath = "C:\Program Files"
print_dir(filepath)
10、把原字典的键值对颠倒并产生新的字典
dict1 = {"A":"a","B":"b","C":"c"}
dict2 = {y:x for x,y in dict1.items()}
print(dict2)
11、乘法表
for i in range(1,10):
for j in range(1,i+1):
#print('{}×{}={}\t'.format(j,i,i*j),end='')
print('%d×%d =%d '%(i,j,i*j),end='')
print()
12、替换列表中所有的3为3a(文字替换)
num = ["harden","lampard",3,34,45,56,67,78,89,90,3,3,3,3,21424,42]
#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为3a
print(num)
13、打印每个名字(组合输出)
L = ["James","Tom","Meng"]
for i in range(len(L)):
print("Hello,%s"%L[i])
14、合并去重(列表操作)
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
print(list(set(list3)))
15、随机生成验证码的两种方式
import random,string
#第一种
list1 = []
for i in range(65,91):
list1.append(chr(i)) #通过for循环遍历assi追加到空列表中
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)
#第二种
str1 = "0123456789"
str2 = string.ascii_letters #string.ascii_letters包含所有字母的字符串
str3 = str1 + str2
ma1 = random.sample(str3,6) #多个字符中选取特定数量的字符
ma1 = ''.join(ma1)
print(ma1)
16、计算平方根
num = float(input('请输入一个数字:'))
num_sqrt = num ** 0.5
print(' %0.2f 的平方根为 %0.2f' % (num,num_sqrt))
17、判断字符串是否只由数字组成(清洗字符)
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except(TypeError,ValueError):
pass
return False
print(is_number('123'))
print(is_number('123a'))
18、判断奇偶数
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
19、判断闰年
import calendar
year = int(input("请输入年份:"))
check_year = calendar.isleap(year)
if(check_year == True):
print("%d是闰年" % year)
else:
print("%d是平年" % year)
20、获取最大值(两种实现)
#第一种
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('输入需要对比大小数字的个数:\n'))
num = [int(input('请输入第 %d 个对比数字:\n' % i)) for i in range(1,N+1)]
print('您输入的数字为:',num)
print('最大值为:',max(num))
21、斐波那契数列
nterms = int(input("请输入一个正整数"))
n1=0
n2=1
count=0
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
22、十进制转二进制、八进制、十六进制
dec = int(input("输入数字:"))
print("十进制数为:",dec)
print("转换为二进制为:",bin(dec))
print("转换为八进制为:",oct(dec))
print("转换为十六进制为:",hex(dec))
23、最大公约数、最小公倍数
#最大公约数
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))
#最小公倍数
def lcm(x,y):
#获取最大的数
if(x > y):
biger = x
else:
biger = y
while(True):
if(biger % x == 0 and biger % y == 0):
lcm = biger
break
biger += 1
return lcm
num1 = int(input("输入第一个数字:"))
num2 = int(input("输入第二个数字:"))
print(num1,"和",num2,"的最小公倍数为",lcm(num1,num2))
24、简易计算器
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("非法输入!")
25、生成日历(调用Calendar模块)
import calendar
#输入指定年月
yy = int(input("输入年份:"))
mm = int(input("输入月份:"))
#显示日历
print(calendar.month(yy,mm))
26、文件IO(输入输出流)
#写文件
with open("test.txt","wt") as out_file:
out_file.write("该文本写入文件中")
#读文件
with open("test.txt","rt") as in_file:
text = in_file.read()
print(text)
27、字符串判断
#测试实例一
print("测试实例")
str = "runoob. com"
print(str.isalnum()) #判断所有字符都是数字或者字母
print(str.isalpha()) #判断所有字符都是字母
print(str.isdigit()) #判断所有字符都是数字
print(str.islower()) #判断所有字符都是小写
print(str.isupper()) #判断所有字符都是大写
print(str .istitle()) #判断所有单词都是首字母大写,像标题
print(str . isspace())#判断所有字符都是空白字符、\t、 \n, \r
print("-----------------------")
#测试实例二
print("测试实例二")
str = "Bake corN"
print(str. isalnum())
print(str. isalpha())
print(str .isdigit())
print(str. islower())
print(str. isupper())
print(str . istitle())
print(str. isspace())
28、字符串大小写转换
str = "https://www.baidu.com/"
print(str.upper()) #把所有字符中的小写字母转换成大写字母
print(str.lower()) #把所有字符中的大写字母转换成小写字母
print(str.capitalize()) #把第一个字母转化为大写字母,其余小写
print(str.title()) #把每个单词的第一个字母转化为大写,其余小写
29、计算每个月天数
import calendar
monthRange = calendar.monthrange(2016,9)
print(monthRange)
30、获取昨日日期(datetime模块)
import datetime
def getYesterday():
today = datetime.date.today()
oneday = datetime.timedelta(days=1)
yesterday = today-oneday
return yesterday
print(getYesterday())
有帮助的话点个赞再走吧~
本文案例大部分来源于日常练手,有部分源自网络资源。我还会不定期更新相关技术知识,对于python web、爬虫、模式识别等有同样兴趣的朋友可以持续关注一下~