python3例子,python3练手经典100例
由于最近人工智能和编译原理的实验,我决定学习python3。不为别的,就因为我语言基础差,现在只能用python。我在网上看了一圈python的例子,都是只有python2的,所以我决定把python2的例子写成手动的python3。希望通过这100个例子,掌握python3的基本代码能力。
例1:题目:有1,2,3,4个数。可以形成多少个互不相同且无重复的三位数?它们多少钱?
sum=对于范围(1,5)内的I:对于范围(1,5)内的j:对于范围(1,5)内的k:如果I!=j和j!=k和我!=k: print(i,j,k) sum=1print (total ,sum, kind )思考分析:对于嵌套回收,读一次,复制一次,然后自己写就可以了。
例2:题目:企业发放的奖金是以利润提成为基础的。利润(I)小于或等于10万元时,奖金可上浮10%;利润高于10万元低于20万元时,低于10万元的部分扣除10%,高于10万元的部分扣除7.5%。20-40万元之间时,高于20万元的部分可扣除5%;40-60万元之间,高于40万元的部分可扣除3%;60万-100万之间时,高于60万的部分可以获得1.5%的提成;高于100万元时,超过100万元的部分将获得1%的佣金。从键盘输入当月的利润I,找出要发放的奖金总额?
# coding=utf-8i=int(input(输入你的净利润:))a=[100,60,40,20,10,0] b=[0.01,0.015,0.03,0.05,0.075,0.1]r 6):if ia[c]:r=(I-a[c])* b[c]print(区间佣金:,(I-a[c])* b[c]I=a[c]
示例3:
题目:一个整数,加100后是一个完整的平方数,加168后是一个完整的平方数。请问号码是多少?
程序分析:
假设数字是x。
1.那么:x 100=n2,x 100 168=m2
2.计算公式:m2- n2=(m n)(适度冰淇淋)=168
3.设置:m n=i,适度冰淇淋=j,i * j=168,I和j至少有一个是偶数。
4.可用:m=(i j)/2,n=(i-j)/2,I和j不是偶数就是奇数。
5.从3和4可以知道,I和J是大于等于2的偶数。
6.因为i * j=168,j=2,那么1 i 168/2 1。
对于区间(1,85)内的I:if 168% I==0:j=168/I if ij和(i j)% 2==0: #有些地方会写(i-j)%2==0,可以省略。N=(i-j)/2 x=n*n-100 print(x)思考与分析:这里用到数学思维,需要分析如何求解,得到最优解。当然,你也可以考虑简化代码。
例:输入一个月中的某一天,判断这一天是一年中的哪一天?
分析过程:
通过将当前月份的日期与小于当前月份的日期相加,可以得到结果。
想法:一种方法是写一本字典来得到每个月的天数。
DIC={1: 31,2: 28,3: 31,4: 30,5: 31,6: 30,7: 31,8: 31,9: 30,10: 31,11: 30,12: 31} #用字典对应。X=int(input(请输入月份:))y=int(input(请输入日期:))R=0如果x在范围(1,13)内,Y在范围(1,DIC [x])内:对于范围(1,13)内的I:如果IX: R。
题目:任意输入三个整数x,y,z,y,z。请从小到大输出这三个数。
分析:将输入的数字放入一个列表或元组中,并进行排序。
方法1:
A=[]for i in range(3): x=int(input(请输入一个数:))a. append (x) a. sort () print (a [0],a [1],a [-1])分析思路:既然是对三个数进行排序,就必须使用sort。
代码2:
X=int(input(请输入第一个数字:,))y=int(input(请输入第二个数字:,))z=int(input(请输入第三个数字:))a=[x,y,z] a. sort () print(
反向循环:
R=[] for i in range(3): x=int(input(请输入一个整数:\ n ),)r . append(x)r . sort(reverse=1)print( \ n ,r [0], \ n ,r [1
斐波那契数列是指从0,1开始,第三项是前两项之和。即F0=0,F1=1,Fn=F[n-1] F[n-2] (n=2)
Def fib (n):如果n==1或n==2:return 1 elif n==0:return 0 return fib(n-1)fib(n-2)print(fib(10))或:
Def fib (n): a,b=0,1 for I in range (n): a,b=b,a b返回一个print (fib (10))或:
Def fib (n): ifn1:如果n==1,则返回none:如果n==2,则返回[1]else:fibers=[1,1] for I in range (2,n):fibers . append(fibers[-1]fibers[-1]
将列表A中的元素复制到b中。
a=[1,2,3,4,5,6,7,8,9]b=a[:]print(b)a=[1,2,3]b=a.copy()print(b)l=[1,2,3,4,5]p=[]for I in range(len(l)):p . append(l[I])print(p)
开拓思维:还有很多其他方法。
例8:输出99乘法表
对于I in range (1,10):对于j in range (1,10): print (j, x ,I,=,I * j, \ t ,end=) If I==j: print () Break例题9:经典题:是
对于(1,21,2)范围内的I,A=1b=1for步长为2,直接输出A和B的值。Print %d %d%(a,b),a=b b=a例10:求1000以内水仙花的个数,即一个三位数等于你的三次方之和。
对于范围内的n(100,1000): i=n//100 j=n//10 % 10 k=n % 10如果n==i ** 3 j ** 3 k ** 3: print (n)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。