Python程序设计 多重循环

教学案例六 多重循环

1.n之内的素数

输入n,显示n之内的所有素数 每行显示10个素数 例如,若输入500,结果如图所示

n=eval(input()) 
#代码开始
c = 0

for i in range(2, n+1):
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        c += 1
        print("{:5d}".format(i), end = "")
        if c % 10 == 0:
            print()
            
#代码结束

2.打印乘法表

输入x(小于10的整数),输出x行乘法表 例如:输入9,显示如下图所示

x=eval(input())
#代码开始
for i in range(1,x+1):
    for j in range(1,i+1):
        print("%d*%d=%2d"%(j,i,i*j),end=" ")
    print()
 
#代码结束

3.百钱买百鸡

设公鸡每只5元,母鸡每只3元,小鸡每元3只,现用x元钱买y只鸡。 编写一个程序,输入x和y,算出各买多少只鸡?(公鸡、母鸡、小鸡必须都有)如果有多个符合条件的结果,则都显示出来。如果没有符合条件的结果,则显示无解。

x=eval(input("钱"))
y=eval(input("鸡"))
#代码开始
c = 0
for i in range(1,x):
    for j in range(1,x):
        for k in range(3, x, 3):
            if  5 * i + 3 * j + k / 3 == x and i + j + k == y:
                c += 1
                print("公鸡%d只母鸡%d只小鸡%d只" % (i,j,k))
if c == 0:
    print("无解")

#代码结束

4.逻辑推理竞赛名次

ABCD四个学生参加一次数学竞赛,赛后他们四人预测名次如下 A说:c第一 ,我第三 B说:我第一,D第四 C说,我第三,D第二 D没有说话 等到最后公布考试成绩时,发现他们每人预测对了一半,编写程序,显示ABCD的名次,各名次之间用空格隔开

#代码开始

for a in range(1,5):
    for b in range(1,5):
        for c in range(1,5):
            for d in range(1,5):
                x1 = (c==1 and a==3)
                x2 = (b==1 and d==4)
                x3 = (c==3 and d==2)
                y1 = (c==1 or a==3)
                y2 = (b==1 or d==4)
                y3 = (c==3 or d==2)
                if not x1 and not x2 and not x3 and y1 and y2 and y3:
                    if a!=b and a!=c and a!=b and b!=c and b!=d and c!=d:
                        print(a,b,c,d)

#代码结束

5.用户登录密码检验

密码文件如图所示,每行存放逗号分隔的用户名和密码。编写一个小程序,接受输入的用户名和密码,若与文件中的信息相同,则显示密码正确。 若文件中没有输入的用户名,或输入的密码不正确,则显示用户名或密码错误,可再次输入。 若输入错误次数达到三次,则显示密码错误三次,结束程序。

f1=open("sy6//密码.txt","r",encoding="utf-8")
#代码开始
k = 0
flag = 0
while True:
    f1.seek(0)
    yhm = input("用户名")
    mm = input("密码")
    
    if yhm != "":
        for i in f1.readlines():
            i = i.strip("\n")
            i = i.split(",")
            if yhm==i[0] and mm==i[1]:
                print("密码正确")
                flag = 1
                break
        else:
            k += 1
            if k >= 3:
                print("密码错误三次")
                break
            else:
                print("用户名或密码错误")
    if flag==1:
        break
                      
#代码结束
f1.close()

6.选择题

实验六 多重循环

1.显示输入数字之内的完全数

显示输入数字之内的完全数。 一个数整等于其所有因子之和(不含这个数本身),则称这个数为完全数。例如 6=1+2+3,所以 6 是完全数。

x=eval(input())
#代码开始
for i in range(1, x):
    s = 0
    for j in range(1, i):
        if i % j == 0:
            s = s + j
    if s == i:
        print(i)

#代码结束

2.输出阶乘等式

输入x 输出从1!到x!等式 例如输入10 输出

x=eval(input())
#代码开始

for i in range(1, x + 1):
    s = 1
    print("%s!=" % i, end = "")
    for j in range(1, i + 1):
        s = s * j
        print(j,end="")
        if i != j:
            print("*",end="")

    print("=%d"% s)

#代码结束

3.输出符合要求的数字

输入一个数字x(1-9之间),输出所有每个数位上的数字不超过x,各个数位的数字互不相同的三位数,每行显示10个数 注意:每个数后面有空格 提示:可以在print中设置end=" ",在输出表达式后显示空格 例如,输入5,输出如下图

x=eval(input())
#代码开始
count = 0
for i in range(100,1000):
    a1 = i % 10  # 个位
    a2 = i // 10 % 10  # 十位
    a3 = i // 100 # 百位
    if a1 <= x and a2 <= x and a3 <= x and a1 != a2 and a1 != a3 and a2 != a3:
        count += 1
        print(i, end=" ")
        if count % 10 == 0:
            print()

#代码结束

4.鸡兔同笼问题

鸡和兔子关在一个笼子里,输入头的个数和脚的个数,求笼内关了多少只兔子和多少只鸡? 如果没有符合条件的数目,显示无解

t=eval(input())
j=eval(input())
#代码开始
sum1 = 0
for i in range(1, t):
    s = t - i
    if 2 * i + 4 * s == j:
        sum1 += 1
        print("鸡%d只兔子%d只"% (i, s))
if sum1 == 0:
    print("无解")
#代码结束

5.剩余最短木料

求剩余最短木料的切割方案。 输入一根材料的长度,需要截成长度为19米和23米的短料。求两种短料各截多少根时,剩余的材料最少?(每种短料必须大于等于一根)

s=eval(input())
#代码开始
a = s // 19
b = s // 23
sy = 5
for i in range(1, b):
    for j in range(1, a):
        if j * 19 + i * 23 <= s:
            sx = s - j * 19 - i * 23
            if sx < sy:
                n1 = j
                n2 = i
                zx = sx

#代码结束
print("19米{}段,23米{}段,剩余{}米".format(n1,n2,zx))

6.打印图形

编写一个能计打印图形的小程序。 输入大写字母,打印一个相关图形 例如,输入E 打印图形如下

zm=input("")
#代码开始
n = ord(zm) - ord("A")
for i in range(0, n+1):
    for j in range(n-i):
        print(" ",end="")
    for x in range(0, i+1):
        print("%s" % chr(ord("A") + x),end="")
    for y in range(1,i+1):
        print("%s" % chr(ord("A") + i - y),end="")
    print()
#代码结束

7.逻辑推断

一位法官在审理一起盗窃案时,对涉及到的四名嫌疑犯A、B、C、D进行了审问。 四人分别供述如下: A:“罪犯在B、C、D三人之中。” B:“我没有作案,是C偷的。” C:“在A和D中间有一个是罪犯。” D:“B说的是事实” 经过充分的调查,证实四人中只有两人说了真话,并且罪犯只有一个。 请输出真正罪犯的编码 例如,如果A是罪犯,输出A是罪犯。

提示:可以用变量a为0表示a不是罪犯,a为1表示a是罪犯 然后对每个人的两种可能循环。

 #代码开始
for a in range(0, 2):
    for b in range(0, 2):
        for c in range(0, 2):
            for d in range(0, 2):
                if a + b + c + d == 1:  # 只有一个罪犯,相加等于1
                    if (b==1 or c==1 or d==1)+2*(b==0 and c==1)+(a==1 or d==1)==2:
                        if a == 1:
                            print("A是罪犯")
                        elif b == 1:
                            print("B是罪犯")
                        elif c== 1:
                            print("C是罪犯")
                        elif d == 1:
                            print("D是罪犯")
 
 #代码结束

8.多人唐诗作品标题

在唐诗.txt文件,如下图所示。每首诗的标题为序号诗人冒号诗名。

编写程序,输入诗人姓名,显示该诗人所写的诗的标题,以及作品数,如图所示。 如果该诗人没有作品,显示无作品。 要求能够循环输入诗人姓名进行查找,直到输入空串为止。提示: 查询完一位诗人后需要通过f1.seek(0)将文件指针移到文件的开始处。

f1=open("sy6//唐诗.txt","r",encoding="utf-8")
x=input("诗人姓名")

#代码开始
while True:
    count = 0
    f1.seek(0)
    if x == "":
        break
    for i in f1.readlines():
        i = i.strip("\n")
        if i.find(x) != -1:
            count += 1
            print(i)
    if count != 0:
        print("一共{}首".format(count))
    else:
        print("无作品")
    
    x = input("诗人姓名")

#代码结束
f1.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/506979.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器人---人形机器人之技术方向

1 背景介绍 在前面的文章《行业杂谈---人形机器人的未来》中&#xff0c;笔者初步介绍了人形机器人的未来发展趋势。同智能汽车一样&#xff0c;它也会是未来机器人领域的一个重要分支。目前地球上最高智慧的结晶体就是人类&#xff0c;那么人形机器人的未来会有非常大的发展空…

MyBatis 参数重复打印的bug

现象 最近有个需求&#xff0c;需要在mybatis对数据库进行写入操作的时候&#xff0c;根据条件对对象中的某个值进行置空&#xff0c;然后再进行写入&#xff0c;这样数据库中的值就会为空了。 根据网上查看的资料&#xff0c;选择在 StatementHandler 类执行 update 的时候进…

什么品牌的护眼台灯比较好?收获好评的护眼台灯十大品牌推荐!

在这个数字时代&#xff0c;保护双眼的健康愈发受到人们的重视。而护眼台灯&#xff0c;作为守护视力的得力助手&#xff0c;其品牌选择至关重要。究竟什么品牌的护眼台灯比较好呢&#xff1f;今天&#xff0c;我将为大家推荐收获好评的护眼台灯十大品牌&#xff0c;这些品牌凭…

前端-css-01

1.CSS 长度单位和颜色设置 1.1CSS 中的长度单位 px 像素 em 字体大小的倍数&#xff08;字体默认是16px&#xff09; % 百分比 1.2CSS 中的颜色设置方式 1.2.1使用颜色名表示颜色 red、orange、yellow、green、cyan、blue、purple、pink、deeppink、skyblue、greenyellow .…

火鸟门户—团购秒杀

团购杀秒 简介 团购秒杀是一种基于社交裂变的电商模式&#xff0c;用户可以发起或参与拼团&#xff0c;以后续的价格购买商品。团购秒杀可以有效提升商品销量、引流新用户、增强用户粘性。 功能 团购&#xff1a;用户可以发起或参与拼团&#xff0c;以不同的价格购买商品。 秒杀…

docker部署修改主机网络

教学版教程&#xff1a;docker 部署教学版本-CSDN博客文章浏览阅读1.1k次&#xff0c;点赞23次&#xff0c;收藏18次。1&#xff09;docker 部署mysql、redis、nginx ;2)docker compose一键单机部署&#xff1b;3&#xff09;docker网络&#xff1b;4&#xff09;dcocker swarn…

混合现实(MR)开发工具

混合现实&#xff08;MR&#xff09;开发工具是一系列软件和框架&#xff0c;它们使得开发者能够创建和优化能够在虚拟与现实世界之间无缝交互的应用程序。以下是一些在MR领域内广泛使用的开发工具。 1.Microsoft Mixed Reality Toolkit (MRTK) MRTK是一个跨平台的工具包&…

石煤酸浸提钒工艺-树脂

摘要&#xff1a;海普提钒树脂在使用中拥有更高交换容量、树脂处理量更大、吸附精度高&#xff0c;对钒的选择性更好&#xff0c;配合海普提钒离子交换富集纯化工艺设备&#xff0c;更好的保证了系统运行平稳性与可靠性。​​ #石煤酸浸提钒工艺-树脂 ​钒是一种重要的战略物资…

【小黑送书—第十八期】>>让工作自动化起来!无所不能的Python(文末送书)

随着我国企业数字化和信息化的深入&#xff0c;企业对办公自动化的效率和灵活性要求越来越高。Python作为一种开源的软件应用开发方式&#xff0c;通过提供强大丰富的库文件包&#xff0c;极大地简化了应用开发过程&#xff0c;降低了技术门槛。Python开发有哪些优势、挑战以及…

设备健康监测系统:保障设备安全与稳定运行!

前言 随着科技的不断发展&#xff0c;各种设备的使用也越来越广泛&#xff0c;从而带来了更多的设备管理和维护问题。设备健康监测系统应运而生&#xff0c;它是一种能够监测、分析和管理设备健康状况的系统&#xff0c;及时发现设备故障和降低维修成本。该系统通过实时监测设…

shell脚本发布docker springboot项目示例

docker、git、Maven、jdk8安装略过。 使git pull或者git push不需要输入密码操作方法 约定&#xff1a; 路径&#xff1a;/opt/springbootdemo&#xff0c; 项目&#xff1a;springbootdemo&#xff0c; 打包&#xff1a;springbootdemo.jar&#xff0c; docker容器名字&#x…

蓝桥杯刷题day13——自助餐【算法赛】

一、问题描述 食堂最近推出了自助取餐功能,可以通过盘子的形状自动计算费用。你参与到自助计算价格的项目工作中。视觉组的同学已经帮你通过图像识别把盘子图片转换为了字符串,你只需要计算具体的价格即可。 餐盘的费用如下表所示: 你将会得到n 个字符串,请按照价格表计算…

【Linux】动态库与静态库

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.为什么要有库&…

数字人克隆系统源码部署,该如何选择源码厂家

短视频领域成2024年风口&#xff0c;数字化概念成为我们生活中不可或缺的一部分。在数字化的大潮中&#xff0c;有很多创业者开始瞄准了数字人源码部署这个商业风口项目。而许多企业开始考虑采用数字人系统进行业务拓展和服务升级&#xff0c;那么如何选择适合自己的数字人源码…

立白打造统一数据工作台,报表查看更方便,领导决策更高效!

数字化时代&#xff0c;数据就好比隐藏的宝藏&#xff0c;“寻宝人”若想精准、便捷地探索宝藏&#xff0c;就需要应用清晰、明确的藏宝图——数据门户。 今天&#xff0c;小编就带领大家&#xff0c;看看作为国内500强的日化品牌如何携手迅易科技搭建和应用统一数据门户&…

专题三_二分查找(1)

目录 704. 二分查找 解析 题解 34. 在排序数组中查找元素的第一个和最后一个位置 解析 题解 69. x 的平方根 解析 题解 704. 二分查找 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 解析 题解 class Solution { public:int search(vector<int>& …

【考研数学】零基础120+备考计划(附资源分享)

大学四年没学过数学&#xff0c;那数学就等于零基础 如果想参加考研数学&#xff0c;并且想获得一个比较好的分数&#xff0c;那我建议&#xff0c;一定要从头开始学&#xff0c;从最简单的开始学&#xff01; 在考研的选择上&#xff0c;我们都知道&#xff0c;有数学一、数…

【C++】一篇文章带你深入了解string

目录 一. 为什么学习string&#xff1f;二、 标准库中的string2.1 string介绍2.2 string的常用接口说明2.2.1 string对象的常见构造2.2.1.1 [string()](https://legacy.cplusplus.com/reference/string/string/string/) ---- 无参构造函数2.2.1.2 [string(const char* s)](http…

Vue限制文本框显示字数,多余用...代替

1.在filters.js封装过滤器方法 import Vue from vue//设置只显示几个字符串&#xff0c;默认20个 Vue.filter(filterAmount, function(value, n) {if(!n) n 20;if(value && value.length > n) {value value.substring(0, n) ...;}return value;} )2.在main.js引…

JavaEE 初阶篇-深入了解多线程安全问题(指令重排序、解决内存可见性与等待通知机制)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 指令重排序概述 1.1 指令重排序主要分为两种类型 1.2 指令重排序所引发的问题 2.0 内存可见性概述 2.1 导致内存可见性问题主要涉及两个方面 2.2 解决内存可见性问…