1、 冒泡排序
lis = [56,12,1,8,354,10,100,34,56,7,23,456,234,-58]
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
if __name__ == '__main__':
? ? sortport()
? ? print(lis)
? 2、計算x? 的n次方?
def power(x, n):
? ? s = 1
? ? while n > 0:
? ? ? ? n = n - 1
? ? ? ? s = s * x
? ? return s
調用方法:
print(power(2,4))
? 3、計算a*a +? b*b + c*c + …?
def calc(*numbers):
? ? sum=0
? ? for n in numbers:
? ? ? ? sum=sum+n*n
? ? return sum
print(calc(2,4,5))
? 4、計算? 階乘 n!?
#方法一
def fac():
? ? num = int(input("請輸入一個數(shù)字:"))
? ? factorial = 1
? ? #查看數(shù)字是負數(shù),0或者正數(shù)
? ? if num<0:
? ? ? ? print("抱歉,負數(shù)沒有階乘")
? ? elif num == 0:
? ? ? ? print("0的階乘為1")
? ? else:
? ? ? ? for i in range(1,num+1):
? ? ? ? ? ? factorial = factorial*i
? ? ? ? print("%d的階乘為%d"%(num,factorial))
if __name__ == '__main__':
? ? fac()
#方法二
def fac():
? ? num = int(input("請輸入一個數(shù)字:"))
? ? #查看數(shù)字是負數(shù),0或者正數(shù)
? ? if num<0:
? ? ? ? print("抱歉,負數(shù)沒有階乘")
? ? elif num == 0:
? ? ? ? print("0的階乘為1")
? ? else:
? ? ? ? print("%d的階乘為%d"%(num,factorial(num)))
def factorial(n):
? ? result = n
? ? for i in range(1,n):
? ? ? ? result=result*i
? ? return result
if __name__ == '__main__':
? ? fac()
#方法三
def fac():
? ? num = int(input("請輸入一個數(shù)字:"))
? ? #查看數(shù)字是負數(shù),0或者正數(shù)
? ? if num<0:
? ? ? ? print("抱歉,負數(shù)沒有階乘")
? ? elif num == 0:
? ? ? ? print("0的階乘為1")
? ? else:
? ? ? ? print("%d的階乘為%d"%(num,fact(num)))
def fact(n):
? ? if n == 1:
? ? ? ? return 1
? ? return n * fact(n - 1)
if __name__ == '__main__':
? ? fac()
? 5、列出當前目錄? 下的所有文件和目錄名?
import os
for d in os.listdir('.'):
? ? print(d)
另外列表推導式代碼:
[d for d in os.listdir('.')]
? 6、把一個list中? 所有的字符串變成小寫:?
L = ['Hello','World','IBM','Apple']
for s in L:
? ? s=s.lower()
? ? print(s)? ? #將list中每個字符串都變成小寫,返回每個字符串
另外列表推導式代碼:
L = ['Hello','World','IBM','Apple']
print([s.lower() for s in L])#整個list所有字符串都變成小寫,返回一個list
? 7、輸出某個路徑下的所? 有文件和文件夾的路徑?
def print_dir():
? filepath = input("請輸入一個路徑:")
? if filepath == "":
? ? print("請輸入正確的路徑")
? else:
? ? for i in os.listdir(filepath):? ? ? #獲取目錄中的文件及子目錄列表
? ? ? print(os.path.join(filepath,i))? #把路徑組合起來
print(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\Internet Explorer"
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):
? ? ? print_dir(path)
? ? if path.endswith(".html"):
? ? ? print(path)
filepath = "E:\PycharmProjects"
print_dir(filepath)
? 10、把原字典的鍵值對顛倒? 并生產新的字典?
dict1 = {"A":"a","B":"b","C":"c"}
dict2 = {y:x for x,y in dict1.items()}
print(dict2)
#輸出結果為{'a': 'A', 'b': 'B', 'c': 'C'}
? 11、打印九? 九乘法表?
for i in range(1,10):
? ? for j in range(1,i+1):
? ? ? ? print('%d x %d = %d \t'%(j,i,i*j),end='')? #通過指定end參數(shù)的值,可以取消在末尾輸出回車符,實現(xiàn)不換行。
? ? print()
? 12、替換列表中? 所有的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出現(xiàn)的次數(shù)
? ? ele_index = num.index(3)? ? ? ? #獲取首次3出現(xiàn)的坐標
? ? num[ele_index]="3a"? ? ? ? ? ? #修改3為3a
print(num)
? 13、打印每? 個名字?
L = ["James","Meng","Xin"]
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、隨機生成驗證碼的兩種方式? (數(shù)字字母)?
import random
list1=[]
for i in range(65,91):
? ? list1.append(chr(i))? ? ? ? #通過for循環(huán)遍歷asii追加到空列表中
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,string
str1 = "0123456789"
str2 = string.ascii_letters? ? # string.ascii_letters 包含所有字母(大寫或小寫)的字符串
str3 = str1+str2
ma1 = random.sample(str3,6)? ? #多個字符中選取特定數(shù)量的字符
ma1 = ''.join(ma1)? ? ? ? ? ? ? #使用join拼接轉換為字符串
print(ma1)? ? ? ? ? ? ? ? ? ? ? #通過引入string模塊和random模塊使用現(xiàn)有的方法
? 16、隨機數(shù)? 字小游戲?
#隨機數(shù)字小游戲
import random
i = 1
a = random.randint(0,100)
b = int( input('請輸入0-100中的一個數(shù)字\n然后查看是否與電腦一樣:'))
while a != b:
? ? if a > b:
? ? ? ? print('你第%d輸入的數(shù)字小于電腦隨機數(shù)字'%i)
? ? ? ? b = int(input('請再次輸入數(shù)字:'))
? ? else:
? ? ? ? print('你第%d輸入的數(shù)字大于電腦隨機數(shù)字'%i)
? ? ? ? b = int(input('請再次輸入數(shù)字:'))
? ? i+=1
else:
? ? print('恭喜你,你第%d次輸入的數(shù)字與電腦的隨機數(shù)字%d一樣'%(i,b))
? 17、計算平方? 根?
num = float(input('請輸入一個數(shù)字:'))
num_sqrt = num ** 0.5
print('%0.2f 的平方根為%0.2f'%(num,num_sqrt))
? 18、判斷字符? 串是否只由數(shù)字組成?
#方法一
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
t="a12d3"
print(is_number(t))
#方法二
t = "q123"
print(t.isdigit())? #檢測字符串是否只由數(shù)字組成
#方法三
t = "123"
print(t.isnumeric())? #檢測字符串是否只由數(shù)字組成,這種方法是只針對unicode對象
? 19、判斷? 奇偶數(shù)?
#方法一
num = int(input('請輸入一個數(shù)字:'))
if (num % 2) == 0:
? ? print("{0}是偶數(shù)".format(num))
else:
? ? print("{0}是奇數(shù)".format(num))
#方法二
while True:
? ? try:
? ? ? ? num = int(input('請輸入一個整數(shù):'))? ? ? #判斷輸入是否為整數(shù),不是純數(shù)字需要重新輸入
? ? except ValueError:
? ? ? ? print("輸入的不是整數(shù)!")
? ? ? ? continue
? ? if (num % 2) == 0:
? ? ? ? print("{0}是偶數(shù)".format(num))
? ? else:
? ? ? ? print("{0}是奇數(shù)".format(num))
? ? break
? 20、判? 斷閏年?
#方法一
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))? ? ? ? ? #非整百年能被4整除的為閏年
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)
? 21、獲取最? 大值?
N = int(input('輸入需要對比大小的數(shù)字的個數(shù):'))
print("請輸入需要對比的數(shù)字:")
num = []
for i in range(1,N+1):
? ? temp = int(input('請輸入第%d個數(shù)字:'%i))
? ? num.append(temp)
print('您輸入的數(shù)字為:',num)
print('最大值為:',max(num))
N = int(input('輸入需要對比大小的數(shù)字的個數(shù):\n'))
num = [int(input('請輸入第%d個數(shù)字:\n'%i))for i in range(1,N+1)]
print('您輸入的數(shù)字為:',num)
print('最大值為:',max(num))
? 22、斐波那? 契數(shù)列?
斐波那契數(shù)列指的是這樣一個數(shù)列 0, 1, 1, 2, 3, 5, 8, 13;特別指出:第0項是0,第1項是第一個1。從第三項開始,每一項都等于前兩項之和。
# 判斷輸入的值是否合法
if nterms <= 0:
? print("請輸入一個正整數(shù)。")
elif nterms == 1:
? print("斐波那契數(shù)列:")
? print(n1)
else:
? print("斐波那契數(shù)列:")
? print(n1, ",", n2, end=" , ")
? while count < nterms:
? ? nth = n1 + n2
? ? print(n1+n2, end=" , ")
? ? # 更新值
? ? n1 = n2
? ? n2 = nth
? ? count += 1
? 23、十進制轉二進制? 、八進制、十六進制?
# 獲取輸入十進制數(shù)
dec = int(input("輸入數(shù)字:"))
print("十進制數(shù)為:", dec)
print("轉換為二進制為:", bin(dec))
print("轉換為八進制為:", oct(dec))
print("轉換為十六進制為:", hex(dec))
? 24、最大? 公約數(shù)?
def hcf(x, y):
? """該函數(shù)返回兩個數(shù)的最大公約數(shù)"""
? # 獲取最小值
? 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
# 用戶輸入兩個數(shù)字
num1 = int(input("輸入第一個數(shù)字: "))
num2 = int(input("輸入第二個數(shù)字: "))
print(num1, "和", num2, "的最大公約數(shù)為", hcf(num1, num2))
? 25、最小? 公倍數(shù)?
# 定義函數(shù)
def lcm(x, y):
? #? 獲取最大的數(shù)
? 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("輸入第一個數(shù)字: "))
num2 = int(input("輸入第二個數(shù)字: "))
print( num1,"和", num2,"的最小公倍數(shù)為", lcm(num1, num2))
? 26、簡? 單計算器?
# 定義函數(shù)
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("輸入第一個數(shù)字: "))
num2 = int(input("輸入第二個數(shù)字: "))
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("非法輸入")
? 27、生成? 日歷?
# 引入日歷模塊
import calendar
# 輸入指定年月
yy = int(input("輸入年份: "))
mm = int(input("輸入月份: "))
# 顯示日歷
print(calendar.month(yy, mm))
? 28、文? 件IO?
# 寫文件
with open("test.txt", "wt") as out_file:
? ? out_file.write("該文本會寫入到文件中\(zhòng)n看到我了吧!")
# Read a file
with open("test.txt", "rt") as in_file:
? ? text = in_file.read()
print(text)
? 29、字? 符串判斷?
# 測試實例一
print("測試實例一")
str = "runoob.com"
print(str.isalnum()) # 判斷所有字符都是數(shù)字或者字母
print(str.isalpha()) # 判斷所有字符都是字母
print(str.isdigit()) # 判斷所有字符都是數(shù)字
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())
? 30、字符串? 大小寫轉換?
str = "https://www.cnblogs.com/ailiailan/"
print(str.upper())? ? ? ? ? # 把所有字符中的小寫字母轉換成大寫字母
print(str.lower())? ? ? ? ? # 把所有字符中的大寫字母轉換成小寫字母
print(str.capitalize())? ? # 把第一個字母轉化為大寫字母,其余小寫
print(str.title())? ? ? ? ? # 把每個單詞的第一個字母轉化為大寫,其余小寫
? 31、計算? 每個月天數(shù)?
import calendar
monthRange = calendar.monthrange(2016,9)
print(monthRange)
? 32、獲? 取昨天的日期?
# 引入 datetime 模塊
import datetime
def getYesterday():
? ? today=datetime.date.today()
? ? oneday=datetime.timedelta(days=1)
? ? yesterday=today-oneday?
? ? return yesterday
# 輸出
print(getYesterday())