Python编程基础:实验1——程序的控制结构
一、前言
本专栏用于记录我之前学习Python的一些知识点以及学习开设的Python编程基础课的一些实验等等内容。
目前我们课程Python学习到了控制结构,然后老师布置了实验让我们去完成,有七道程序填空题,三道编程题。
以下程序仅供参考,请勿盲目照搬,谢谢!
二、我的环境
- 电脑系统:Windows 11
- 语言版本:Python 3.10.4
- 编译器:VSCode
三、实验目的与要求
- 掌握 random 库的用法。
- 掌握分支语句的常用嵌套结构。
- 掌握循环语句的常用嵌套结构。
四、实验任务
1、程序填空
【填空 6-1】随机产生大写字母并逆向输出。
随机产生 4 个 A-Z 之间的数字,使其挨个输出,再逆向合并,用空格间隔后输出,随机
种子为 7。请完善代码。
import random as r
r.seed(7)
s=''
for i in range(4):
ch = chr(r.randrange(65, 90, 1))
print(ch)
s = ch + ' ' + s
print(s)
它运行的结果是:
K
E
M
U
U M E K
这里randrange()函数中前两个参数是A和Z的十进制编码。
【填空 6-2】五角星数。
五角星数是 5 位的自幂数(如:54748=5^5 + 4^5+ 7^5+ 4^5+ 8^5),计算并输出 10000
~100000 之间(不含 100000)所有的五角星数。请完善代码。
for i in range(10000, 100000):
n1 = i // 10000
n2 = (i - n1 * 10000) // 1000
n3 = (i - n1 * 10000 - n2 * 1000) // 100
n4 = (i - n1 * 10000 - n2 * 1000 - n3 * 100) // 10
n5 = i % 10
if i == n1 ** 5 + n2 ** 5 +n3 ** 5 + n4 ** 5 + n5 ** 5:
print(i)
它运行的结果是:
54748
92727
93084
【填空 6-3】输出四方形九九乘法表。
要求输出如下所示的四方形九九乘法表。请完善代码。
for i in range(1,10):
for j in range(1,10):
print("{}×{}={:<2} ".format(i,j,i*j),end="")
print()
它运行的结果是:
1×1=1 1×2=2 1×3=3 1×4=4 1×5=5 1×6=6 1×7=7 1×8=8 1×9=9
2×1=2 2×2=4 2×3=6 2×4=8 2×5=10 2×6=12 2×7=14 2×8=16 2×9=18
3×1=3 3×2=6 3×3=9 3×4=12 3×5=15 3×6=18 3×7=21 3×8=24 3×9=27
4×1=4 4×2=8 4×3=12 4×4=16 4×5=20 4×6=24 4×7=28 4×8=32 4×9=36
5×1=5 5×2=10 5×3=15 5×4=20 5×5=25 5×6=30 5×7=35 5×8=40 5×9=45
6×1=6 6×2=12 6×3=18 6×4=24 6×5=30 6×6=36 6×7=42 6×8=48 6×9=54
7×1=7 7×2=14 7×3=21 7×4=28 7×5=35 7×6=42 7×7=49 7×8=56 7×9=63
8×1=8 8×2=16 8×3=24 8×4=32 8×5=40 8×6=48 8×7=56 8×8=64 8×9=72
9×1=9 9×2=18 9×3=27 9×4=36 9×5=45 9×6=54 9×7=63 9×8=72 9×9=81
【填空 6-4】 百元买百鸡。
由我国古代数学家张丘建在《算经》一书中提出:“鸡翁一,值钱
五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何? ”题意如下:
已知公鸡 5 元一只,母鸡 3 元一只,小鸡 3 只一元,用 100 元买一百只鸡。其中公鸡、
母鸡、小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只? 请完善代码。
print('%s%3s%3s' % ('公鸡', '母鸡', '小鸡'))
for cock in range(1,19):
for hen in range(1,32):
chick = (100 - cock*5 - hen * 3) * 3
if chick !=0 and chick%3 == 0 and chick + hen + cock == 100:
print(cock, " ", hen, " ", chick, " ")
它运行的结果是:
公鸡 母鸡 小鸡
4 18 78
8 11 81
12 4 84
【填空 6-5】复读句子。
户输入复读次数和复读句子,将句子按照逗号进行分割成子句,将
子句和整句按照复读次数进行输出。例如:输入的复读次数为 2,输入的句子为“一起向未
来!Together for a Shared Future!”,则让它先输出每个子句 2 遍,再输出整句 2 遍。请完善
代码。
n = int(input("请输入复读次数:"))
s = input("请输入复读句子:")
sub = s.split("!")
for i in range(len(sub)):
for j in range(n):
print(sub[i])
for j in range(n):
print(s)
它运行的结果是:
请输入复读次数:2
请输入复读句子:一起向未来!Together for a Shared Future
一起向未来
一起向未来
Together for a Shared Future
Together for a Shared Future
一起向未来!Together for a Shared Future
一起向未来!Together for a Shared Future
【填空 6-6】 猜数游戏。
**。**由随机函数从 1~10 中生成一个整数,用户最多可以猜数 3 次,每
次猜楼数后都会告诉用户是猜中了还是猜大了还是猜小了,如果猜错了,还会显示剩余的可
猜次数。请完善代码。
import random
n = random.randint(1, 11)
for t in range(3):
g = eval(input("请输入数字(1~10):"))
if g == n:
print("你猜中了!")
break
elif g < n:
print("你猜小了,还有{}次机会!".format(2-t))
else:
print("你猜大了,还有{}次机会!".format(2-t))
if 2-t < 3:
print("超过三次,猜数结束!")
它运行的结果是:
请输入数字(1~10):10
你猜大了,还有2次机会!
请输入数字(1~10):2
你猜小了,还有1次机会!
请输入数字(1~10):4
你猜小了,还有0次机会!
超过三次,猜数结束!
【填空 6-7】账号密码登录。
给用户三次输入用户名和密码的机会,要求如下:
用户输入账号,若账号为 “admin”,则提示用户输入密码,若密码为“123456”,则提
示“登录成功”,并且退出循环;否则提示“密码错误!”。若账号不为“admin”,则提示“账
号错误!”
如果 3 次都不正确,则提示“3 次输入有误!退出程序。”。
请完善代码。
name = "admin"
password = "******" # 666666,CSDN不能显示密钥
count = 0
while count < 3:
userInput = input("请输入账号:")
if userInput == name:
userInput = input("请输入密码:")
if userInput == password:
print("登录成功!")
break
else:
print("密码错误!")
else:
print("账户错误!")
count = count + 1
if count == 3:
print("3次输入有误!退出程序。")
它运行的结果是:
请输入账号:admin
请输入密码:666666
登录成功!
请输入账号:admin
请输入密码:123
密码错误!
请输入账号:admin
请输入密码:666666
登录成功!
请输入账号:ad
账户错误!
请输入账号:admin
请输入密码:123
密码错误!
请输入账号:admin
请输入密码:666666
登录成功!
请输入账号:a
账户错误!
请输入账号:admin
请输入密码:123
密码错误!
请输入账号:admin
请输入密码:666
密码错误!
3次输入有误!退出程序。
2、编程
【编程 6-1】产生随机数并求平均值。
产生 3 个 0-9 之间的随机数字,使其逐个输出,最后将该 3 个随机数的平均值输出。
提示: random.randint(i,j)用于产生一个 [i,j] 之间的随机整数。
import random
sum = 0
for i in range(3):
n = random.randint(0, 9)
print("0~9之间的随机数为:{}".format(n))
sum += n
print("平均值为:{}".format(sum/3))
它运行的结果是:
0~9之间的随机数为:6
0~9之间的随机数为:3
0~9之间的随机数为:5
平均值为:4.666666666666667
【编程 6-2】水仙花数。
水仙花数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身(例如:1^3
+ 5^3+ 3^3 = 153),计算并输出所有的水仙花数。
for n in range(100,1000):
i = n // 100
j = n // 10 % 10
k = n % 10
if n == i*i*i + j*j*j + k*k*k:
print(n, end=" ")
它运行的结果是:
153 370 371 407
【编程 6-3】50 以内的质数。
质数又称素数,一个大于 1 的自然数,除了 1 和它自身外,
不能被其他自然数整除的数叫做质数;否则称为合数(规定 1 既不是质数也不是合数)。编
写程序先输出一行文字:“50 以内的质数有:”,然后遍历 50 以内的所有质数并输出。
提示:可以采用 for 循环语句嵌套 for 循环形式,如果不是质数则退出内循环,再继续
下一轮外循环遍历;否则输出该质数。
s=[]
for i in range(3, 51):
k = True
for j in range(2, i):
if i%j==0:
k = False
break
if k == True:
s.append(i)
for j in s:
print(j, end=' ')
它运行的结果是:
3 5 7 11 13 17 19 23 29 31 37 41 43 47
五、最后我想说
本期的Python实验就到这里结束,本期的题目还算简单,稍微理解一下就能完成,后续我也会持续更新后续实验的,敬请期待。
创作不易,期待得到你们的支持!