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() ,所有的 * 都在一行