day05笔记:
今天内容:
for 语句
continue 语句
列表 list
for 语句
for语句(遍历 : 所有的事情走且只走一次 --从头到尾)
作用:
用来遍历可迭代对象的数据元素
可迭代对象是指能依次获取数据元素的对象
可迭代对象包括:
字符串str
----以下后再才讲----
列表 list
元组 tuple
字典 dict
集合 set
range函数返回的对象等
语法:
for 变量列表 in 可迭代对象:
语句块1
else:
语句块2
练习:
1. 任意输入一个字符串:
1) 计算您输入的空格的个数,并打印出来
2) 计算您输入的'a' 字符的个数,并打印出来
(要求用for语句实现)
思考:
用while语句能否实现上述功能?
range 函数
格式:
见: >>> help(range)
函数
range(stop)从零开始,每次生成一个整数后加1操作,直到stop为止(不包含stop)
range(start, stop[, step]) 从start开始,每次生成一个整数后移动step, 直到stop为止(不包含stop, 且step可以是负整数)
作用:
用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)
示例:
range(4) # 生成 0, 1, 2, 3
range(3, 6) # 生成 3, 4, 5
range(1, 10, 2) # 生成 1 3 5 7 9
range(5, 0, -2) # 生成 5, 3, 1
range(4, 0) # 生成空
练习:
1. 用for 语句打印 1 ~ 20, 打印在一行内
2. 用for 语句打印 1 ~ 20, 每5个打印在一行内
练习:
1. 求 100 以内在哪些数与 自身+1的乘积对11求余的结果等于8
2. 计算 1 + 3 + 5 + 7 + .... +97 + 99的和
分别用for 和 while 循环语句来实现
for 语句的注意事项:
# 请问下面程序的打印结果是什么:
i = 6
for x in range(1, i):
print('x =', x, 'i=', i)
i -= 1 # <<<---注意此处
结果:
x = 1 i= 6
x = 2 i= 5
x = 3 i= 4
x = 4 i= 3
x = 5 i= 2
如下语句的执行结果是什么?为什么?
for x in range(4, 0):
print(x)
print('x绑定', x) # <<<此处打印什么?
for 语句的嵌套
示例:
for x in "ABC":
for y in '123':
print(x + y)
思考:
for x in range(5):
for y in range(10):
print('hello') # <<请问打印多少次?
练习:
1. 输入一个整数n,打印一个对应的正方形:
如:
请输入: 5
打印:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
请输入: 3
打印:
1 2 3
1 2 3
1 2 3
2. 输入一个整数n,打印一个对应的正方形:
如:
请输入: 5
打印:
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
请输入: 3
打印:
1 2 3
2 3 4
3 4 5
问题
如何让程序不再向下执行,重新开始一次新的循环
continue 语句
用于循环语句(while,for语句)中,不再执行本次循环 continue之后的语句,重新开始一次新的循环
说明:
1. 在for 语句中执行continue语句,将会从可迭代对象中取下一个元素,绑定变量后再次开始执行
2. 在while语句中执行continue,将会直接跳转到 while语句的真值表达式处重新判断循环条件
示例见:
continue.py
continue2.py
continue_while.py
练习:
输入一个起始数用start绑定, 输入一个结束数用stop绑定
打印start 到 stop(不包含stop)内的所有的奇数
(用什么方法都可以)
练习:
2, 求 1 ~ 100 之间所有不能被 5, 7, 11 整除的数以及这些数的和
循环语句总结:
while 语句
可以用于死循环
for 语句
用于可迭代对象的循环
(字符串, range()返回的对象)
break 语句:
用于终止当前循环
continue 语句:
用于开始一次新的循环
列表 list
问题:
如何将计算机运算的数据临时存入一个地方,同时又方便添加,删除,修改等操作
列表的定义:
列表是一种容器
列表是序列的一种
列表是可以被改变的序列
列表中由一系列特定元素组成的,元素与元素之间可以没有任何的关联关系,但他们之间有先后顺序关系
创建空列表的字面值
L = [] # L变量绑定空列表
创建非空列表的字面值
L = [1, 2, 3, 4]
L = ['Beijing', 'Shanghai', 'Shenzhen']
L = [1, 'Two', 3.14, '四']
L = [1, 2, [3.1, 3.2, 3.3], 4]
列表的构造(创建)函数 list
list() 生成一个空的列表,等同于 []
list(iterable) 用可迭代对象创建一个列表
示例:
L = list() # L绑定空列表
L = list("hello") # L绑定['h', 'e', 'l', 'l', 'o']
L = list(range(1, 10, 2))
列表的运算:
算术运算:
+ += * *=
+ 用于拼接列表
x = [1, 2, 3]
y = [4, 5, 6]
z = x + y # z = [1,2,3,4,5,6]
+= 用原列表与左侧列表拼接,用变量绑定拼接后的列表
x = [1,2,3]
x += [4,5,6]
print(x)
* 生成重复的列表
x = [1, 2] * 3 # x = [1,2,1,2,1,2]
x *= y 等同于 x = x * y
列表的比较运算:
运算符:
< <= > >= == !=
比较的规则同字符串的规则相同
x = [1, 2, 3]
y = [1, 2, 4]
x != y # True
x <= y # True
y > x # True
["AB", 'abc', '123'] < ['AB', '123', 'abc']
[1, 'two'] > ['two', 1] # TypeError
列表的 in / not in 运算符
作用:
判断一个值是否存在于列表中。如果存在返回True, 否则返回False
not in 的返回值与 in 运算符相反
示例:
2 in [1, 2, 3, 4] # True
'2' in [1, 2, 3, 4] # False
列表是可迭代对象:
for x in [2, 3, 5, 7]:
print(x) # x绑定列表内的元素
练习:
1. 输入三行文字,将这三行文字保有存于列表L中,并打印
如:
请输入:abc<回车>
请输入:1234<回车>
请输入:你好<回车>
生成如下列表:
['abc', '1234', '你好']
print(L) # 打印
2. 输入任意行文字,存于列表L中,当不输入内容回车后退出输入,
1) 打印L列表中的内容
2) 计算您共输入的几行内容
3) 计算您共输入了多少个字符