python经典例题100道之令狐采学创编.docx

上传人:b****7 文档编号:9118268 上传时间:2023-02-03 格式:DOCX 页数:23 大小:20.63KB
下载 相关 举报
python经典例题100道之令狐采学创编.docx_第1页
第1页 / 共23页
python经典例题100道之令狐采学创编.docx_第2页
第2页 / 共23页
python经典例题100道之令狐采学创编.docx_第3页
第3页 / 共23页
python经典例题100道之令狐采学创编.docx_第4页
第4页 / 共23页
python经典例题100道之令狐采学创编.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

python经典例题100道之令狐采学创编.docx

《python经典例题100道之令狐采学创编.docx》由会员分享,可在线阅读,更多相关《python经典例题100道之令狐采学创编.docx(23页珍藏版)》请在冰豆网上搜索。

python经典例题100道之令狐采学创编.docx

python经典例题100道之令狐采学创编

【程序1】

欧阳光明(2021.03.07)

题目:

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?

都是多少?

【程序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,求应发放奖金总数?

1#Filename:

002.py

2i=int(raw_input('Entertheprofit:

'))

3arr=[1000000,600000,400000,200000,100000,0]

4rat=[0.01,0.015,0.03,0.05,0.075,0.1]

5r=0

6foridxinrange(0,6):

7ifi>arr[idx]:

8r+=(iarr[idx])*rat[idx]

9print(iarr[idx])*rat[idx]

10i=arr[idx]

11printr

【程序3】

题目:

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

【感谢12楼的同学peiqianggao提供代码】

#*coding:

utf8*

'''

Createdon67

#第三题:

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少

@author:

Administrator

'''

importmath

num=1

whileTrue:

ifmath.sqrt(num+100)int(math.sqrt(num+100))==0andmath.sqrt(num+268)int(math.sqrt(num+268))==0:

print(num)

break

num+=1

 【程序4】

题目:

输入某年某月某日,判断这一天是这一年的第几天?

1#author:

叛军

2importdatetime

3importtime

4dtstr=str(raw_input('Enterthedatetime:

(1215):

'))

5dt=datetime.datetime.strptime(dtstr,"%Y%m%d")

6another_dtstr=dtstr[:

4]+'0101'

7another_dt=datetime.datetime.strptime(another_dtstr,"%Y%m%d")

8print(int((dtanother_dt).days)+1)

【程序5】

题目:

输入三个整数x,y,z,请把这三个数由小到大输出。

【程序8】

题目:

输出9*9口诀。

1foriinrange(1,10):

2forjinrange(1,i+1):

3printi,'*',j,'=',i*j,

4print''

【程序11】

题目:

古典问题:

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月

   后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

1a=1

2b=1

3foriinrange(1,21,2):

4print'%d%d'%(a,b),

5a+=b

6b+=a

【程序12】

题目:

判断101200之间有多少个素数,并输出所有素数。

1#!

/usr/bin/python

2#*coding:

utf8*

3frommathimportsqrt

4defmain():

5foriinrange(101,201):

6flag=1

7k=int(sqrt(i))

8forjinrange(2,k+1):

9ifi%j==0:

10flag=0

11break

12ifflag==1:

13print'%5d'%(i),

14

15if__name__=="__main__":

16main()

【程序13】

题目:

打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如:

153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

1#!

/usr/bin/python

2#*coding:

utf8*

3defmain():

4foriinrange(100,1000):

5a=i%10

6b=i/100

7c=(int(i/10))%10

8ifi==a**3+b**3+c**3:

9print"%5d"%(i),

10

11if__name__=="__main__":

12main()

【程序14】

题目:

将一个正整数分解质因数。

例如:

输入90,打印出90=2*3*3*5。

1#!

/usr/bin/python

2#*coding:

utf8*

3

4defmain():

5n=int(raw_input('Enteranumber:

'))

6printn,'=',

7while(n!

=1):

8foriinrange(2,n+1):

9if(n%i)==0:

10n/=i

11if(n==1):

12print'%d'%(i)

13else:

14print'%d*'%(i),

15break

16

17

18if__name__=="__main__":

19main()

【程序15】

题目:

利用条件运算符的嵌套来完成此题:

学习成绩>=90分的同学用A表示,6089分之间的用B表示,60分以下的用C表示。

1#!

/usr/bin/python

2#*coding:

utf8*

3defmain():

4s=int(raw_input('Enteranumber:

'))

5ifs>=90:

6grade='A'

7elifs>=60:

8grade='B'

9else:

10grade='C'

11printgrade,

12

13if__name__=='__main__':

14main()

【程序17】

题目:

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

1#!

/usr/bin/python

2#*coding:

utf8*

3#thereisno++operatorinPython

4importstring

5defmain():

6s=raw_input('inputastring:

')

7letter=0

8space=0

9digit=0

10other=0

11forcins:

12ifc.isalpha():

13letter+=1

14elifc.isspace():

15space+=1

16elifc.isdigit():

17digit+=1

18else:

19other+=1

20print'Thereare%dletters,%dspaces,%ddigitsand%dothercharactersinyourstring.'%(letter,space,digit,other)

21

22if__name__=='__main__':

23main()

【程序18】

题目:

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

1#!

/usr/bin/python

2#*coding:

utf8*

3defmain():

4basis=int(raw_input("Inputthebasisnumber:

"))

5n=int(raw_input("Inputthelongestlengthofnumber:

"))

6b=basis

7sum=0

8foriinrange(0,n):

9ifi==n1:

10print"%d"%(basis),

11else:

12print"%d+"%(basis),

13sum+=basis

14basis=basis*10+b

15print'=%d'%(sum),

16

17

18if__name__=='__main__':

19main()

 【程序19】

题目:

一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如6=1+2+3.编程

   找出1000以内的所有完数。

1frommathimportsqrt

2n=int(raw_input('inputanumber:

'))

3sum=n*1

4k=int(sqrt(n))

5foriinrange(1,k+1):

6ifn%i==0:

7sum+=n/i

8sum+=i

9ifsum==n:

10print'YES'

11else:

12print'NO'

1'''

2【程序20】

3题目:

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在

4   第10次落地时,共经过多少米?

第10次反弹多高?

5'''

6s=100.

7h=50.0

8foriinrange(2,11):

9s+=2*h

10h/=2

11print"thesumlengthofpath:

%f"%s

12print"thelastheightis:

%f"%h

1'''

2【程序21】

3题目:

猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个

4   第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下

5   的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少。

6'''

7n=1

8foriinrange(9,0,1):

9n=(n+1)<<1

10printn

1'''

2★

3【程序22】

4题目:

两个乒乓球队进行比赛,各出三人。

甲队为a,b,c三人,乙队为x,y,z三人。

已抽签决定

5   比赛名单。

有人向队员打听比赛的名单。

a说他不和x比,c说他不和x,z比,请编程序找出

6   三队赛手的名单。

7'''

8foriinrange(ord('x'),ord('z')+1):

9forjinrange(ord('x'),ord('z')+1):

10ifi!

=j:

11forkinrange(ord('x'),ord('z')+1):

12if(i!

=k)and(j!

=k):

13if(i!

=ord('x'))and(k!

=ord('x'))and(k!

=ord('z')):

14print'orderisa%s\tb%s\tc%s'%(chr(i),chr(j),chr(k))

1'''

2【程序23】

3题目:

打印出如下图案(菱形)

4

5*

6***

7*****

8*******

9*****

10***

11*

12'''

13foriinrange(1,8,2):

14print''*(4(i+1)/2)+'*'*i

15foriinrange(5,0,2):

16print''*(4(i+1)/2)+'*'*i

1'''

2【程序24】

3题目:

有一分数序列:

2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

4'''

5u=2.0

6d=1.0

7s=0.0

8foriinrange(0,20):

9s=s+u/d

10u=u+d

11d=ud

12print'%f'%s

1'''

2【程序25】

3题目:

求1+2!

+3!

+...+20!

的和

4'''

5s=0

6t=1

7foriinrange(1,21):

8t*=i

9s+=t

10prints

1'''

2【程序26】

3题目:

利用递归方法求5!

4'''

5deffun(i):

6ifi==1:

7return1

8returni*fun(i1)

9

10printfun(5)

1'''

2【程序27】

3题目:

利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

4'''

5defoutput(s,l):

6ifl==0:

7return

8prints[l1]

9output(s,l1)

10

11s=raw_input('Inputastring:

')

12l=len(s)

13output(s,l)

1'''

2【程序28】

3题目:

有5个人坐在一起,问第五个人多少岁?

他说比第4个人大2岁。

问第4个人岁数,他说比第

4   3个人大2岁。

问第三个人,又说比第2人大两岁。

问第2个人,说比第一个人大两岁。

最后

5   问第一个人,他说是10岁。

请问第五个人多大?

6'''

7deffun(i):

8ifi==1:

9return10

10returnfun(i1)+2

11

12printfun(5)

1'''

2【程序29】

3题目:

给一个不多于5位的正整数,要求:

一、求它是几位数,二、逆序打印出各位数字。

4'''

5deffun(i,cnt):

6ifi==0:

7print'Thereare%ddigitinthenumber.'%cnt

8return

9printi%10,

10i/=10

11cnt+=1

12fun(i,cnt)

13

14i=int(raw_input('Inputanumber:

'))

15fun(i,0)

1'''

2【程序30】

3题目:

一个5位数,判断它是不是回文数。

即12321是回文数,个位与万位相同,十位与千位相同。

   

4'''

5ans=['Yes','No']

6i=int(raw_input('Inputanumber(10000~99999):

'))

7ifi<10000ori>99999:

8print'InputError!

'

9else:

10i=str(i)

11flag=0

12forjinrange(0,2):

13ifi[j]!

=i[4j]:

14flag=1

15break

16printans[flag]

1'''

2【程序36】【筛选法】

3题目:

求100之内的素数   

4'''

5a=[0]*101

6foriinrange(2,11):

7forjinrange(i+i,101,i):

8a[j]=1;

9foriinrange(2,101):

10ifa[i]!

=1:

11print'',i,

1'''

2【程序37】

3题目:

对10个数进行排序

4'''

5print'input10numbersplease:

'

6l=[]

7foriinrange(10):

8l.append(int(raw_input('Inputanumber:

')))

9#可以直接使用sort函数:

l.sort()

10#也可以自己写排序代码(选择排序)

11foriinrange(9):

12forjinrange(i+1,10):

13ifl[j]

14temp=l[j]

15l[j]=l[i]

16l[i]=temp

17printl

1'''

2【程序38】

3题目:

求一个3*3矩阵对角线元素之和

4'''

5l=[]

6foriinrange(3):

7forjinrange(3):

8l.append(int(raw_input('Inputanumber:

')))

9s=0

10foriinrange(3):

11s+=l[3*i+i]

12prints

1'''

2【程序39】

3题目:

有一个已经排好序的数组。

现输入一个数,要求按原来的规律将它插入数组中。

4'''

5l=[0,10,20,30,40,50]

6

7print'Thesortedlistis:

',l

8cnt=len(l)

9n=int(raw_input('Inputanumber:

'))

10l.append(n)

11foriinrange(cnt):

12ifn

13forjinrange(cnt,i,1):

14l[j]=l[j1]

15l[i]=n

16break

17print'Thenewsortedlistis:

',l

1'''

2【程序40】

3题目:

将一个数组逆序输出。

4'''

5a=[1,2,3,4,5,6,7,8,9]

6l=len(a)

7printa

8foriinrange(l/2):

9a[i],a[li1]=a[li1],a[i]#注意此句

10printa

1'''

2【程序41】

3题目:

学习static定义静态变量的用法   

4题目:

学习使用auto定义变量的用法

5题目:

学习使用external的用法

6题目:

学习使用register定义变量的方法

7题目:

宏#define命令练习

8'''

9#Python没有这些功能

1'''

2演示lambda的使用。

3'''

4MAXIMUM=lambdax,y:

(x>y)*x+(x

5MINIMUM=lambdax,y:

(x>y)*y+(x

6

7if__name__=='__main__':

8a=10

9b=20

10print'Thelargaroneis%d'%MAXIMUM(a,b)

11print'Theloweroneis%d'%MINIMUM(a,b)

1'''

2【程序51】

3题目:

学习使用按位与&。

   

4程序分析:

0&0=0;0&1=0;1&0=0;1&1=1

5

6题目:

学习使用按位或|。

7程序分析:

0|0=0;0|1=1;1|0=1;1|1=1 

8

9题目:

学习使用按位异或^。

   

10程序分析:

0^0=0;0^1=1;1^0=1;1^1=0

11

12题目:

学习使用按位取反~。

   

13程序分析:

~0=1;~1=0

14

15'''

16a=077#8进制

17b=a&3

18print'077&3=%d'%b

19b&=7

20print'077&3&7=%d'%b

21

22a=077

23b=a|3

24print'077|3=%d'%b

25b|=7

26print'077|3|7=%d'%b

27

28a=077

29b=a^3

30print'077^3=%d'%b

31b^=7

32print'077^3^7=%d'%b

1'''

2【程序54】

3题目:

取一个整数a从右端开始的4~7位。

4'''

5a=100

6print100&0x00F0

1'''

2【程序56】

3题目:

画圆【Tkinter模块】

4'''

5if__name__=='__main__':

6fromTkinterimport*

7

8canvas=Canvas(width=800,height=600,bg='red')

9canvas.pack(expand=YES,fill=BOTH)

10k=1

11j=1

12foriinrange(0,26):

13canvas.create_oval(310k,250k,310+k,250+k,width=1)

14k+=j

15j+=0.3

16

17mainloop()

1'''

2【程序57】

3题目:

画直线。

41.程序分析:

           

52.程序源代码:

6'''

7if__name__=='__main__':

8fromTkinterimport*

9

10canvas=Canvas(width=300,height=300,bg='green')

11canvas.pack(expand=YES,fill=BOTH)

12x0=263

13y0=263

14y1=275

15x1=275

16foriinrange(19):

17canvas.create_line(x0,y0,x0,y1,width=1,fill='red')

18x0=x05

19y0=y05

20x1=x1+5

21y1=y1+5

22

23x0=263

24y1=275

25y0=263

26foriinrange(21):

27canvas.create_line(x0,y0,x0,y1,fill=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1