python循环结构练习

目录

前言

1、使用while实现模拟用户登录

[1.1 题目要求](#1.1 题目要求)

[1.2 解题](#1.2 解题)

2、输入数字,生成对应等腰三角形

[2.1 题目要求](#2.1 题目要求)

[2.2 解题](#2.2 解题)

3、输入数字,生成对应的菱形

[3.1 题目要求](#3.1 题目要求)

[3.2 解题](#3.2 解题)

总结


前言

本系列主要是讲解python中的题目,目的是为了巩固所学知识,本篇主要围绕python中所学的循环结构,进行题目练习。

1、使用while实现模拟用户登录

1.1 题目要求

事先设定好账号和密码,这里账号使用pxy123,密码使用888888。

当用户输入账号密码正确时,输出"正在登录,请稍后"的字样。当用户输入账号或密码错误时,输出"密码错误,请重新输入",并给出剩余输入次数。设定输入错误次数不得超过3次。一旦输入错误超过三次,则输出"输入错误超过三次,登录失败"的字样。

1.2 解题

本题需要用到循环结构进行编写,其中,循环次数最大为3,如果中途输入成功,则直接跳出循环,如果循环3次未输入正确账号密码,则输出"登录失败"的字样。

python 复制代码
i=0
while i<3:
    idn=input("请输入账号:")
    pwd=input("请输入密码:")
    if idn=="pxy123" and pwd=="888888":
        print("输入成功,正在登录,请稍后")
        i=8
    else:
        print("输入错误,您还有",2-i,"次机会,请重新输入")
        i+=1
if i==3:
    print("3次均错误,登录失败")

效果如下:

2、输入数字,生成对应等腰三角形

2.1 题目要求

输入数字,该数字为生成等腰三角形的行数,如:

2.2 解题

只需要设计一个嵌套循环,下面看代码:

python 复制代码
n=eval(input("请输入等腰三角形三角形行数:"))

while n!=0:
    i=0
    while i<n:
        j = 0
        while j<n-i-1:
            print(' ',end='')
            j+=1
        j=0
        while j<2*i+1:
            print('*',end='')
            j+=1
        i += 1
        print(end='\n')
    n = eval(input("请输入等腰三角形三角形行数:"))

效果如下:

我们需要找到每一行星号和空格数量的关系,我们发现,第一行输出的空格正好等于输入值n减去1。然后输出星号的个数随着行数以1、3、5、7...这样的规律上升。以此为依据,写出了如上代码,完成了任务要求。

3、输入数字,生成对应的菱形

3.1 题目要求

输入菱形的行数,注意只能是奇数。生成相应的菱形,如:

3.2 解题

此题思路与上题类似,找出每一行之间空格和星号的关系,特别注意的是,对于菱形,如果我们将它从中间切开,可以分成两个有规律的等边三角形处理,这样有助于我们解题:

python 复制代码
n=eval(input("请输入菱形的行数:"))
while n!=0:
    for i in range(1,n+1):
        if i<=n//2+1:
            j=1
            while j<=n//2-i+1:
                print(' ',end='')
                j+=1
            j=1
            while j<=2*i-1:
                print('*',end='')
                j+=1
            print(end='\n')
        else:
            k=i-n//2-1
            j=1
            while j<=k:
                print(' ',end='')
                j+=1
            j=1
            while j<=n-2*k:
                print('*',end='')
                j+=1
            print(end='\n')
    n = eval(input("请输入菱形的行数:"))

效果如下:

总结

通过做题,我们能够更加深刻了解python的用法,了解知识点。希望这几题能对你有所帮助。

相关推荐
何大春15 分钟前
【弱监督语义分割】Self-supervised Image-specific Prototype Exploration for WSSS 论文阅读
论文阅读·人工智能·python·深度学习·论文笔记·原型模式
福大大架构师每日一题17 分钟前
文心一言 VS 讯飞星火 VS chatgpt (396)-- 算法导论25.2 1题
算法·文心一言
在下不上天23 分钟前
Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复
大数据·开发语言·python
SEVEN-YEARS27 分钟前
深入理解TensorFlow中的形状处理函数
人工智能·python·tensorflow
EterNity_TiMe_32 分钟前
【论文复现】(CLIP)文本也能和图像配对
python·学习·算法·性能优化·数据分析·clip
sanguine__35 分钟前
java学习-集合
学习
lxlyhwl35 分钟前
【STK学习】part2-星座-目标可见性与覆盖性分析
学习
nbsaas-boot36 分钟前
如何利用ChatGPT加速开发与学习:以BPMN编辑器为例
学习·chatgpt·编辑器
陌小呆^O^37 分钟前
Cmakelist.txt之win-c-udp-client
c语言·开发语言·udp
机器学习之心42 分钟前
一区北方苍鹰算法优化+创新改进Transformer!NGO-Transformer-LSTM多变量回归预测
算法·lstm·transformer·北方苍鹰算法优化·多变量回归预测·ngo-transformer