很多同学在学习了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:RealizebinaryquadraticfunctionRealizebinaryquadraticfunction数学中: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('单个数字:%d'%single_dig)print('除了单个数字:%d'%exp_single_dig)示例6:实现累加器实现一个简单的累加器,它可以接受用户输入的3个数字,并将其相加。需要使用复合赋值运算符:+="""accumulatorv1.0"""s=0x=int(input('inputinteger:'))s+=xx=int(input('inputinteger:'))s+=xx=int(input('请输入一个整数:'))s+=xprint('Sum:%d'%s)例七:判断闰年输入年份,判断是否为闰年。闰年判断方法:能被4整除,但不能被100整除;或者被400整除。需要用到算术运算符和逻辑运算符"""判断闰年"""year=int(input('输入年份:'))is_leap=year%4==0andyear%100!=0oryear%400==0print(is_leap)例8:奇偶数判断输入一个数,判断底数是否为偶数,需要取模运算,if...else结构"""判断奇数orevennumber"""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('Canformatriangle')else:print('Cannotformatriangle')例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.075elif利润<=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+200000*0.1+00000*0.1+200000*0.1+200000*0.1+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.1000*0.100.400000*0.05+600000*0.0000*0.03+(利润-利润-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-nsum"""n=int(input('inputn:'))s=0whilen>=1:s+=nn-=1print('1-%dsumresult:%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('sum:%d'%s)例18:猜谜游戏程序随机产生一个正整数供用户猜,程序根据猜的大小给出相应的提示。最后,输出用户在猜对之前必须进行的猜测次数。"""猜数字游戏"""importrandomanswer=random.randint(1,100)counter=0whileTrue:counter+=1number=int(input('猜数字(1-100):'))ifnumberanswer:print('稍微小一点')else:print('猜对了')breakprint(f'总共猜了{counter}次')例19:打印乘法表"""打印乘法表"""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('primenumber')else:print('notaprimenumber')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'The{n}thFibonaccinumberis:{a}')Example22:NarcissusThenumberofflowers水仙花的个数是一个3位数,每个数位上的数的立方之和恰好等于它本身,例如:"""水仙花的个数"""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天到第一天,可以计算“”“猴子吃桃子”“”桃子=1foriinrange(9):peach=(peach+1)*2print(peach)例24:打印一个菱形并输出如下菱形模式"""outputarhombus"""forstar_numinrange(1,7,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()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+循环,代码更简洁,可处理更灵活。"""计算佣金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)):ifprofit<=thresholds[i]:bonus+=profit*rates[i]breakelse:bonus+=thresholds[i]*rates[i]bonus+=(profit-thresholds[-1])*rates[-1]print('Bonus:%.2f'%bonus)例26:某天是一年中的某天输入某天,计算出某天是a一年中的第几天"""计算一年中的第几天"""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:ifs[i]!=s[j]:flag=Falsebreaki+=1j+=-1print('isapalindrome'ifflagelse'isnotapalindrome')例28:当个人信息输入输出没有定义类时,个人信息可以是savedinInyuanzu,students=[]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:对于theinputContentdeduplication对输入内容进行去重,直接使用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('机器学习')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,2)input_s=input('Inputrock,scissors,cloth:')input_res=rule[input_s]win=Trueifabs(rand_res-input_res)==2:#相差2表示布和石头相遇,并且出布的一方获胜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是名字,值是高度。现在字典需要根据高度重新排序。"""字典排序"""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:斐波那契数列v2.0使用递归函数生成斐波那契数列"""递归斐波那契数列"""deffib(n):return1ifn<=2elsefib(n-1)+fib(n-2)print(f'the10thFibonaccinumberis:{fib(10)}')例36:阶乘定义一个函数来实现阶乘。n的阶乘的定义:n!=123*...n"""阶乘函数"""deffact(n):如果n==1则返回1否则fact(n-1)*nprint(f'10!={fact(10)}')例37:实现range函数在Python中写一个类似range函数的函数"""rangefunction"""defrange_x(start,stop,step):res=[]whilestart