百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

分享Python20个练手经典案例(附答案)

bigegpt 2024-08-04 11:34 3 浏览

废话不多说,直接上提!

【程序1】

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

1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去

掉不满足条件的排列。

2.程序源代码:

for i in range(1,5):

for j in range(1,5):

for k in range(1,5):

if( i != k ) and (i != j) and (j != k):

print i,j,k

【程序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.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

2.程序源代码:

bonus1 = 100000 * 0.1

bonus2 = bonus1 + 100000 * 0.500075

bonus4 = bonus2 + 200000 * 0.5

bonus6 = bonus4 + 200000 * 0.3

bonus10 = bonus6 + 400000 * 0.15

i = int(raw_input('input gain:'))

if i <= 100000:

bonus = i * 0.1

elif i <= 200000:

bonus = bonus1 + (i - 100000) * 0.075

elif i <= 400000:

bonus = bonus2 + (i - 200000) * 0.05

elif i <= 600000:

bonus = bonus4 + (i - 400000) * 0.03

elif i <= 1000000:

bonus = bonus6 + (i - 600000) * 0.015

else:

bonus = bonus10 + (i - 1000000) * 0.01

print 'bonus = ',bonus

【程序3】

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

1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后

的结果满足如下条件,即是结果。请看具体分析:

2.程序源代码:

include "math.h"

main()

{

long int i,x,y,z;

for (i=1;i<100000;i++)

{ x=sqrt(i+100); /x为加上100后开方后的结果/

y=sqrt(i+268); /y为再加上168后开方后的结果/

if(xx==i+100&&yy==i+268)/如果一个数的平方根的平方等于该数,这说明此数是完全平方数/

printf("%ld",i);

}

}

'''

import math

for i in range(10000):

转化为整型值

x = int(math.sqrt(i + 100))

y = int(math.sqrt(i + 268))

if(x * x == i + 100) and (y * y == i + 268):

print i

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

1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊

情况,闰年且输入月份大于3时需考虑多加一天。

2.程序源代码:

year = int(raw_input('year:'))

month = int(raw_input('month:'))

day = int(raw_input('day:'))

months = (0,31,59,90,120,151,181,212,243,273,304,334)

if 0 <= month <= 12:

sum = months[month - 1]

else:

print 'data error'

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 'it is the %dth day.' % sum

【程序5】

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

1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,

然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

2.程序源代码:

l = []

for i in range(3):

x = int(raw_input('integer:'))

l.append(x)

l.sort()

print l

【程序6】

题目:用*号输出字母C的图案。

1.程序分析:可先用’*’号在纸上写出字母C,再分行输出。

2.程序源代码:

print 'Hello Python world!'

print '*' * 10

for i in range(5):

print '* *'

print '*' * 10

print '*' * 6

【程序7】

题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

1.程序分析:字符共有256个。不同字符,图形不一样。

2.程序源代码:

a = 176

b = 219

print chr(b),chr(a),chr(a),chr(a),chr(b)

print chr(a),chr(b),chr(a),chr(b),chr(a)

print chr(a),chr(a),chr(b),chr(a),chr(a)

print chr(a),chr(b),chr(a),chr(b),chr(a)

print chr(b),chr(a),chr(a),chr(a),chr(b)

【程序8】

题目:输出9*9口诀。

1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

2.程序源代码:

include "stdio.h"

main()

{

int i,j,result;

printf("");

for (i=1;i<10;i++)

{ for(j=1;j<10;j++)

{

result=i*j;

printf("%d%d=%-3d",i,j,result);/-3d表示左对齐,占3位*/

}

printf("");/每一行后换行/

}

}

for i in range(1,10):

for j in range(1,10):

result = i * j

print '%d * %d = % -3d' % (i,j,result)

print ''

【程序9】

题目:要求输出国际象棋棋盘。

1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

2.程序源代码:

include "stdio.h"

main()

{

int i,j;

for(i=0;i<8;i++)

{

for(j=0;j<8;j++)

if((i+j)%2==0)

printf("%c%c",219,219);

else

printf(" ");

printf("");

}

}

import sys

for i in range(8):

for j in range(8):

if(i + j) % 2 == 0:

sys.stdout.write(chr(219))

sys.stdout.write(chr(219))

else:

sys.stdout.write(' ')

print ''

【程序10】

题目:打印楼梯,同时在楼梯上方打印两个笑脸。

1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。

2.程序源代码:

import sys

sys.stdout.write(chr(1))

sys.stdout.write(chr(1))

print ''

for i in range(1,11):

for j in range(1,i):

sys.stdout.write(chr(219))

sys.stdout.write(chr(219))

print ''

【程序11】

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月

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

1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21….

2.程序源代码:

main()

{

long f1,f2;

int i;

f1=f2=1;

for(i=1;i<=20;i++)

{ printf("%12ld %12ld",f1,f2);

if(i%2==0) printf("");/控制输出,每行四个/

f1=f1+f2; /前两个月加起来赋值给第三个月/

f2=f1+f2; /前两个月加起来赋值给第三个月/

}

}

f1 = 1

f2 = 1

for i in range(1,21):

print '%12d %12d' % (f1,f2)

if (i % 2) == 0:

print ''

f1 = f1 + f2

f2 = f1 + f2

【程序12】

题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,

则表明此数不是素数,反之是素数。

2.程序源代码:

h = 0

leap = 1

from math import sqrt

from sys import stdout

for m in range(101,201):

k = int(sqrt(m + 1))

for i in range(2,k + 1):

if m % i == 0:

leap = 0

break

if leap == 1:

print '%-4d' % m

h += 1

if h % 10 == 0:

print ''

leap = 1

print 'The total is %d' % h

【程序13】

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

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

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

2.程序源代码:

for n in range(100,1001):

i = n / 100

j = n / 10 % 10

k = n % 10

if i * 100 + j * 10 + k == i + j ** 2 + k ** 3:

print "%-5d" % n

【程序14】

题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。

进群进群:839383765 可以获取Python各类免费最新入门学习资料!

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,

重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

2.程序源代码:

from sys import stdout

n = int(raw_input("input number:"))

print "n = %d" % n

for i in range(2,n + 1):

while n != i:

if n % i == 0:

stdout.write(str(i))

stdout.write("*")

n = n / i

else:

break

print "%d" % n

【程序15】

题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,

60分以下的用C表示。

1.程序分析:(a>b)?a:b这是条件运算符的基本例子。

2.程序源代码:

不支持这个运算符

score = int(raw_input('input score:'))

if score >= 90:

grade = 'A'

elif score >= 60:

grade = 'B'

else:

grade = 'C'

print '%d belongs to %s' % (score,grade)

【程序17】

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

1.程序分析:利用while语句,条件为输入的字符不为’ ’.

2.程序源代码:

import string

s = raw_input('input a string:')

letters = 0

space = 0

digit = 0

others = 0

for c in s:

if c.isalpha():

letters += 1

elif c.isspace():

space += 1

elif c.isdigit():

digit += 1

else:

others += 1

print 'char = %d,space = %d,digit = %d,others = %d' % (letters,space,digit,others)

题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时

共有5个数相加),几个数相加有键盘控制。

1.程序分析:关键是计算出每一项的值。

2.程序源代码:

Tn = 0

Sn = []

n = int(raw_input('n = :'))

a = int(raw_input('a = :'))

for count in range(n):

Tn = Tn + a

a = a * 10

Sn.append(Tn)

print Tn

Sn = reduce(lambda x,y : x + y,Sn)

print Sn

【程序19】

题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程

找出1000以内的所有完数。

1. 程序分析:请参照程序<–上页程序14.

2.程序源代码:

from sys import stdout

for j in range(2,1001):

k = []

n = -1

s = j

for i in range(1,j):

if j % i == 0:

n += 1

s -= i

k.append(i)

if s == 0:

print j

for i in range(n):

stdout.write(k[i])

stdout.write(' ')

print k[n]

【程序20】

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

第10次落地时,共经过多少米?第10次反弹多高?

1.程序分析:见下面注释

2.程序源代码:

Sn = 100.0

Hn = Sn / 2

for n in range(2,11):

Sn += 2 * Hn

Hn /= 2

print 'Total of road is %f' % Sn

print 'The tenth is %f meter' % Hn

以上就是我的分享,如果你跟我一样都喜欢python,想成为一名优秀的程序员,也在学习python的道路上奔跑,欢迎你加入python学习群:839383765 群内每天都会分享最新业内资料,分享python免费课程,共同交流学习,让学习变(编)成(程)一种习惯!

相关推荐

科氪 | 华硕天选6系列正式发布,搭载满功耗RTX 5060实际到手5999元起

5月19日晚,华硕旗下潮玩新次元游戏本天选6系列正式发布。作为Z世代青年的潮酷游戏装备,天选6系列再一次印证了其出色的综合实力。搭载满功耗RTX5060笔记本电脑GPU的天选6Pro以及天选6皆...

最新历史最低价显卡汇总!低端高端一网打尽

文|宋金戈责编|吕东兴总编|唐迪近期开展的618大促,各个品类尤其是数码科技好物的产品优惠都诚意满满,而作为消费者最关心的大类之一,显卡在最近同样表现不俗——华硕、技嘉等多个品牌,从1660s...

DNF:南山必胜客“败诉”,TX被DD373实锤,谁说玩家只有使用权?

TX和DD373的官司终于落下帷幕,南山必胜客终于中断了传奇。TX这一次被判定败诉。其中关于游戏账号和虚拟财产的问题,最受玩家关注。之前TX所说的:游戏账号不是玩家私有财产,游戏币更不是,只有使用权!...

Switch最新SX OS破解系统发布:可运行国行卡带xci镜像了

本周,TX团队(Team-Xecuter)发布了SXOS自制系统的最新版本,v2.9.5Beta,该版本支持了任天堂最新的V10.0.0和v10.0.1固件,同时改善了兼容性,优化了本地联机的稳定...

神舟战神TX8R5 QHD游戏本电脑今晚开售:2.5K屏+RTX4060,6999元

IT之家4月9日消息,神舟战神TX8R5QHD游戏本电脑今晚12点正式开售,仅有16GB+512GB一个版本可选,售价6999元。神舟战神TX8R5QHD搭载13代酷...

开创第三代手游商业模式《武极天下》推无商城玩法

翻阅游戏论坛与贴吧,大家对网络游戏的一些“坑爹”的设定抱怨不已,不是游戏职业设定不合理,就是游戏太烧钱,在游戏中被碾压的抬不起头,最后从玩游戏变成了被游戏玩,俨然游戏本质完全变味。由巨人移动自主研发并...

真满血Gen5电竞存储神装!佰维X570 Pro天启高速固态硬盘测评

2025一开年,对于存储行业来说,就是速度狂飙的开局。各固态硬盘品牌PCIe5.0SSD纷纷亮相,开启了新一轮的性能PK。在2024年异常活跃的佰维科技,也于CES期间推出了佰维X570PRO...

Kingston FURY Renegade G5评测 最速PCIe5.0固态硬盘诞生

【ZOL中关村在线原创评测】说起KingstonFURYRenegade叛逆者的大名,相信PCDIY玩家都知道这是金士顿高端存储的代名词,尤其是内存产品给人印象尤为深刻。实际上它还有固态硬盘系列...

《武极天下》力挺苹果TestFlight创业界先河

关于革旧鼎新,有人说就像是摸石头过河,在摸索中前行。一场正真的创新改革会带来什么?在数字行业,苹果公司的每一个产品都代表着一个时代的开启,它独立的操作系统、顺应用户需求的体验设计,在十几年时间内收获了...

闪迪至尊超极速移动固态硬盘USB4版评测 超越SSD的三防猛兽

移动固态硬盘,凭借TB级的容量和远超传统移动机械硬盘几倍、十几倍的速度,当仁不让地成为高效移动存储的代名词,为4K/8K超高清内容创作、海量文件备份带来了超乎想象的效率提升。国际知名品牌SanDisk...

RTX5070笔记本有哪些:游戏笔记本电脑哪个牌子好?

RTX5070游戏本,个人其实不是很喜欢,对于新款显卡,要不就考虑RTX5060,要不就考虑12GB显存的RTX5070Ti这样好一些,从RTX5070显卡的游戏本的量,也能看出来,估计5060会更多...

破军天下安装指南详解 游戏安装方法介绍

破军天下游戏怎么正确安装?破军天下安装方法是什么?对于破军天下中的安装问题,今天安趣网小编就为各位玩家小伙伴来好好的讲解下,让我们一起来看看,破军天下怎么正确安装游戏的吧!希望大家喜欢!安卓系统(An...

从高性能轻薄本到硬核电竞本 华硕天选新品解锁全场景体验

来源:环球网【环球网科技综合报道】5月19日,华硕天选多款笔记本新品正式发布。其中,14英寸轻薄全能本标杆华硕天选Air2025正式发布,显卡升级至GeForceRTX5060笔记本电脑GPU...

笔记本无线网卡有哪几种 有必要对其升级吗?

无线网卡是很多朋友购买笔记本时容易忽视的部分,相比较处理器、内存、显卡和硬盘,无线网卡几乎不可选,而且很少有厂商提到自家产品采用的无线网卡型号。大家可能遇到过这种情况:为什么手机可以连接到5Ghz,而...

下班了才发现,你的手机里藏着5个定时炸弹!

各位打工人累了一天终于可以躺平刷手机了吧?且慢!工信部最新通知,有些App比加班还可怕!它们可能正在偷偷收集你的信息,比你的老板还要了解你!今天就让我们一起来扒一扒这些“职场内鬼“,看看你的手机里有没...