目录
❤ while循环
1. 语法格式
2. while循环三要素
3. 死循环
❤ for循环
1. 语法格式
2. 字典利用 items 内置函数进行 for 循环
❤ range()函数
1. 语法格式
❤ breck() - 跳出整个循环
1. 语法格式:
❤ continue() - 跳出当前循环
1. 语法格式
❤ 各种推导式(列表推导式、字典推导式、集合推导式)
1. 列表推导式
2. 字典推导式
3. 集合推导式
❤ 双重for循环
九九乘法表
如何使用一行代码实现九九乘法表
python从小白到总裁完整教程目录:
根据条件或者次数,反复执行某段代码(循环体语句),主要包括2种格式:for循环和while循环
❤ while循环
1. 语法格式
while 条件:
循环体(语句段)
格式说明:如果条件为真(正确),执行循环体,如果条件为假(错误),结束循环
2. while循环三要素
- 循环变量初值
- 循环条件
- 循环变量增值
i = 1 # 循环变量初值
while i < 5: # 循环条件
print('HelloWorld')
i = i + 1 # 循环变量增值 变量名 = 变量值循环过程:
i = 1 1 < 5 True HelloWorld i = 1 + 1 i = 2 2 < 5 True HelloWorld i = 2 + 1 i = 3 3 < 5 True HelloWorld i = 3 + 1 i = 4 4 < 5 True HelloWorld i = 4 + 1 i = 5 5 < 5 False
i = 1
while i <= 5:
name = input('请输入您的姓名:')
i = i + 1输出:
请输入您的姓名:a
请输入您的姓名:c
请输入您的姓名:f
请输入您的姓名:g
请输入您的姓名:g
3. 死循环
一直为真:
while True:
print('HelloWorld')true条件:
while 1 == 1:
print('电脑被病毒入侵,准备关机98765...')案列:
使用while循环,循环输出列表中的数据
# 定义列表并输出
list01 = [101, 'lucy', 20, 90.5]
# 0 1 2 3 4 5
# 获取列表中元素个数
len = len(list01)
print('list01列表中元素个数:', len)
print('list01列表中的数据:', list01)
print('list01列表中的姓名:', list01[1])
i = 0 # 循环变量初值
while i < len:
print(list01[i])
i = i + 1输出:
list01列表中元素个数: 4
list01列表中的数据: [101, 'lucy', 20, 90.5]
list01列表中的姓名: lucy
101
lucy
20
90.5
练习:
获取键盘输入的数据,赋值给变量str01,通过while循环,
循环输出str01中的字符
str01 = input('请输入您的数据:')
print('您输入的数据是:%s' % str01)
print('字符串中的某个字符:', str01[1])
len = len(str01)
print(f'字符串的长度是:{len}')
i = 0
while i < len:
print('str01中字符分别是:',str01[i])
i = i + 1输出:
请输入您的数据:python
您输入的数据是:python
字符串中的某个字符: y
字符串的长度是:6
str01中字符分别是: p
str01中字符分别是: y
str01中字符分别是: t
str01中字符分别是: h
str01中字符分别是: o
str01中字符分别是: n
❤ for循环
for循环结构,通过循环一个可迭代对象(高级数据类型),来,实现循环。
1. 语法格式
for 循环变量 in 可迭代对象:
循环体
格式说明:每次循环,循环变量都会的得到,可迭代对象中的一个值,然后执行循环体,当可迭代对象的值,全部取完时,循环自动结束。
可循环的高级类型: str list tuple dict set .....
str01 = 'ABCDEFG'
for s in str01:
print(s)输出:
1、s = A HelloWorld 2、s = B HelloWorld 3、s = C HelloWorld .... HelloWorld 6、s = F HelloWorld 7、s = G HelloWorld
案列:
list01 = [101, 'rose', 90.5, False]
for k in list01:
print(k)输出:
101
rose
90.5
False
案列:
cases = [
['login_01', 'admin', '123456', True],
['login_02', 'admin', '', False],
['login_03', '', '123456', False]
]
for case in cases:
case_id, uname, passwd, result = case
print(uname)输出:
admin
admin
练习:
定义一个列表list01,计算每个元素的平方,使用for循环,输出结果
注释为前面学的知识
list01 = [9, 7, 5, 3, 1]
for v in list01:
# print(v**2)
# print(v*v)
# print(v, '*', v, '=', v*v)
# print('%d*%d=%d' % (v, v, v*v))
print(f'{v}*{v}={v*v}')输出:
9*9=81
7*7=49
5*5=25
3*3=9
1*1=1
练习:
定义一个2维列表,存储用户信息(user_info),获取键盘输入的用户名和密码,存储到user_info列表中,使用for循环进行循环输入用户信息,并输出结果
user_info = [] # 存储用户信息
for k in range(1000000):
username = input('请输入用户名:')
passwd = input('请输入密码:')
# 一般情况下,用户名和密码是一对,所以采用2维列表存储
info = [username, passwd]
print('info', info) # ['rose', '123']
user_info.append(info)
print('user_info', user_info)输出:
请输入用户名:rose
请输入密码:123
info ['rose', '123']
user_info [['rose', '123']]
请输入用户名: ......
2. 字典利用 items 内置函数进行 for 循环
items() 内置函数的功能:将字典转成伪列表,每个 key 、 value 转成元组。
items() 内置函数的用法:示例如下
dict01 = {'id':101, 'name':'rose', 'age':20}
# dict01.items() 获取字典中全部的键值
for k, v in dict01.items():
print(k, v)
# dict01.values() 获取字典中全部的值
for v1 in dict01.values():
print(v1)id 101
name rose
age 20
101
rose
20
❤ range()函数
range()函数,可以生成一个整数列表
1. 语法格式
range(开始值,结束值,步长)
参数说明:
开始值:
开始值就是,列表最开始的值,默认值是0,开始值可以省略
结束值:
结束值就是,列表最后的值,生成的最大值是(结束值-1),结束值不可以省略
步长:
步长就是每次增加的值,默认值是1,可以省略
for k1 in range(10):
# 开始值-0 结束值-10 步长-1
print(k1)
# 0 1 2 3 4 5 6 7 8 9for k2 in range(2, 10):
# 开始值-2 结束值-10 步长-1
print(k2)
# 2 3 4 5 6 7 8 9for k3 in range(1, 10, 2):
# 开始值-1 结束值-10 步长-2
print(k3)
# 1 3 5 7 9练习:
输出1--100内的所有整数
for i in range(1,101):
print(i)输出1--100内的所有奇数
for i in range(1,101,2):
print(i)输出1--100内的所有偶数
for i in range(2,101,2):
print(i)练习:
使用for循环和range()函数,输出三角形
* *** ***** ******* *********
s1 = '*'
print(s1 * 1)
print(s1 * 3)
print(s1 * 5)
print(s1 * 7)来试试输出这个:
* *** ***** ******* *********
分析:
* 第1行 打4个空格 1个星星 *** 第2行 打3个空格 3个星星 ***** 第3行 打2个空格 5个星星 ******* 第4行 打1个空格 7个星星 ********* 第5行 打0个空格 9个星星
for n in range(1,6):
print((5-n) * ' ' + (2*n-1) * '*')
# 输出空格 输出*❤ breck() - 跳出整个循环
break语句用于退出循环(while、for),可以理解为:提前结束循环,一般和if语句一起使用(建议使用for循环)。
1. 语法格式:
while 条件:
循环体
if 条件:
break
for 循环变量 in 迭代对象:
循环体
if 条件:
break
案列:
使用while循环,循环输出1--10内的整数,当数值是7时,退出循环
i = 1
while i <= 10:
print(i)
i = i + 1
if i == 7:
break输出:
1
2
3
4
5
6
案列:
使用for循环,循环输出1--100内的整数相加之和
分析:
sum k1 sum = 0 k1 = 1 sum = 0 + 1 print(1) sum = 1 k1 = 2 sum = 1 + 2 print(3) sum = 3 k1 = 3 sum = 3 + 3 print(6) sum = 6 k1 = 4 sum = 6 + 4 print(10) ....
# 1+2+3+4+5+6+7+8+9+10=?
sum = 0 # 存储结果
for k1 in range(1, 101):
sum = sum + k1
# 按照某种规则,数值累加之和
print(sum)
if sum > 1024:
break练习:
使用while循环,循环输出跑的圈数,当跑到第10圈时,晕倒,退出循环 一共100圈
i = 1
while i <= 100:
print('跑第', i, '圈')
i = i + 1
if i == 10:
print('晕倒...')
break输出:
跑第 1 圈
跑第 2 圈
......
跑第 9 圈
晕倒...
❤ continue() - 跳出当前循环
continue语句,用于退出循环(while、for),可以理解为:结束当前循环,继续下一次循环(跳过循环),一般和if语句一起使用。
1. 语法格式
while 条件:
循环体
if 条件:
continue
for 循环变量 in 迭代对象:
循环体
if 条件:
continue
案列:
使用while循环,循环输出1-10内的整数,不将数字4输出
i = 0
while i < 10:
i = i + 1
if i == 4:
continue
print(i)练习:
京城举办吃包子大赛,各地大胃王,进京参赛,共计1000个包子,吃到444个的时候发现虫子(不要),先吃完获胜
print('->京城吃包子大赛<-')
i = 0
while i < 1000:
i = i + 1
if i == 444:
print('发现半个虫子...扔掉')
continue
print(f'大胃王吃第{i}个包子')
# for k1 in range(1,1001):
# if k1 == 444:
# print('发现半个虫子...扔掉')
# continue
# print(f'大胃王吃第{k1}个包子')
print('->大胃王获胜win!<-')❤ 各种推导式(列表推导式、字典推导式、集合推导式)
1. 列表推导式
格式:
variable = [out_exp_res for out_exp in input_list if out_exp == 2]
说明:
out_exp_res: 列表生成元素表达式,可以是有返回值的函数。 for out_exp in input_list: 迭代input_list将out_exp传入out_exp_res表达式中。 if out_exp == 2: 根据条件过滤哪些值可以。
multiples = [i for i in range(30) if i % 3 is 0]
print(multiples)
# Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]扩展:
将俩表推导式的[]改成()即可得到生成器。
multiples = (i for i in range(30) if i % 3 is 0)
print(type(multiples))
# Output: <type 'generator'>2. 字典推导式
字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。
mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
mcase_frequency = {
k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0)
for k in mcase.keys()
if k.lower() in ['a','b']
}
print mcase_frequency
# Output: {'a': 17, 'b': 34}3. 集合推导式
它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。
squared = {x**2 for x in [1, 1, 2]}
print(squared)
# Output: set([1, 4])❤ 双重for循环
九九乘法表
# for 循环 实现九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print('{} * {} = {}'.format(i, j, i * j), end=' ')
print('')输出:
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
# while 循环 实现九九乘法表
i = 0
j = 0
while i < 9:
i += 1
while j < 9:
j += 1
print('{} * {} = {}'.format(j, i, i * j), end=' ')
if i == j:
j = 0
print('')
break输出是一样的
如何使用一行代码实现九九乘法表
print('\n'.join([' '.join(['{} * {} = {} '.format(item_1, item_2, item_1 * item_2) for item_2 in range(1, 10) if item_2 <= item_1]) for item_1 in range(1, 10)]))
# 利用了 列表推导式 及 列表转字符串
# 但使用这种方式的阅读性极差, 项目中绝不能使用
















