100个Python练手小程序:从基础到进阶,边学边练掌握Python编程技巧

100个Python练习小程序,学习Python的好资料,涵盖Python的各个部分。您可以边学习边练习,更轻松地掌握Python。

100个Python练手小程序:从基础到进阶,边学边练掌握Python编程技巧

如果你觉得自己学不会怎么办?别慌,小编推荐大家进群。

前面548,中间377,后面875。群里有志同道合的朋友。

互相帮助并获得许多视频教程!

【程序一】

问题:有 1、2、3、4 个数字。可以组成多少个不重复的不同三位数?他们有多少人?

1、程序分析:百位、十位、个位可填的数字均为1、2、3、4。将所有排列组合好后,

去掉不满足条件的排列。

2、程序源码:

对于范围 (1,5) 内的 i:

对于范围 (1,5) 内的 j:

对于范围 (1,5) 内的 k:

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

打印 i,j,k

【程序2】

主题:公司发放的奖金是以利润佣金为基础的。当利润(I)小于或等于10万元时,奖金可增加10%;如果利润高的话

金额在10万元以下、20万元以下时,10万元以下部分按10%收取佣金,10万元以上部分收取佣金。

佣金为7.5%; 20万元至40万元之间,20万元以上部分按5%收取佣金; 40万元至60万元之间,佣金为5%

40万人民币部分,可获得3%的佣金; 60万元至100万元的部分,60万元以上部分可获得1.5%的佣金。

金额超过100万元时,超过100万元部分按1%收取佣金。从键盘输入当月利润I。应支付的奖金总数是多少?

1、程序分析:请用数轴划分定位。注意定义时bonus需要定义为整数。

2、程序源码:

奖金1 = 100000 * 0.1

奖金2 = 奖金1 + 100000 * 0.500075

奖金4 = 奖金2 + 200000 * 0.5

奖金6 = 奖金4 + 200000 * 0.3

奖金10 = 奖金6 + 400000 * 0.15

i = int(raw_input('输入增益:'))

如果我

奖金 = i * 0.1

埃利夫我

奖金 = 奖金1 + (i - 100000) * 0.075

埃利夫我

奖金 = 奖金2 + (i - 200000) * 0.05

埃利夫我

奖金 = 奖金4 + (i - 400000) * 0.03

埃利夫我

奖金 = 奖金6 + (i - 600000) * 0.015

别的:

奖金 = 奖金10 + (i - 1000000) * 0.01

打印'奖金=',奖金

【程序3】

问题:一个整数,加100后就变成完全平方数,加168就变成完全平方数。这个数字是多少?

1、程序分析:要确定在10万以内,先在开药前的数字上加100,然后在开药前的数字上加268。如果在处方后

结果满足以下条件,即为结果。具体请看分析:

2、程序源码:

包括“math.h”

主要的()

长整型 i,x,y,z;

对于 (i=1;i

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

y=sqrt(i+268); /*y为168相加并开平方后的结果*/

if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,则说明该数是完全平方数*/

printf(" %ld ",i);

'''

导入数学

对于范围(10000)内的 i:

#转换为整数值

x = int(数学.sqrt(i + 100))

y = int(数学.sqrt(i + 268))

如果(x * x == i + 100)和(y * y == i + 268):

打印我

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

1、程序分析:以3月5日为例,应该先将前两个月相加,然后加上5天,即是一年中的第几天。特别的

如果是闰年并且输入的月份大于3,则必须考虑额外的一天。

2、程序源码:

年 = int(raw_input('年份:'))

月份 = int(raw_input('月份: '))

天 = int(raw_input('天: '))

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

如果 0

总和 = 月[月 - 1]

别的:

打印‘数据错误’

总和+=天

飞跃 = 0

if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):

跳跃=1

if (leap == 1) and (month > 2):

总和 += 1

print '这是第 %d 天。' %总和

【程序5】

问题:输入三个整数x、y、z。请从小到大输出这三个数字。

1.程序分析:我们想办法把最小的数放在x上。首先比较x和y。如果x>y,则交换x和y的值。

然后比较 x 和 z。如果x>z,则交换x和z的值以使x最小化。

2、程序源码:

l = []

对于范围 (3) 内的 i:

x = int(raw_input('整数:'))

l.append(x)

l.sort()

打印l

【程序6】

问题:使用*号输出字母C的模式。

1、程序分析:可以先将字母C写在纸上,并附上“*”号,然后分行输出。

2、程序源码:

打印'你好Python世界! '

打印“*”* 10

对于范围(5)内的 i:

打印 '* *'

打印“*”* 10

打印'*'* 6

【程序7】

问题:输出一个特殊的图案,请在c环境下运行一下,非常漂亮!

1、程序分析:共有256个字符。不同的角色有不同的图形。

2、程序源码:

a=176

乙 = 219

打印chr(b),chr(a),chr(a),chr(a),chr(b)

打印chr(a),chr(b),chr(a),chr(b),chr(a)

打印chr(a),chr(a),chr(b),chr(a),chr(a)

打印chr(a),chr(b),chr(a),chr(b),chr(a)

打印chr(b),chr(a),chr(a),chr(a),chr(b)

【程序8】

问题:输出9*9的公式。

1、程序分析:考虑行和列,总共9行9列,i控制行,j控制列。

2、程序源码:

包括“stdio.h”

主要的()

int i,j,结果;

printf(“”);

对于 (i=1;i

{ for(j=1;j

结果=i*j;

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

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

对于范围 (1,10) 内的 i:

对于范围 (1,10) 内的 j:

结果 = i * j

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

打印 ''

【程序9】

主题:请求输出棋盘。

1、程序分析:用i控制行,j控制列,根据i+j之和的变化来控制黑色方块或白色方块的输出。

2、程序源码:

包括“stdio.h”

主要的()

整数 i,j;

对于(i=0;i

对于(j=0;j

如果((i+j)%2==0)

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

别的

printf(“”);

printf(“”);

导入系统

对于范围(8)内的 i:

对于范围 (8) 内的 j:

如果(i + j)% 2 == 0:

sys.stdout.write(chr(219))

sys.stdout.write(chr(219))

别的:

sys.stdout.write(' ')

打印 ''

【程序10】

主题:打印一个楼梯并在楼梯顶部打印两个笑脸。

1、程序分析:用i控制行,j控制列,j根据i的变化控制输出黑色方块的数量。

2、程序源码:

导入系统

sys.stdout.write(chr(1))

sys.stdout.write(chr(1))

打印 ''

对于范围 (1,11) 内的 i:

对于范围 (1,i) 中的 j:

sys.stdout.write(chr(219))

sys.stdout.write(chr(219))

打印 ''

【程序11】

题目:经典问题:有一对兔子。从出生后第三个月开始,每个月都会诞生一对兔子。小兔子一直生长到第三个月。

此后,每个月都会有另一对兔子出生。如果兔子不死,每月总共有多少只兔子?

1、程序分析:兔子的图案是序列1,1,2,3,5,8,13,21…。

2、程序源码:

主要的()

长f1,f2;

整数我;

f1=f2=1;

对于(i=1;i

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

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

f1=f1+f2; /*添加前两个月,并将值赋给第三个月*/

f2=f1+f2; /*添加前两个月,并将值赋给第三个月*/

f1 = 1

f2 = 1

对于范围 (1,21) 内的 i:

打印 'd d' % (f1,f2)

如果 (i % 2) == 0:

打印 ''

f1 = f1 + f2

f2 = f1 + f2

【程序12】

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

1、程序分析:如何确定素数:用一个数分别除以2除以sqrt(这个数)。如果可以分割的话

说明这个数不是素数,否则就是素数。

2、程序源码:

小时=0

跳跃=1

从数学导入 sqrt

从系统导入标准输出

对于范围 (101,201) 内的 m:

k = int(sqrt(m + 1))

对于范围 (2,k + 1) 内的 i:

如果 m % i == 0:

飞跃 = 0

休息

如果跳跃 == 1:

打印 '%-4d' % m

h+=1

如果 h % 10 == 0:

打印 ''

跳跃=1

print '总计为 %d' % h

【程序13】

问题:打印出所有“水仙数”。所谓“水仙数”,是指其立方和等于该数的三位数。

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

1、程序分析:使用for循环控制100-999个数字,将每个数字分解为个位、十位、百位。

2、程序源码:

对于范围 (100,1001) 内的 n:

我=n/100

j = n / 10 % 10

k = n% 10

如果 i * 100 + j * 10 + k == i + j ** 2 + k ** 3:

打印“%-5d”%n

【程序14】

主题:将正整数分解为质因数。例如:输入90,打印出90=2*3*3*5。

程序分析:要将n分解为质因数,首先要找到一个最小质数k,然后按照以下步骤完成:

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

(2) 如果nk,但n能被k整除,则打印出k的值,并将n除以k的商,作为新的正整数n,

重复第一步。

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

2、程序源码:

从系统导入标准输出

n = int(raw_input("输入数字:"))

打印“n = %d”% n

对于范围 (2,n + 1) 内的 i:

当 n != i 时:

如果 n % i == 0:

标准输出.write(str(i))

stdout.write(“*”)

n=n/i

别的:

休息

打印“%d”%n

【程序15】

问题:利用条件运算符的嵌套完成这道题:学业成绩>=90分的学生用A表示,成绩在60-89之间的学生用B表示。

低于 60 分的分数用 C 表示。

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

2、程序源码:

不支持该运营商

分数 = int(raw_input('输入分数:'))

如果分数 >= 90:

等级='A'

elif 分数 >= 60:

等级='B'

别的:

等级='C'

print '%d 属于 %s' % (分数,成绩)

【程序17】

问题:输入一行字符,统计其中的英文字母、空格、数字等字符的个数。

1、程序分析:使用while语句,条件是输入字符不是''。

2、程序源码:

导入字符串

s = raw_input('输入字符串:')

字母 = 0

空间 = 0

数字 = 0

其他 = 0

对于 s 中的 c:

如果 c.isalpha():

字母 += 1

elif c.isspace():

空间 += 1

elif c.isdigit():

数字+=1

别的:

其他+= 1

print 'char = %d,空格 = %d,数字 = %d,其他 = %d' % (字母,空格,数字,其他)

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

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

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

2、程序源码:

肌钙蛋白 = 0

锡=[]

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

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

对于范围内的计数(n):

Tn = Tn + a

a = a * 10

Sn.追加(Tn)

打印

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

打印锡

【程序19】

问:如果一个数恰好等于它的因数之和,则该数称为“完全数”。例如,6=1+2+3。编程

找出 1000 以内的所有完美数字。

1、程序分析:请参考程序

2、程序源码:

从系统导入标准输出

对于范围 (2,1001) 内的 j:

k = []

n = -1

s = j

对于范围 (1,j) 内的 i:

如果 j % i == 0:

n+=1

s-=我

k.追加(i)

如果 s == 0:

打印 j

对于范围 (n) 内的 i:

标准输出.write(k[i])

标准输出.write(' ')

打印 k[n]

【程序20】

问题:一个球从 100 米高处自由落体。每次撞击地面时,它都会弹回原来高度的一半。如果再跌倒,找到它的

第10次落地时一共飞行了多少米?第十次反弹有多高?

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

2、程序源码:

锡 = 100.0

Hn=Sn/2

对于范围 (2,11) 内的 n:

Sn += 2 * Hn

Hn /= 2

print '道路总数为 %f' % Sn

print '第十个是 %f 米' % Hn

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

31阅读

外国教程python,python编程教学视频

2026年09月02日

25阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

27阅读

python教程大全集,python教程600集

2026年09月02日

26阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

23阅读