本文所有题目均出自python3菜鸟教程,题目链接见:
(https://www.runoob.com/python3/python3-examples.html)
仅作为自己练习python编程使用。
# 用户输入两个数字 num1=float(input("输入第一个数字:")) num2=float(input("输入第二个数字:")) # 求和 sum=num1+num2 print(f'sum={sum}') print("sum={}".format(sum))
输出
输入第一个数字:5 输入第二个数字:6 sum=11.0 sum=11.0
import math num=float(input('请输入一个数字')) num_sqrt=math.sqrt(num) print(num_sqrt)
输出
请输入一个数字4 2.0
# ax^2+bx+c=0 # a,b,c为实数,a≠0 # 导入cmath(复杂数学运算)模块 import cmath a=float(input('输入a:')) b=float(input('输入b:')) c=float(input('输入c:')) # 计算 d=(b**2)-4*a*c # 两种求解方式 sol1=(-b+cmath.sqrt(d))/(2*a) sol2=(-b-cmath.sqrt(d))/(2*a) print("结果为{}和{}".format(sol1,sol2))
输出
输入a:2 输入b:3 输入c:4 结果为(-0.75+1.1989578808281798j)和(-0.75-1.1989578808281798j)
a=float(input('输入a:')) b=float(input('输入b:')) c=float(input('输入c:')) # 计算半周长 s=(a+b+c)/2 # 计算面积 area=(s*(s-a)*(s-b)*(s-c))**0.5 print("三角形面积为%0.2f"%area)
输出
输入a:3 输入b:4 输入c:5 三角形面积为6.00
import math def CycleArea(r): return math.pi*r*r r=float(input("请输入圆的半径:")) s=CycleArea(r) print("半径为{}的面积为{}".format(r,s))
输出
请输入圆的半径:4 半径为4.0的面积为50.26548245743669
# 用户输入 x=input('输入x变量:') y=input('输入y变量:') def change(x,y): temp=x x=y y=temp return x,y x,y=change(x,y) print('交换后x={},y={}'.format(x,y))
输出
输入x变量:2 输入y变量:3 交换后x=3,y=2
num=int(input("请输入一个整数:\n")) if ((num & 0x1)==0): print(f'{num}是一个偶数') else: print("{}是一个奇数".format(num))
输出
请输入一个整数: 17 17是一个奇数
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))
输出
输入一个年份:2008 2008是闰年
#该数除了1和它本身以外不再有其他的因数。 num=int(input("请输入一个大于1的整数:")) if num>3: for i in range(2,int(num/2)+1): # 只需要判断输入数的一半即可,减少运算时间 if (num % i)==0: print('{0}可以被{1}整除,故{0}不是质数'.format(num,i)) break else: print(f'{num}是质数') elif (num==2)|(num==3): print(f'{num}是质数') else: print(f'{num}不是质数')
输出
请输入一个大于1的整数:5 5是质数
# 素数(prime number)又称质数,有无限个。 # 除了1和它本身以外不再被其他的除数整除。 lower=int(input('输入区间最小值:')) upper=int(input('输入区间最大值:')) for num in range(lower,upper+1): # 素数大于1 if num>1: for i in range(2,int(num/2)+1): if(num % i)==0: break else: print(num)
输出
输入区间最小值:1 输入区间最大值:100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
# n!=1×2×3×...×n。 # 获取用户输入的数字 num=int(input('请输入一个正整数:')) factorial=1 if num<0: print("负数没有阶乘") elif num==0: print('0的阶乘为1') else: for i in range(1,num+1): factorial *= i print('{0}的阶乘为{1}'.format(num,factorial))
输出
请输入一个正整数:5 5的阶乘为120
for i in range(1,10): for j in range(1,i+1): print('{0}*{1}={2}\t'.format(j,i,i*j),end='') print('\r')
输出
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
# 斐波那契数列指的是这样一个数列 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(nth,end=' ') n1=n2 n2=nth count +=1
输出
你需要几项?10 斐波那契数列: 0 1 1 2 3 5 8 13 21 34
# 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 # 例如1^3 + 5^3 + 3^3 = 153。 # 1000以内的阿姆斯特朗数: for i in range(1,1000): bai,shi,ge=i//100,i%100//10,i%10 if (bai**3+shi**3+ge**3)==i: print(i)
输出
1 153 370 371 407
def hcf(x,y): x,y=max(x,y),min(x,y) for i in range(1,x+1): if (x%i==0) and (y%i==0): hcf=i return hcf num1=int(input("输入num1: ")) num2=int(input("输入num2: ")) print('{0}和{1}的最大公约数为:{2}'.format(num1,num2,hcf(num1,num2)))
输出
输入num1: 54 输入num2: 24 54和24的最大公约数为:6
def lcm(x,y): # x,y=max(x,y),min(x,y) for i in range(1,x*y+1): # 最小公倍数最大为x*y if (i%x==0) and (i%y==0): lcm=i break i+=1 return lcm num1=int(input("输入num1: ")) num2=int(input("输入num2: ")) print('{0}和{1}的最小公倍数为:{2}'.format(num1,num2,lcm(num1,num2)))
输出
输入num1: 54 输入num2: 24 54和24的最小公倍数为:216
# 引入日历模块 import calendar # 输入指定年月 yy=int(input('输入年份:')) mm=int(input('输入月份:')) # 显示日历 print(calendar.month(yy,mm))
输出
输入年份:2021 输入月份:12 December 2021 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
def recur_fibo(n): """ 递归函数,输出斐波那契数列 """ if n<=1: return n else: return (recur_fibo(n-1)+recur_fibo(n-2)) # 获取用户输入 nterms=int(input("您要输出几项?")) # 检查输入的数字是否正确 if nterms<=0: print("请输入正数") else: print("斐波那契数列:") for i in range(nterms): print(recur_fibo(i))
输出
您要输出几项?5 斐波那契数列: 0 1 1 2 3
# 写文件 with open('./test.txt','w+') as out_file: out_file.write('你好啊\n你真棒!') out_file.close() # 读文件 with open('./test.txt','r+') as in_file: text=in_file.read() print(text) in_file.close()
输出
你好啊 你真棒!
# 使用join连接list成为字符串 params={'server':'mp','database':'master','uid':'sa','pwd':'secret'} ['{0}={1}'.format(k,v) for k,v in params.items()] ';'.join(['{0}={1}'.format(k,v) for k,v in params.items()])
输出
['server=mp', 'database=master', 'uid=sa', 'pwd=secret'] 'server=mp;database=master;uid=sa;pwd=secret'
# list 分割字符串 li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret'] s = ";".join(li) print(s) s.split(';') s.split(';',1)
输出
'server=mpilgrim;uid=sa;database=master;pwd=secret' ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret'] ['server=mpilgrim', 'uid=sa;database=master;pwd=secret']
# list映射解析 li=[1,9,8,7] [elem*2 for elem in li]
输出
[2, 18, 16, 14]
# dictionary 中的解析 params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"} params.keys() params.values() params.items()
输出
dict_items([('server', 'mpilgrim'), ('database', 'master'), ('uid', 'sa'), ('pwd', 'secret')])
["%s=%s" % (k, v) for k, v in params.items()]
输出
['server=mpilgrim', 'database=master', 'uid=sa', 'pwd=secret']
li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"] [elem for elem in li if len(elem)>1]
输出
['mpilgrim', 'foo']