开发者社区> 北天> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Python编程基础:实验1——程序的控制结构

简介: Python编程基础实验1——程序的控制结构
+关注继续查看

一、前言

本专栏用于记录我之前学习Python的一些知识点以及学习开设的Python编程基础课的一些实验等等内容。

目前我们课程Python学习到了控制结构,然后老师布置了实验让我们去完成,有七道程序填空题,三道编程题。

以下程序仅供参考,请勿盲目照搬,谢谢!

二、我的环境

  • 电脑系统:Windows 11
  • 语言版本:Python 3.10.4
  • 编译器:VSCode

三、实验目的与要求

  1. 掌握 random 库的用法。
  2. 掌握分支语句的常用嵌套结构。
  3. 掌握循环语句的常用嵌套结构。

四、实验任务

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"
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-350 以内的质数。

质数又称素数,一个大于 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实验就到这里结束,本期的题目还算简单,稍微理解一下就能完成,后续我也会持续更新后续实验的,敬请期待。 创作不易,期待得到你们的支持,谢谢!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python实验三:4.莫斯密码
Python实验三:4.莫斯密码
0 0
Python实验三:3.圆周率的推算
Python实验三:3.圆周率的推算
0 0
Python实验三:秘密情报信息
Python实验三:秘密情报信息
0 0
Python实验三:九九乘法表
Python实验三:九九乘法表
0 0
Python数据分析实验作业 笔记
Python数据分析实验作业 笔记
0 0
Python的Wine数据集分类scikit-learn和K近邻实验
Python的Wine数据集分类scikit-learn和K近邻实验
0 0
Python用matplotlib绘制曲线实验
Python用matplotlib绘制曲线实验
0 0
Python计算细胞核与细胞质的面积比opencv或pil实验
Python计算细胞核与细胞质的面积比opencv或pil实验
0 0
Python连锁药店营业额数据分析实验
Python连锁药店营业额数据分析实验
0 0
Python统计各省份字典中双一流学校数量实验
Python统计各省份字典中双一流学校数量实验
0 0
+关注
北天
知足 上进 不负野心
文章
问答
文章排行榜
最热
最新
相关电子书
更多
给运维工程师的Python实战课
立即下载
Python 脚本速查手册
立即下载
ACE 区域技术发展峰会:Flink Python Table API入门及实践
立即下载