很多同学在学习了Python之后,还是觉得很难灵活运用。我编译了37个Python入门小程序。把Python应用到实践中,会事半功倍。例1:华氏转摄氏华氏转摄氏公式:C=(F-32)/1.8。此示例检查Python的加法、减法、乘法和除法运算符。"""将华氏度转换为摄氏度"""f=float(input('输入华氏度:'))c=(f-32)/1.8print('%.1f华氏度=%.1f摄氏度'%(f,c))例2:计算圆的周长和面积输入半径,计算圆的半径和面积,圆的周长公式:2πr,面试公式:π*r^2"""radius计算圆的周长和面积"""radius=float(input('请输入圆的半径:'))perimeter=2*3.1416*radiusarea=3.1416*radius*radiusprint('周长:%.2f'%perimeter)print('area:%.2f'%area)例三:一元线性函数的实现数学中一元线性函数的实现:f(x)=2x+1"""一元线性函数"""x=int(input('Inputx:'))y=2*x+1print('f(%d)=%d'%(x,y))Example4:Implementbinaryquadraticfunction实现二元二次函数数学中的函数:f(x,y)=2x^2+3y^2+4xy,需要用到指数运算符**"""二元二次函数"""x=int(input('inputx:'))y=int(input('Entery:'))z=2*x**2+3*y**2+4*x*yprint('f(%d,%d)=%d'%(x,y,z))例5:分隔整数的个位数分隔正整数的个位数和除个位数以外的部分。您需要使用模(余数)运算符%,以及整数除法运算符//"""分隔整数数字"""x=int(input('Inputinteger:'))single_dig=x%10exp_single_dig=x//10print('singledigits:%d'%single_dig)print('Exceptsingledigits:%d'%exp_single_dig)示例6:实现累加器实现一个简单的累加器,可以接受用户输入的3个数字,并将其相加。需要使用复合赋值运算符:+="""Accumulatorv1.0"""s=0x=int(input('Inputinteger:'))s+=xx=int(input('Inputinteger:'))s+=xx=int(input('Inputinteger:'))s+=xprint('Sum:%d'%s)例七:判断闰年输入年份,判断是否为闰年。闰年判断方法:能被4整除,但不能被100整除;或者被400整除。需要用到算术运算符和逻辑运算符"""判断闰年"""year=int(input('Inputyear:'))is_leap=year%4==0andyear%100!=0oryear%400==0print(is_leap)例八:奇数或偶数的判断输入一个数,判断底数是否为偶数,需要取模运算和if...else结构"""奇数或偶数的判断evennumber"""in_x=int(input('Inputinteger:'))ifin_x%2==0:print('evennumber')else:print('oddnumber')示例9:猜测大小用户输入1-6之间的整数,并将其与程序随机生成的数字进行比较。需要用到if...elif...else结构"""guesssize"""importrandomin_x=int(input('inputinteger:'))rand_x=random.randint(1,6)print('programrandomNumber:%d'%rand_x)ifin_x>rand_x:print('userwins')elifin_xcanda+c>bandb+c>a:print('可以形成三角形')else:print('不能形成三角形')例13:输出成绩输入成绩,输出分数对应的等级。=90分是A,[80,90)是B,[70,80)是C,[60,70)是D,<60是E"""输出成绩"""score=float(input('请输入成绩:'))ifscore>=90:grade='A'elifscore>=80:grade='B'elifscore>=70:grade='C'elifscore>=60:grade='D'else:grade='E'print('Gradegradeis:',grade)例14:佣金的计算某企业的奖金根据销售利润,按照以下规则计算。输入销售利润以计算奖金。利润<=10万,奖金10%10万<利润<=20万,10万以上部分7.5%20万<利润<=40万,5%20万以上部分40万<利润<=60万元,部分利润3%超过40万元>60万元,超过60万元的部分1%"""计算佣金v1.0"""profit=float(input('输入销售利润(元):'))IfProfit<=100000:bonus=利润*0.1elif利润<=200000:奖金=100000*0.1+(利润-100000)*0.075lif利润<=400000:奖金=100000*0.1+++200000*0.075+(利润-200000)*0.05elif利润<=600000:奖金=100000*0.1+200075+400000*0.05+(利润-400000)*0.03el:奖金=100000*0.1+200000*0.1+200000*0.1+200000*0.1+00000*0.1*0.000+00000*0.1+200000*0.1+0,000*0.1+00000*0.1+100000*0.1+100000*0.1+100000*00.1+100000*00.10000*00.1000*0.100.400000*0.050+6(profit-600000)*0.01print('bonus:%.2f'%bonus)示例15:实现分段函数在数学中,分段函数是经常看到的,以下分段函数由程序实现"""分段函数"""x=int(input('input:'))ifx>0:y=3*x**2+4else:y=2*x+2print('f(%d)=%d'%(x,y))例16:1-n求和输入一个正整数n,计算1+2+...+n的结果。"""1-n求和"""n=int(input('inputn:'))s=0whilen>=1:s+=nn-=1print('1-%d求和结果:%d'%(n,s))例17:累加器v2.0之前实现的累加器只能支持3个数的相加,现在需要去掉这个限制,可以无限相加。"""Accumulatorv1.0"""s=0whileTrue:in_str=input('Inputinteger(enterq,thenexit):')ifin_str=='q':breakx=int(in_str)s+=xprint('Summation:%d'%s)例18:猜谜游戏程序随机生成一个正整数供用户猜,程序根据猜的大小给出相应的提示。最后,输出用户在猜对之前必须进行的猜测次数。"""猜数字游戏"""importrandomanswer=random.randint(1,100)counter=0whileTrue:counter+=1number=int(input('猜数字(1-100):'))ifnumberanswer:print('smaller')else:print('guessed')breakprint(f'guessed{counter}timesintotal')例19:打印乘法表formulas"""打印乘法公式表"""foriinrange(1,10):forjinrange(1,i+1):print(f'{i}*{j}={i*j}',end='\t')例20:是否为素数输入一个正整数,判断是否为素数。素数的定义:在大于1的自然数中,自然数只能被1和它本身整除。如:3,5,7"""判断是否是素数"""num=int(input('请输入正整数:'))end=int(num//2)+1#Only判断前半部分是否只能整除,前半部分不可整除。因此,后半部分一定不能整除is_prime=Trueforxinrange(2,end):ifnum%x==0:is_prime=Falsebreakifis_primeandnum!=1:print('素数')else:print('非质数')range(2,end)可以生成2,3,...end序列,给x赋值执行循环。range还有如下用法range(10):generate0,1,2,...9sequencerange(1,10,2):generate1,3,5,...9sequenceexample21:FibonacciEntera正整数n计算第n位的斐波那契数。斐波那契数列当前位置的数等于前两个数之和,112358..."""斐波那契数列v1.0"""n=int(input('输入n:'))a,b=0,1for_inrange(n):a,b=b,a+bprint(f'{n}thFibonaccinumberis:{a}')例22:水仙花数水仙花的个数是一个三位数,每个数位上的数的立方之和正好等于它本身,例如:"""水仙花数"""fornuminrange(100,1000):low=num%10mid=num//10%10high=num//100ifnum==low**3+mid**3+high**3:print(num)例23:猴子吃桃子和猴子在我第一天吃n个桃子的时候摘了,那天我吃了一半,但我仍然没有上瘾。又吃了一个,第二天早上把剩下的桃子吃了一半。多吃一个后,每天早上吃前一天剩下的一半。零一。第10天早上再想吃的时候,只剩下一个桃子了。查看您在第一天采摘了多少。逆向思维:第n-1天的桃子=(第n天的桃子+1)*2,从第10天到第1天,可以循环计算。"""猴子吃桃子"""桃子=1foriinrange(9):peach=(peach+1)*2print(peach)示例24:printdiamond"""outputdiamond"""forstar_numinrange(1,7,2):blank_num=7-star_numfor_范围内(blank_num//2):print('',end='')for_inrange(star_num):print('*',end='')for_inrange(blank_num//2):print('',end='')print()for_inrange(7):print('*',end='')print()forstar_numinrange(5,0,-2):blank_num=7-star_numfor_inrange(blank_num//2):print('',end='')for_inrange(star_num):print('*',end='')for_inrange(blank_num//2):print('',end='')print()例25:计算佣金v2.0会变例14:计算佣金使用list+loop的方法,代码更简洁,可以处理起来更灵活。"""计算佣金v2.0"""profit=int(input('输入销售利润(元):'))bonus=0thresholds=[100000,200000,400000,600000]rates=[0.1,0.075,0.05,0.03,0.01]foriinrange(len(thresholds)):如果利润<=thresholds[i]:bonus+=profit*rates[i]breakelse:bonus+=thresholds[i]*rates[=(profit-thresholds[-1])*rates[-1]print('bonus:%.2f'%bonus)例26:某日为一年中的某一天,输入某日,计算出该日为某日年的"""计算一年中的第几天"""months=[0,31,28,31,30,31,30,31,31,30,31,30,31]res=0year=int(input('Year:'))month=int(input('Month:'))day=int(input('Number:'))ifyear%4==0andyear%100!=0oryear%400==0:#闰年2月29日months[2]+=1foriinrange(month):res+=months[i]print(res+day)例27:返回文本字符串判断一个字符串是否为一个回文。回文是正读和反读相同的字符串,如:level"""判断是否为回文"""s=input('inputString:')i=0j=-1s_len=len(s)flag=Truewhilei!=s_len+j:如果s[i]!=s[j]:flag=Falsebreaki+=1j+=-1print('isapalindrome'ifflagelse'isnotapalindrome')例28:当个人信息输入输出没有定义类时,个人信息可以是savedininyuanzustudents=[]whileTrue:input_s=input('请输入学生信息(学号,姓名,性别),空格分隔(输入q,然后退出):')ifinput_s=='q':breakinput_cols=input_s.split('')students.append((input_cols[0],input_cols[1],input_cols[2]))print(students)例29:个人信息排序个人信息存储在元组中,按学生排序号码、姓名或按性别排序"""个人信息排序"""students=[]cols_name=['学号','姓名','性别']whileTrue:input_s=input('输入学生信息(学号,姓名,性别),分隔按空格(输入q,退出):')ifinput_s=='q':breakinput_cols=input_s.split('')students.append((input_cols[0],input_cols[1],input_cols[2]))sorted_col=input('Inputsortingattribute:')sorted_idx=cols_name.index(sorted_col)#根据输入属性获取元组的索引print(sorted(students,key=lambdax:x[sorted_idx]))Example30:FortheinputContentdeduplication对输入内容进行去重,直接使用Python中的Set集合实现"""Deduplication"""input_set=set()whileTrue:s=input('输入内容(输入q,然后退出):')ifs=='q':breakinput_set.add(s)print(input_set)例31:输出集的交集鉴于Pythonweb工程师和算法工程师所需的技能,计算两者的交集。"""设置交集"""python_web_programmer=set()python_web_programmer.add('python基础')python_web_programmer.add('网络知识')ai_programmer=set()ai_programmer.add('python基础')ai_programmer.add('MachineLearning')inter_set=python_web_programmer.intersection(ai_programmer)print('技能交集:',end='')print(inter_set)Python集合set不仅可以计算交集,还可以计算并补例32:猜谜游戏实现带有程序的剪刀石头布游戏。"""猜拳游戏"""#0代表布,1代表剪刀,2代表石头importrandomrule={'布':0,'剪刀':1,'石头':2}rand_res=random.randint(0,ifrand_res==0:win=Falseelifrand_res>input_res:#在相差为1的情况下,谁赢谁赢win=Falseprint(f'programoutput:{list(rule.keys())[rand_res]},input:{input_res}')ifrand_res==input_res:print('flat')else:print('win'ifwinelse'lose')例33:字典排序字典的key是name,value是the高度,现在字典需要根据高度重新排序。"""字典排序"""hs={'张三':178,'李四':185,'王麻子':175}print(dict(sorted(hs.items(),key=lambdaitem:item[1])))例34:二元二次函数v2.0将二元二次函数封装在一个函数中,方便调用。"""二元二次函数v2.0"""deff(x,y):return2*x**2+3*y**2+4*x*yprint(f'f(1,2)={f(1,2)}')例35:Fibonacci数列v2.0使用递归functiontogenerateFibonaccisequence"""RecursiveFibonaccisequence"""deffib(n):return1ifn<=2elsefib(n-1)+fib(n-2)print(f'第10个斐波那契数是:{fib(10)}')例36:阶乘定义一个函数来实现阶乘。n的阶乘的定义:n!=1*2*3*...n"""阶乘函数"""deffact(n):如果n==1则返回1elsefact(n-1)*nprint(f'10!={fact(10)}')例37:实现range函数用Python写一个类似于range函数的函数"""rangefunction"""defrange_x(start,stop,step):res=[]whilestart