最近一直在巩固python基础,就把一些自己目前巩固的内容做个笔记整理了下
一、应用场景
1、遍历列表/元组/字典等序列类型
2、处理文件内容
3、寻找特定元素
4、执行特定次数的操作
在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环
二、for-in循环
Python中的 for 循环结构可以用于遍历一个序列(如列表、元组或字符串),并对每个元素执行特定的操作。其基本语法结构为:
for variable in sequence:
# 这里是循环体,对变量variable执行一些操作
其中,variable 是按顺序从 sequence 中取出的元素,sequence 可以是一个列表、元组、字符串等序列类型。在循环体内部,可以对 variable 执行任何操作。
例如:
list = [1,2,3,4,5,6]
for item in list:
print(item)
若知道具体次数,或者业务场景需要用到具体次数可以用for-in循环,如下:
#实现1到100求和
sum = 0
for a in rang(101):
sum = sum + 1
print(sum)
上面代码中的range(101)可以用来构造一个从1到100的范围,当我们把这样一个范围放到for-in循环中,就可以通过前面的循环变量a依次取出从1到100的整数
range函数的用法很灵活,如:
range(101):可以用来产生0到100范围的整数,需要注意的是取不到101。
range(1, 101):可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。
range(1, 101, 2):可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。
range(100, 0, -2):可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。
具体表示为:
range(stop)、range(start, stop[, step])、range()
其中:
stop:必需,指定生成的整数序列的结束值(不包含该值),即生成从0开始到stop-1的整数序列。
start:可选,指定生成的整数序列的起始值,默认为0。
step:可选,指定生成的整数序列的步长,默认为1。
二、while循环
在Python中,while循环结构可以用于多次执行一段代码,直到满足特定的条件。其基本语法如下:
while condition:
# 这里是循环体,执行一些操作
其中,condition 是一个布尔表达式,如果为True,则继续执行循环体中的代码;如果为False,则结束循环。下面是简单的例子:
演示如何使用 while 循环来计算数字1到10的总和:
i = 1
total = 0
while i <= 10:
total += i
i += 1
print(total)
在上面的代码中,使用 while 循环结构计算数字1到10的总和。在循环体中,使用变量 total 来保存结果,变量 i 表示当前计算到的数字。每次循环,将 i 加入到 total 中,并将 i 自增1。当 i 大于10时,循环结束。
网上看到了骆昊大神的案例:
1、猜数字游戏的规则是:计算机出一个1到100之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息(大一点、小一点或猜对了),如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。
"""
猜数字游戏
Version: 0.1
Author: 骆昊
"""
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('你的智商余额明显不足')
上面的代码中使用了break关键字来提前终止循环,需要注意的是break只能终止它所在的那个循环,这一点在使用嵌套的循环结构需要引起注意。除了break之外,还有另一个关键字是continue,它可以用来放弃本次循环后续的代码直接让循环进入下一轮。
和分支结构一样,循环结构也是可以嵌套的,也就是说在循环中还可以构造循环结构。下面的例子演示了如何通过嵌套的循环来输出一个九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print('%d*%d=%d' % (i, j, i * j), end='\t')
print()
打印三角形图案
row = int(input('请输入行数: '))
for i in range(row):
for _ in range(i + 1):
print('*', end='')
print()
for i in range(row):
for j in range(row):
if j < row - i - 1:
print(' ', end='')
else:
print('*', end='')
print()
for i in range(row):
for _ in range(row - i - 1):
print(' ', end='')
for _ in range(2 * i + 1):
print('*', end='')
print()