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

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 1
    else:
        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 += 1
    if(i.isalpha() and (t ==" " or t =="." or t=="!" or t=="?" or t=="," or t ==";" or t=="\"")):
        cy = cy + 1
    t = 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 / n
    s = s + t
    m = m + 1
    n = 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) / 2
        
    else:
        s = yj * a
        yj -= s
    print("第{:2d}年折旧{:.2f}".format(i,s))
#代码结束

6.销售统计

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

spbh=input("输入商品代码")
s=0
c=0
sl=0
#代码开始
while(spbh != "0000"):
    a = input("输入商品价格")
    b = input("输入商品数量")
    c = c + 1
    sl = 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 + m
    n = 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 = False
        print(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 + t
    n = n + 2
    s = s * -1
    t = s / n
    if abs(t) <= y:
        break

s = p * 4
#结束
print("{:.4f}".format(s))

10.银行利息计算

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

y=eval(input())
#开始
s = 100000
n = 0
while(1):
    s = s + s * 0.05
    n += 1
    if 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:
        continue
    elif a > 0 and b!= a:
        b = a
        c += 1
        print(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:
        break
    s = x
    if x >= 200:
        a = x // 200
        s = x - 30 * a

    sf = input("是否vip")
    if sf == "y":
        s = s * 0.95
    else:
        s = s
    print("实际付款{:.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 / i
        s = s * i
        print("%d" % i, end="")
        if s == n:
            print()
        else:
            print("*",end="")
    else:
        i += 1
    if 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 + 1
                elif 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 + 1

                                
if 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 += 1
        print(n,end=" ")
        print(i[0],i[1],i[2],sep=",")
        n = n + 1
        if i[2][-1] == "道":
            count1 += 1
        elif i[2][-1] == "乡":
            count2 += 1
        elif i[2][-1] == "镇":
            count3 += 1
if c > 0:
    print("{}个街道{}个乡{}个镇".format(count1,count2,count3))
else:
    print("没有此区县信息")
#代码结束
f1.close()

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

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

相关文章

protobuf 从版本 4.24.4 降级到版本 3.19.0

1.查看protobuf版本号&#xff1a; pip show protobuf2.卸载 4.24.4 的版本 pip uninstall protobuf3.安装 3.19.0 的版本 pip install protobuf3.19.04.查看版本是否安装成功 pip show protobuf

STM32通用输入输出

一、GPIO介绍 功能&#xff1a; 输入&#xff08;Input&#xff09;&#xff1a; 浮空:输入没有接上拉和下拉 模拟&#xff1a;输入没有走上拉和下拉走的是模拟输入 上拉&#xff1a;上拉电阻是合上的&#xff0c;接入点为上拉电阻 下拉&#xff1a;下拉电阻是合上的 输…

Cocos2dx-lua ScrollView[三]高级篇

一.概述 本文缩写说明:sv = ScrollView, cell代表ScrollView的一个子节点 本文介绍sv的一种封装类库,来实现快速创建sv,有如下几个优点: 1.item的位置通过参数控制,提高开发效率 2.免去了调用sv的API,提高开发效率 3.分帧创建,提高性能 4.可通过参数控制,复用ite…

uniapp h5 引入阿里云一键登录

参考官方文档: 如何将H5页面接入网页端SDK并一键登录_号码认证服务(PNVS)-阿里云帮助中心 本文主要分享uniapp 对SDK依赖文件的引入 采用npm包引入的方法: 1.下载 // 下载npm资源并添加依赖到package.json npm i aliyun_numberauthsdk_web -S tips: 查看package.json文件,确…

Java毕业设计-基于springboot开发的疫情防控期间外出务工人员信息管理系统-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、后台登录2.1管理员功能2.2用户功能2.3采集员功能2.4分析员功能 四、毕设内容和源代码获取总结 Java毕业设计-基…

MySql实战--事务到底是隔离的还是不隔离的

第3篇文章和你讲事务隔离级别的时候提到过&#xff0c;如果是可重复读隔离级别&#xff0c;事务T启动的时候会创建一个视图read-view&#xff0c;之后事务T执行期间&#xff0c;即使有其他事务修改了数据&#xff0c;事务T看到的仍然跟在启动时看到的一样。也就是说&#xff0c…

MySQL安装和配置(超详细)

&#x1f468;‍&#x1f4bb;作者简介&#xff1a;&#x1f468;&#x1f3fb;‍&#x1f393;告别&#xff0c;今天 &#x1f4d4;高质量专栏 &#xff1a;☕java趣味之旅 欢迎&#x1f64f;点赞&#x1f5e3;️评论&#x1f4e5;收藏&#x1f493;关注 &#x1f496;衷心的希…

为什么做秒真问答?秒真问答营销的价值分析

近来&#xff0c;今日头条对部分业务做出调整。一方面是将“头条百科”升级为“抖音百科”&#xff0c;通过“抖音百科”这个新品牌&#xff0c;更好的为今日头条和抖音的内容场景服务。另外一方面则是&#xff0c;推出全新的问答业务“秒真问答”&#xff0c;目前已经在抖音和…

apisix创建https

总结了下apisix 使用https 的问题和方法 1、apisix 默认https 端口是9443 2、apisix 需要上传证书后才可以使用https 否二curl测试会报错 SSL routines:CONNECT_CR_SRVR_HELLO 3、apisix 上传证书方法 我是使用的自签名证书&#xff0c;注意自签名证书的Common Name 要写你…

WPF 多路绑定、值转换器ValueConvert、数据校验

值转换器 valueconvert 使用ValueConverter需要实现IValueConverter接口&#xff0c;其内部有两个方法&#xff0c;Convert和ConvertBack。我们在使用Binding绑定数据的时候&#xff0c;当遇到源属性和目标控件需要的类型不一致的&#xff0c;就可以使用ValueConverter&#xf…

Tickeys for Mac:让每一次敲击都充满乐趣,提升打字体验新高度!

Tickeys for Mac 是一款为 macOS 设计的虚拟键盘音效生成器。它通过模拟机械键盘的声音&#xff0c;为打字和输入操作增添了音效反馈&#xff0c;让用户在使用电脑时感受到更加真实的键盘反馈体验。用户可以根据个人喜好选择不同类型的键盘声音和音效设置&#xff0c;让键盘操作…

嗨购模式:绿色积分引领消费新潮流,实现增值共赢新篇章

随着绿色消费观念深入人心&#xff0c;绿色积分作为新的消费激励方式受到了广大消费者的热烈追捧。在众多消费模式中&#xff0c;嗨购模式凭借其独特的绿色积分融合策略&#xff0c;让消费者在享受绿色消费的同时&#xff0c;也能获得更多实惠与额外收益。 传统的全返机制虽然为…

Docker 部署 Elasticsearch-Filebeat-Kibana

目录 一、简介 1.Elasticsearch: 2.Filebeat: 3.Kibana: 二、工作流程 三、部署 1.创建docker网络 2.启动 elasticsearch 容器 3.创建 kibana 容器 4.客户端安装日志采集器filebeat &#xff08;1&#xff09;docker安装 &#xff08;2&#xff09;rpm安装 四、访…

新品发布|灵雀云重磅推出大模型 LLMOps 平台

自即日起&#xff0c;灵雀云正式推出大模型 LLMOps 平台 Alauda Machine Learning &#xff08;简称 AML&#xff09;&#xff0c;AML在整合传统 MLOps 解决方案的基础之上&#xff0c;为大模型/大语言模型场景提供更强大、更易用的功能。灵雀云意在将AML打造成全面覆盖传统 ML…

《YOLOv9魔术师专栏》专栏介绍 专栏目录

《YOLOv9魔术师专栏》将从以下各个方向进行创新&#xff08;更新日期24.3.28&#xff09;&#xff1a; 【原创自研模块】【多组合点优化】【注意力机制】【卷积魔改】【block&多尺度融合结合】【损失&IOU优化】【上下采样优化 】【SPPELAN & RepNCSPELAN4优化】【…

Linux系统使用Docker部署Portainer结合内网穿透实现远程管理容器和镜像

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

PMO活动︱2024第十三届中国PMO大会将于5月在京召开

PMO站在企业高度进行组织级项目管理&#xff0c;工作虽然千头万绪但首当其冲的无疑是在企业中建立统一的、标准化的项目管理方法体系&#xff0c;“无规矩不成方圆”&#xff0c;根据项目管理行业标准结合企业实际情况制定一整套适合本企业的项目管理规范制度&#xff0c;这是P…

如何使用Excel创建一个物品采购表

在企业的日常运营中&#xff0c;物品采购是一个常见且重要的活动。有效的采购管理不仅可以确保企业及时获得所需物资&#xff0c;还可以控制成本、提高效率。Microsoft Excel是一个功能强大的工具&#xff0c;它可以帮助我们创建和管理物品采购表。本文将详细介绍如何使用Excel…

如何制定公平、客观的考核标准,避免主观偏见和人情因素的影响?

在企业管理中&#xff0c;考核标准的制定是确保员工绩效评价公正、客观的关键环节。然而&#xff0c;由于主观偏见和人情因素的影响&#xff0c;很多企业在考核过程中往往难以做到公平、公正。本文将探讨如何制定公平、客观的考核标准&#xff0c;以最大程度地减少主观偏见和人…

【Frida】【Android】04_Objection安装和使用

&#x1f6eb; 系列文章导航 【Frida】【Android】01_手把手教你环境搭建 https://blog.csdn.net/kinghzking/article/details/136986950【Frida】【Android】02_JAVA层HOOK https://blog.csdn.net/kinghzking/article/details/137008446【Frida】【Android】03_RPC https://bl…