Python程序设计 循环结构(二)

news/2024/4/27 18:42:10/文章来源:https://blog.csdn.net/weixin_58063872/article/details/137114693

1.斐波那契数列

编写一个能计算斐波那契数列中第x个数的小程序。斐波那契数列(Fibonacci sequence),又称黄金分割数列、 因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。 有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,每个月的兔子数形成的数为斐波那契额数列 在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*),根据提示,在右侧编辑器补充代码,输入x,输出第x个斐波那契数列。 注意:斐波那契数列的第一项和第二项为1

x=eval(input("")) 
#代码开始
def sum1(x):if x == 1 or x == 2:return 1else:return sum1(x-1) + sum1(x-2)for i in range(1,x+1):sum2 = sum1(i)print(sum2)
#代码结束

2.统计一段英文语句中的单词数和句子数

编写一个小程序,输入一段英文短语,统计其中的单词数目和句子数目。要统计词语的数量,则统计当前字符是大写或小写英文字母,而前一个字符是空格或标点符号(句号(.)惊叹号(!)问号(?)逗号(,)分号(;)双引号(""))等的数目。 例如,输入英文短语如下,统计结果为57个单词和3个句子。 提示:对字符串的每个字符ch循环,若ch是句号(.)惊叹号(!)问号(?)时,则表示句子数的变量加一。若ch是大小写英文字母,且前一个字符是指定标点时,表示词语数的变量加一。前一个字符可以用一个变量保存,只要在循环语句的最后将ch赋值给该变量即可。提示:对于第一个字符,可以设置其前一个字符为空格。

x=input()
#代码开始
t=" "
jz = 0
cy = 0
for i in x:if i == "." or i == "?" or i == "!":jz += 1if(i.isalpha() and (t ==" " or t =="." or t=="!" or t=="?" or t=="," or t ==";" or t=="\"")):cy = cy + 1t = i#代码结束
print("单词{}句子{}".format(cy,jz))

3.密码判断

输入用户名和密码,根据密码文件中所记录的用户名和密码信息,判断登录信息是否正确

密码文件的信息如下所示,每行显示逗号分隔的姓名和密码

甲乙,11111111 陈二,76895409 张三,12345678 李四,87654321 王五,88888888 赵六,99999999 欧阳小七,42110198

f1=open("sy5/密码.txt","r",encoding="utf-8")
x=input("用户名")
y=input("密码")
#代码开始
for i in f1:i = i.strip("\n")yhm = i.split(",")[0]mm = i.split(",")[1]if x == yhm and y == mm:print("密码正确")break
else: print("用户名或密码错误")#代码结束

4.通过数列求自然常数e

编写程序,根据近似公式 e≈1+1/(1!)+1/(2!)+1/(3!)+… +1/(n!) 计算 e 的近似值,要求直至最后一项的值小于 1e-7 次方为止

s=1
#代码开始
t = 1
n = 1
m = 1
while(t>1e-7):t = 1 / ns = s + tm = m + 1n = n * m
#代码结束
print("e值为{:.8}".format(s))

5.双倍余额递减法计算固定资产折旧

编写一个使用双倍余额递减法计算固定资产折旧的小程序。

双倍余额递减法进行固定资产折旧的规则:双倍余额递减法是在不考虑固定资产预计净残值的情况下,根据每年年初固定资产净值和双倍的直线法折旧率计算固定资产折旧额的一种方法。它的基本规则是:以固定资产使用年数倒数的2倍作为它的年折旧率,以每年年初的固定资产账面余额作为每年折旧的计算基数,但由于在固定资产折旧的初期和中期时不考虑净残值对折旧的影响,为了防止净残值被提前一起折旧,因此现行会计制度规定,在固定资产使用的最后两年中,折旧计算方法改为平均年限法,即在最后两年将固定资产的账面余额减去净残值后的金额除以2作为最后两年的应计提的折旧。 例:某医院有一台机器设备原价为600000元,预计使用寿命为5年,预计净残值24000元。 年折旧率=2/5=40%

yj=eval(input("原价"))
cz=eval(input("残值"))
n=eval(input("年限"))
#代码开始a = 1 / n * 2
for i in range(1, n+1):if n - i < 2 :s = (yj - cz) / 2else:s = yj * ayj -= sprint("第{:2d}年折旧{:.2f}".format(i,s))
#代码结束

6.销售统计

循环输入商品编号、数量和价格,进行累加。 只到输入商品编号为0000为止。 输出商品种类、数量总计和金额总计。

spbh=input("输入商品代码")
s=0
c=0
sl=0
#代码开始
while(spbh != "0000"):a = input("输入商品价格")b = input("输入商品数量")c = c + 1sl = sl + int(b)s = s + int(a) * int(b)spbh = input("输入商品代码")#代码结束
print("商品种类{}数量总计{}金额总计{:.2f}".format(c,sl,s))

7.投资年限计算

编写一个计算投资年限的小程序 某客户每年年初在银行存入一笔固定金额的钱m,在年底,将本金和利息取出.在第二年年初,将该笔钱与新存入的钱m一起,再存入银行。输入每年存款m、年利率r,再输入用户要得到的金额x,计算该客户需要存放多少年y才能得到需要的金额。 例如,输入存款10000,年利率0.1,金额100000,输出7 输入存款50000,年利率0.05,金额500000,输出8。

m=eval(input("存款"))
r=eval(input("年利率"))
x=eval(input("金额"))
#代码开始
s = 0
n = 0
while(s < x):s = (s + m) * r + s + mn = n + 1
#代码结束
print(n)

8.诗人作品统计

在唐诗.txt文件,如下图所示。每首诗的标题为序号诗人冒号诗名。编写程序,输入诗人姓名,显示该诗人所写的诗的标题,以及作品数,如图所示。 如果该诗人没有作品,显示无作品。

f1=open("sy5//唐诗.txt","r")
x=input("输入作者")
#代码开始
t = True
s = 0
for i in f1:i = i.strip("\n")n = i[3:3 + len(x)]if (n == x):t = Falseprint(i)s = s + 1
if (t == True):print("无作品")
else:print("作品数 %d" % s)
#代码结束

9.python圆周率计算

用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数y为止 注意:不包括最后一项,测试输入 0.0001, 程序输出 3.1414

y=eval(input())
#开始
s = 1
n = 1
t = 1
p = 0
while True:p = p + tn = n + 2s = s * -1t = s / nif abs(t) <= y:breaks = p * 4
#结束
print("{:.4f}".format(s))

10.银行利息计算

某人有资金100000元,他存入银行一年期的大额存款,年利率为5%,一年后又将所有资金转存。若银行利率一直不变,求想获得指定金额的资金,存款至少需要多少年。 测试输入120000 输出4

y=eval(input())
#开始
s = 100000
n = 0
while(1):s = s + s * 0.05n += 1if s >= y:break#结束
print("{:d}".format(n))

11.模体motify查找

部分序列在不同基因组中共有,这种序列我们称为Motif。 事实上基因组中的Motif出现多次,这种情况称为重复。 给出一个长的DNA字符串s,和一个较短的DNA字符串t。 要求找出s中出现t的所有位置。注意位置从0开始计数。 输出t在s中出现的位置,即起始下标。如果有多次匹配,都需要输出。 例如输入 GATATATGCATATACTT ATAT 输出 1 3 9 输入 GATATATGCATATACTT CTAG 输出没有此模体,提示:x.find(y,beg,end) find() 方法检测字符串x中是否包含子字符串y ,如果指定 begin(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串,返回开始的索引值,否则返回-1。未指定begin和end的范围,则默认整个字符串内检索 beg默认为0,end默认为字符长度。

s=input("输入长DNA")
t=input("输入模体")
#代码开始
b = 0
c = 0
for i in range(len(s)):a = s.find(t,i)if a < 0 or b == a:continueelif a > 0 and b!= a:b = ac += 1print(a)if c == 0:        print("没有此模体")#代码结束

12.苹果问题

在宫廷举办的数学竞赛中,斐波那契曾提出过如下的“苹果问题”:一个人经过n道门进入苹果园,摘了许多苹果。离开果园时,给第一个守门人一半苹果加1个;给第二个守门人余下的一半苹果加1个;对其他守门人也是如此这般,最后他带1个苹果离开果园.请问他当初一共摘了多少苹果。 输入n,计算他当初摘的苹果数 例如,输入7,输出384

n=eval(input())
#代码开始
x = 1 
for i in range(1,n+1):x = (x + 1) * 2  
#代码结束
print("苹果数{}".format(x))

13.韩信点兵

相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾(余下的人数)就知道总人数了。 输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。 已知总人数不小于10,不超过100 

a=eval(input("a"))
b=eval(input("b"))
c=eval(input("c"))
#代码开始
for i in range(10,101):if i % 3 == a and i % 5 == b and i % 7 == c:print(i)break
else:print("无解")
#代码结束

14.电商促销循环计算

某电商双11促销活动。消费金额每满200元减免30元,上不封顶。 若用户是vip,则对优惠后的金额再享受95折优惠。 编写程序,用户可反复输入消费金额和是否vip(y表示是n表示否),计算并显示实际付款和优惠金额,直到用户输入消费金额0为止。(显示保留两位小数)

x=eval(input("消费金额"))
#代码开始while True:if x == 0:breaks = xif x >= 200:a = x // 200s = x - 30 * asf = input("是否vip")if sf == "y":s = s * 0.95else:s = sprint("实际付款{:.2f}优惠{:.2f}".format(s,x-s))x = eval(input("消费金额"))#代码结束

15.分解质因数

把一个合数用质因数相乘的形式表示出来,叫做分解质因数。 例如 54=2*3*3*3 80=2*2*2*2*5 输入一个合数,将其显示为质因数相乘的形式 例如,输入150 显示 150=2*3*5*5

n=eval(input())
#代码开始
m = n
i = 2
s = 1
print("%d=" % n, end="")
while True:if m%i==0:m = m / is = s * iprint("%d" % i, end="")if s == n:print()else:print("*",end="")else:i += 1if i == n + 1:break#代码结束

16.银行信息查询

编写一个能查询银行信息的小程序。 银行信息.csv文件如下所示:每行显示银行的编号,名称,省份,城市和类别信息。

编写程序,输入银行的名称和城市,将该城市的包含查询关键字的银行信息显示出来,并显示序号。最后显示银行数目。 若没有符合条件的数据,显示无符合条件的银行。 注意; 模糊查询即可(该行包含城市名和银行的名称即显示) 序号和银行信息之间有空格

f1=open("lx2//银行信息.csv","r",encoding="utf8")
x=input("银行名称")
y=input("城市")
#代码开始
n = 1
for i in f1:  i = i.strip("\n").split(",") if len(i[3]) > 3:  if x == i[4][-4:] and y == i[3][0:-1]:   print(n, end=" ")print(i[0],i[1],i[2],i[3],i[4],sep=",")n = n + 1elif x == i[4][-4:] and y == i[3][0:2]:print(n,end=" ")print(i[0],i[1],i[2],i[3],i[4],sep=",")   n = n + 1          else:if x ==i[4][-4:] and y == i[3]:print(n,end=" ")print(i[0],i[1],i[2],i[3],i[4],sep=",")n = n + 1if n-1 == 0:print("无符合条件的银行")  
else:         print("共%d个银行" % (n - 1))#代码结束 
f1.close()

17.区县信息查询

编写一个能查询湖南省的区县信息的小程序。 湖南区县.csv文件如下所示:每行显示城市名称、区县名称和街道乡镇名称

编写程序,输入区县名称,将该区县的每行信息显示出来,并显示序号。最后显示该区县的街道的数目、乡的数目和镇的数目 (提示:根据该行结尾的字符判断该行为街道、乡或镇。注意每行结尾有换行符) 若没有符合条件的数据,显示没有此区县信息 注意; 序号和信息之间有空格

f1=open("lx2//湖南区县.csv","r",encoding="utf8")
s=input("区县名称")
#代码开始
n = 1
count1 = 0
count2 = 0
count3 = 0
c = 0
for i in f1:i = i.strip("\n").split(",")if s == i[1]:c += 1print(n,end=" ")print(i[0],i[1],i[2],sep=",")n = n + 1if i[2][-1] == "道":count1 += 1elif i[2][-1] == "乡":count2 += 1elif i[2][-1] == "镇":count3 += 1
if c > 0:print("{}个街道{}个乡{}个镇".format(count1,count2,count3))
else:print("没有此区县信息")
#代码结束
f1.close()

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

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

相关文章

日本EPSON 爱普生HUD汽车抬头显示系统芯片

目前HUD产品在新车上的配装率逐年上升&#xff0c;预计在2025年将达到30%。那么在介绍爱普生HUD整合方案之前&#xff0c;让我们先了解一下什么叫HUD。 HUD&#xff08;Head Up Display&#xff09;中文叫抬头显示系统&#xff0c;又被叫做平行显示系统。早被应用在飞机辅助…

Linux系统——硬件命令

目录 一.网卡带宽 1.查看网卡速率——ethtool 网卡名 2.查看mac地址——ethtool -P 网卡名 二、内存相关 1.显示系统中内存使用情况——free -h 2.显示内存模块的详细信息——dmidecode -t memory 三、CPU相关 1.查看CPU架构信息——lscpu 2.性能模式 四、其他硬件命…

C语言例4-37:输出10~100的全部素数

素数是指除1和它本身之外不能被其他任何整数整除。 自己思考的基础代码如下&#xff1a; //输出10~100的全部素数 //素数是指除1和它本身之外不能被其他任何整数整除 //自己思考的基础代码 #include<stdio.h> int main(void) {int n10,i2,m,counter0; // n10~100;for(n…

如何用Flask中的Blueprints构建大型Web应用

本文分享自华为云社区《构建大型Web应用Flask中的Blueprints指南》&#xff0c;作者&#xff1a; 柠檬味拥抱。 什么是Blueprints&#xff1f; 什么是Blueprints&#xff1f; Blueprints是Flask中的一种模式&#xff0c;用于将应用程序分解为可重用的模块。每个蓝图实际上是…

IDEA | 资源文件中文乱码问题解决

问题 IDEA打开资源文件&#xff0c;显示乱码问题。 解决方案 1、电脑是mac&#xff0c;点击IDEA->【Preferences】->【Editor】->【File Encodings】 2、选择【Properties Files】中的UTF-8&#xff0c;并勾选Transparent native-to-ascii conversion。 3、最后点击…

蓝桥杯算法赛(二进制王国)

问题描述 二进制王国是一个非常特殊的国家&#xff0c;因为该国家的居民仅由 0 和 1 组成。 在这个国家中&#xff0c;每个家庭都可以用一个由 0 和 1 组成的字符串 S 来表示&#xff0c;例如 101、 000、 111 等。 现在&#xff0c;国王选了出 N 户家庭参加邻国的庆典…

Karmada 管理有状态应用 Xline 的早期探索与实践

背景与动机 目前随着云原生技术和云市场的不断成熟&#xff0c;越来越多的 IT 厂商开始投入到跨云多集群的怀抱当中。以下是 flexera 在 2023 年中关于云原生市场对多云多集群管理的接受程度的调查报告&#xff08;http://info.flexera.com&#xff09; 从 flexera 的报告中可…

python_1

要求&#xff1a; 代码&#xff1a; # 先将分钟数转化成年数&#xff0c;再将余数做为天数 minute float(input("请输入分钟数&#xff1a;")) year_1 (minute / 60 / 24) // 365 day_1 (minute / 60 / 24) % 365 now f"{minute}分钟{year_1}年{day_1}天&q…

Polkadot、Kusama 和六大领先平行链现已上线 Dune 数据分析平台!

3 月 19 日对于波卡社区来说是一个关键性的时刻&#xff0c;因为 Polkadot 数据首次在领先的区块链数据开源分析平台 Dune 上可以被访问和使用。这是 Colorful Notion 和 Dune 之间战略合作的结果&#xff0c;这次的合作与集成将使 Polkadot 生态系统的可见性大幅增强&#xff…

力扣面试150 阶乘后的零 数论 找规律 质因数

Problem: 172. 阶乘后的零 思路 &#x1f468;‍&#x1f3eb; 大佬神解 一个数末尾有多少个 0 &#xff0c;取决于这个数 有多少个因子 10而 10 可以分解出质因子 2 和 5而在阶乘种&#xff0c;2 的倍数会比 5 的倍数多&#xff0c;换而言之&#xff0c;每一个 5 都会找到一…

HTML 常用标签总结

本篇文章总结了一些我在学习html时所记录的标签&#xff0c;虽然总结并不是非常全面&#xff0c;但都是一些比较常用的。 html元素标签 首先一个html界面是由无数个元素标签组成的&#xff0c;每个元素具有它的属性 1.input 单行文本框 标签type属性——text <input ty…

机器学习周记(第三十一周:文献阅读-GGNN)2024.3.18~2024.3.24

目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文模型 1.2.1 数据处理 1.2.2 门控图神经网络 1.2.3 掩码操作 2 相关知识 2.1 图神经网络&#xff08;GNN&#xff09; 2.2 图卷积神经网络&#xff08;GCN&#xff09; 3 相关代码 摘要 本周阅读了一篇利用图神…

IDEA2023版本整合SpringBoot热部署

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 开发环境篇 ✨特色专栏&#xff1a; M…

波奇学Linux:自定义协议和序列和反序列化

TCP是面向字节流的如何保证&#xff0c;读取上来的数据是一个"完整"的报文 tcp传输控制协议&#xff1a;什么时候发&#xff0c;发多少&#xff0c;出错怎么办 read和write都是从用户到内核空间的拷贝&#xff0c;数据不一定传输到另一个台主机的缓冲区&#xff0c;…

精品凉拌菜系列热卤系列课程

这一系列课程涵盖精美凉拌菜和美味热卤菜的制作技巧。学员将学习如何选材、调味和烹饪&#xff0c;打造口感丰富、色香俱佳的菜肴。通过实践训练&#xff0c;掌握独特的烹饪技能&#xff0c;为家庭聚餐或职业厨艺提升增添亮点。 课程大小&#xff1a;6.6G 课程下载&#xff1…

IDEA 远程调试

1.什么是远程调试 Java提供了一个远程调试功能&#xff0c;支持设置断点及线程级的调试同时&#xff0c;不同的JVM通过接口的协议联系&#xff0c;本地的Java文件在远程JVM建立联系和通信。 2.服务端开启远程调试 开启远程调试功能&#xff0c;需要修改tomcat 的catalina.sh…

链表队列LinkQueue

入队&#xff1a;往尾巴上放 1.先定义一个新节点&#xff0c;指针置空 2. 连接 3. 移动尾指针 出队&#xff1a;从头部出队 1. 定义一个temp指针 2. head指针指向下一个 3. 通过free 释放temp指针所指 4. 若指完后&#xff0c;head所指为NULL&#xff0c;则把尾指…

Windows前后端部署(达梦,东方通)

打开虚拟机&#xff0c;打开远程路径服务 将素材复制到虚拟机并解压&#xff08;jkd,达梦&#xff0c;东方通&#xff0c;nginx&#xff09; 双击安装jdk(一直下一步) 安装达梦 双击 直接下载完成 东方通下载&#xff08;双击程序&#xff09; 改端口号8080 把许可文件放到东方…

设计模式——观察者模式Observer

Q&#xff1a;观察者模式属于哪一类设计模式 A&#xff1a;观察者模式属于行为学模式 Q&#xff1a;什么是观察者模式 A&#xff1a;当一个对象的状态发生改变时&#xff0c;所有依赖它的对象都得到通知&#xff0c;并自动更新 观察者模式解析&#xff1a;报纸类维护了一个…

文心一言 VS 讯飞星火 VS chatgpt (224)-- 算法导论16.3 6题

六、假定我们有字母表 C{0&#xff0c;1&#xff0c;…&#xff0c;n-1} 上的一个最优前缀码&#xff0c;我们希望用最少的二进制位传输此编码。说明如何仅用 2n-1n⌈lgn⌉ 位表示 C 上的任意最优前缀码。(提示&#xff1a;通过对树的遍历&#xff0c;用 2n-1 位说明编码树的结…