循环结构for循环
for循环
- 比如当我们想要循环打印出某一列表的数据值时 用while循环时:
l1 = [1, 2, 3, 4, 5]
num = 0
while num < 5:
print(l1[num])
num += 1
用for循环时:
l1 = [1, 2, 3, 4, 5]
for i in l1:
print(i)
- 我们可以看到我们减少了代码的量但是表现出来的结果却是一致的,所以这就是for循环某些方面比while好用点语法结构更加简单,更擅长循环取值。
语法结构
for 变量名 in 可迭代的对象: #字典(dict) 元组(tuple) 列表(list) 字符串(str)
for循环的循环体代码
当for循环不同类型数据值类型是怎么样的呢:
- 循环列表时
l1 = ['jason', 'kevin', 'tony', 'oscar']
for i in l1:
print(i)
输出结果:
- 循环字典时
user_dict = {'username': 'jason', 'pwd': 123, 'age': 18}
for i in user_dict:
print(i)
输出结果:
可以看到每次取到的都是字典的k值。
- 循环字符串时
desc = 'hello baby! 你会感谢少时奋斗的自己'
for i in desc:
print(i)
输出结果:
循环字符串时,默认每次取单个字符
- 循环元组时
t = (11, 22, 33, 44)
for i in t:
print(i)
输出结果:
循环元组时与列表一致,默认是单个数据值。
for的重要知识
- 1.for 循环能实现的while循环都可以实现
range方法
- 1.括号内只有一个数字时从0开始到减一结束
for i in range(5):
print(i)
- 2.括号内有两个数字时从第一个数字开始到最后一个数字减一结束
for i in range(3, 10):
print(i)
- 3.括号内有三个数字时,第三个数字代表的是数列的公差,也从第一个数字开始到第二个数字结束
for i in range(0, 100, 25):
print(i)
range方法爬虫
网络爬虫:python代码模拟网络请求获取数据。
1.提前定义好一个模板
base_url = 'https://www.cnblogs.com/#p%s'
for i in range(1, 101):
print(base_url % i)
for与break
for i in range(1,11):
if i == 7:
break
print(i)
- 与while相同的,是break也能够结束所在的那一层for循环
for与continue
for i in range(1, 11):
if i == 7:
continue
print(i)
- 与while相同的,是continue也能够结束所在的那一次for循环,直接开始下一次
for与else
for i in range(10):
print(i)
if i == 5:
break
else:
print('嘿嘿嘿 猜猜我什么时候执行')
- 与while相同的,else配合for一起使用,当for循环没有被强制结束的情况下。循环体结束之后运行else子代码
昨日练习更正
*1. v3 = 0 and 2 and 1
v4 = 0 and 2 or 1
v5 = 0 and 2 or 1 or 4
*4.编写猜年龄的游戏
用户有三次猜测的机会 如果用完则提示用户是否继续尝试
用户输入y则继续给三次机会 如果用户输入q则直接结束程序
real_age = 24 1.先定义一个正确的年龄
count = 1 4.定义一个计数器
while True: 3.先加个循环 无限制玩起来
if count == 4: 5.判断当前是第几次猜
choice = input('你个菜鸡 已经错了三次 要不要再试试(y/n)>>>:')
if choice == 'y':
count = 1
else:
print('菜鸡 赶紧滚!!!')
break
guess_age = input('guess_age>>>:') 2.获取用户猜测的年龄
guess_age = int(guess_age)
if guess_age > real_age:
print('去你妹的 我有那么大吗?')
count += 1
elif guess_age < real_age:
print('你真讨厌 人家成年了!!!')
count += 1
else:
print('好耶 猜对了 你真棒!!!')
break
小练习
1.计算1-100所有的数之和 代码:
num = 0
for i in range(1, 101):
num += i
print(num)
结果:
2.判断列表中数字2出现的次数
l1 = [11,2,3,2,2,1,2,1,2,3,2,3,2,3,4,3,2,3,2,2,2,2,3,2]
3.编写代码自动生成所有页网址
https://movie.douban.com/top250
4.编写代码打印出下列图形(ps:for循环嵌套)
*****
*****
*****
*****