Python—Day04.循环结构,while true

Github: GitHub -https://github.com/jackfrued/Python-100-Days
(骆昊)
Gitclone: https://gitee.com/viitii/Python-100-Days

10.14
Day04.循环结构

分支结构:判断是否条件,只执行一次
循环结构:只有判断为False才可以出去,否则一直循环n次

for循环适用于针对集合中每个元素都执行一个代码块,而while循环则不断运行,直到指定的条件不满足为止。
for循环与while循环后面都要加上冒号!!

1.for…in…循环
使用:明确的知道循环执行的次数或者要对一个容器进行迭代

"""
用for循环实现1~100之间的偶数求和
"""
sum = 0
for x in range(2, 101, 2):
    sum += x
print(sum)

补充:rang()函数
在这里插入图片描述
2.while循环
使用:构造不知道具体循环次数的循环结构。while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True则继续循环;表达式的值为False则结束循环。

"""
猜数字游戏:计算机出一个1到100之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息(大一点、小一点或猜对了),如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。
"""
import random

answer = random.randint(1, 100)
counter = 0
while True:
    counter += 1
    number = int(input('请输入: '))
    if number < answer:
        print('大一点')
    elif number > answer:
        print('小一点')
    else:
        print('恭喜你猜对了!')
        break
print('你总共猜了%d次' % counter)
if counter > 7:
    print('你的智商余额明显不足')

补充:
(1)while True + break 用法:
本质——“死循环”,没有代码内部执行break 进行终止,会持续循环。核心思想是如果出现错误的话,可以继续循环。
在这里插入图片描述
案例
建立一个用户登录系统,用户输入用户名和密码,如果正确可以进入系统。

d = {}        #数据库字典,所有用户的用户名密码存储在此

name = input("请输入您的用户名:")
if name in d:
	password = input("请输入您的密码")
	if d[name] == password:
		print('进入系统')
	else:
		print('您输入的密码错误,请重新输入')
else:
	print('您输入的用户名不正确,请重新输入')
————————————————
版权声明:本文为CSDN博主「geerniya」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/geerniya/article/details/77524173

存在漏洞:如果出现错误,没有返回到原来的地方,请求继续输入。
利用While True改进:每当出现一个错误,就返回重新输入

d = {}

while True:
	name = input('请输入您的用户名:')
	if name in d:
		break
	else:
		print('您输入的用户名不存在,请重新输入')
		continue
#也可以调换两个条件位置,把 break 放在末尾,此时 in 改为 not in
while True:
	password = input('请输入您的密码:')
	if d[name] == password:
		print('进入系统')
		break
	else:
		print('您输入的密码不正确,请重新输入')
		continue
————————————————
版权声明:本文为CSDN博主「geerniya」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/geerniya/article/details/77524173

(2)while + continue用法
要返回循环开头,并根据条件测试结果决定是否继续执行循环,使用continue语句。

#从1到10,只打印其中的奇数
current_number=0
while current_number<10
    cunrrent_number+=1
    if current_nmuber%2==0
        continue
    print(current_number)

注:if语句检查current_number是否为奇数,如果为奇数的话,则无视continue下面的语句,返回while继续循环语句;如果是偶数的话,就执行余下代码,把偶数打印下来。注意此处continue是在 if 的

(3) randint() 用法
使用:
① 在随机模块内部定义的不同随机数生成的方法,需要先在Python中导入random模块 ,才能开始使用randint() 方法。 该模块实质上创建了伪随机性 。(先 import random,再有 random.randint())。
② randint()方法返回作为两个参数提供的两个较低和较高限制(包括两个限制)之间的随机整数值

randint (lower limit , upper limit)

(4)end=’ ’ 用法
为末尾end传递一个空字符串,这样print函数不会在字符串末尾添加一个换行符,而是添加一个空字符串。
即末尾不换行,只打一个空格。不然,打一个*就会换一行。

经典案例:打星星

for i in range(row):
    for _ in range(i + 1):
        print('*', end='')
    print()

'''
*
**
***
****
*****
'''
for i in range(5):
    for j in range(5):
        if j < row - i - 1:
            print(' ', end='')
        else:
            print('*', end='')
    print()
    
'''
    *
   **
  ***
 ****
*****
'''
for i in range(5):
    for _ in range(5 - i - 1):
        print(' ', end='')
    for _ in range(2 * i + 1):
        print('*', end='')
    print()
   
'''
    *
   ***
  *****
 *******
*********
'''

注意:
① 没有打 end=’ '的话,每行只有一个*
② 没有打最后的 print() ,所有的 * 都在一行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值