python语言经典入门级案例含源代码.docx
《python语言经典入门级案例含源代码.docx》由会员分享,可在线阅读,更多相关《python语言经典入门级案例含源代码.docx(9页珍藏版)》请在冰豆网上搜索。
![python语言经典入门级案例含源代码.docx](https://file1.bdocx.com/fileroot1/2022-11/27/41b31b3f-947b-4892-ba1d-f8dcafc4ac50/41b31b3f-947b-4892-ba1d-f8dcafc4ac501.gif)
python语言经典入门级案例含源代码
python经典入门级案例(含源代码)
案例一:
题目:
有四个数字:
1、2、3、4,能组成多少个互不相同且无重复数字的三位数?
各是多少?
程序分析:
可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
程序源代码:
#!
/usr/bin/python
#-*-coding:
UTF-8-*-
foriinrange(1,5):
forjinrange(1,5):
forkinrange(1,5):
if(i!
=k)and(i!
=j)and(j!
=k):
printi,j,k
以上实例输出结果为:
123
124
132
134
142
143
213
214
231
234
241
243
3
1
2
3
1
4
3
2
1
3
2
4
3
4
1
3
4
2
4
1
2
4
1
3
4
2
1
4
2
3
4
3
1
4
3
2
案例二:
题目:
企业发放的奖金根据利润提成。
利润⑴低于或等于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,求应发放奖金总数?
程序分析:
请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
程序源代码:
#!
/usr/bin/python
#-*-coding:
UTF-8-*-
i=int(raw_input('净利润:
'))
arr=[1000000,600000,400000,200000,100000,0]
rat=[0.01,0.015,0.03,0.05,0.075,0.1]
r=0
foridxinrange(0,6):
ifi>arr[idx]:
r+=(i-arr[idx])*rat[idx]
print(i-arr[idx])*rat[idx]
i=arr[idx]printr
以上实例输出结果为:
净利润:
120000
1500.0
10000.0
11500.0
168又是
案例三:
题目:
一个整数,它加上100后是一个完全平方数,再加上
一个完全平方数,请问该数是多少?
程序分析:
假设该数为X。
1、则:
x+100=n2,x+100+168=m2
2、计算等式:
m2-n2=(m+n)(m-n)=168
3、设置:
m+n二i,m-n二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,贝S1
7、接下来将i的所有数字循环计算即可。
程序源代码:
#!
/usr/bin/python
#-*-coding:
UTF-8-*-
foriinrange(1,85):
if168%i==0:
j=168/i;
ifi>jand(i+j)%2==0and(i-j)%2==0:
m=(i+j)/2
n=(i-j)/2
x=n*n-100
print(x)
以上实例输出结果为:
-99
21
261
1581
案例四:
题目:
输入某年某月某日,判断这一天是这一年的第几天?
程序分析:
以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:
程序源代码:
#!
/usr/bin/python
#-*-coding:
UTF-8-*-
year=int(raw_input('year:
\n'))
month=int(raw_input('month:
\n'))
day=int(raw_input('day:
\n'))
months=(0,31,59,90,120,151,181,212,243,273,304,334)
if0sum=months[month-1]
else:
print'dataerror'
sum+=day
leap=0
if(year%400==0)or((year%4==0)and(year%100!
=0)):
leap=1
if(leap==1)and(month>2):
sum+=1
print'itisthe%dthday.'%sum
以上实例输出结果为:
year
2015
month:
6
day
7
itisthe158thday.
案例五:
题目:
输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析:
我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
程序源代码:
#!
/usr/bin/python
#-*-coding:
UTF-8-*-
l=[]
foriinrange⑶:
x=int(raw_input('integer:
\n'))
l.append(x)
l.sort()
printl
以上实例输出结果为:
integer:
8
integer:
5
integer:
6
[5,6,8]
案例六:
题目:
输出9*9乘法口诀表。
程序分析:
分行与列考虑,共9行9列,i控制行,j控制列
程序源代码:
#!
/usr/bin/python
#-*-coding:
UTF-8-*-
foriinrange(1,10):
print
forjinrange(1,i+1):
print"%d*%d=%d"%(i,j,i*j),
以上实例输出结果为:
1*1=1
2*仁22*2=4
3*1=33*2=63*3=9
4*1=44*2=84*3=124*4=16
5*仁55*2=105*3=155*4=205*5=25
6*仁66*2=126*3=186*4=246*5=306*6=36
7*1=77*2=147*3=217*4=287*5=357*6=427*7=49
8*仁88*2=168*3=248*4=328*5=408*6=488*7=568*8=64
9*仁99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81
案例七:
题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:
兔子的规律为数列1,1,2,3,5,8,13,21•…
程序源代码:
实例(Python2.0+)
#!
/usr/bin/python
#-*-coding:
UTF-8-*-
f1=1
f2=1
foriinrange(1,22):
print'%12ld%12ld'%(f1,f2),
if(i%3)==0:
print''
fl=fl+f2
f2=fl+f2
以上实例输出结果为:
196418317811514229832040
1346269217830935245785702887922746514930352
241578173908816963245986102334155165580141267914296
案例八:
题目:
判断101-200之间有多少个素数,并输出所有素数。
程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),
如果能被整除,则表明此数不是素数,反之是素数。
程序源代码:
#!
/usr/bin/python
#-*-coding:
UTF-8-*-
h=0
leap=1
frommathimportsqrtfromsysimportstdout
forminrange(101,201):
k=int(sqrt(m+1))foriinrange(2,k+1):
ifm%i==0:
leap=0
breakifleap==1:
print'%-4d'%mh+=1
ifh%10==0:
print''leap=1
print'Thetotalis%d'%h
以上实例输出结果为:
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
Thetotalis21