day05回顾:
字符串:
方法 method
S.replace(old,new[,count])
S.center(sub,....)
字符串的格式化表达式
格式化字符串 % (参数值1, 参数值2, ...)
字符串:
方法 method
S.replace(old,new[,count])
S.center(sub,....)
字符串的格式化表达式
格式化字符串 % (参数值1, 参数值2, ...)
"%s%d%f"
% - + 0 长度.精度 f
字符串存储的是 UNICODE 编码值
UNICODE的前128和 ASCII 重叠
% - + 0 长度.精度 f
字符串存储的是 UNICODE 编码值
UNICODE的前128和 ASCII 重叠
while 语句:
while 真值表达式:
语句块1...
else:
语句块2...
while 嵌套:
break 语句
终止当前循环
终止当前循环
死循环
while True:
if xxx:
break
while True:
if xxx:
break
day06笔记:
for 语句(循环语句)
作用:
用来遍历可迭代对象的数据元素
语法:
for 变量列表 in 可迭代对象:
语句块1 ...
else:
语句块2 ...
语法说明:
1. 可迭代对象每次提供一个元素依次赋值给变量列表中的变量,赋值完毕后执行语句块1,重复执行此步骤
2. 当可迭代对象不能够提供数据时,执行else子句部分的语句块2. 然后退出循环
3. else子句部分可以省略(同while语句类似)
4. 当在语句内部用break终止循环时,else子句部分语句块2不会执行.
for 语句(循环语句)
作用:
用来遍历可迭代对象的数据元素
语法:
for 变量列表 in 可迭代对象:
语句块1 ...
else:
语句块2 ...
语法说明:
1. 可迭代对象每次提供一个元素依次赋值给变量列表中的变量,赋值完毕后执行语句块1,重复执行此步骤
2. 当可迭代对象不能够提供数据时,执行else子句部分的语句块2. 然后退出循环
3. else子句部分可以省略(同while语句类似)
4. 当在语句内部用break终止循环时,else子句部分语句块2不会执行.
可迭代对象是指能依次获取数据元素的对象
示例见: for.py
练习:
写程序,任意输入一行字符串,打印这个符串内有多少个空格' '(要求用for语句,不能用S.count方法)
写程序,任意输入一行字符串,打印这个符串内有多少个空格' '(要求用for语句,不能用S.count方法)
思考:
上题能否用while语句实现?
上题能否用while语句实现?
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, 1) # 空
见: range.py
请问此程序的打印结果是什么?说明什么问题?
i = 10
for x in range(1, i):
print(x) # 请问打印几行?
i -= 2
i = 10
for x in range(1, i):
print(x) # 请问打印几行?
i -= 2
for 语句嵌套:
示意:
for x in "ABC":
for y in "123":
print(x + y)
示意:
for x in "ABC":
for y in "123":
print(x + y)
for x in "ABC":
for y in "123":
for z in "abc":
print(x + y + z)
for y in "123":
for z in "abc":
print(x + y + z)
练习:
用 for 循环嵌套打印如下矩形:
(输入一个数n(10以内) 代表矩形的宽度和高度)
如:
请输入: 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
用 for 循环嵌套打印如下矩形:
(输入一个数n(10以内) 代表矩形的宽度和高度)
如:
请输入: 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. 在while语句中执行 continue语句,将直接跳转到while语句的真值表达式处重新判断循环条件
2. 在for语句中执行continue语句,将会从可迭代对象中取下一个元素,绑定变量后再次进行循环
示例见:
continue_for.py
问题:
输入一个开始的整数用begin绑定
输入一个结束的整数用end绑定
打印 begin ~ end之间所有的奇数
begin = int(input("请输入开始的整数: "))
end = int(input("请输入结束的整数: "))
for i in range(begin, end):
if i % 2 == 0:
continue
print(i)
作用:
用于循环语句(while,for语句)中,不再执行本次循环内continue之后的语句,重新开始一次新的循环
说明:
1. 在while语句中执行 continue语句,将直接跳转到while语句的真值表达式处重新判断循环条件
2. 在for语句中执行continue语句,将会从可迭代对象中取下一个元素,绑定变量后再次进行循环
示例见:
continue_for.py
问题:
输入一个开始的整数用begin绑定
输入一个结束的整数用end绑定
打印 begin ~ end之间所有的奇数
begin = int(input("请输入开始的整数: "))
end = int(input("请输入结束的整数: "))
for i in range(begin, end):
if i % 2 == 0:
continue
print(i)
练习:
写一个程序,求1 ~ 100之间所有不能被 5,7,11整除的数的和
写一个程序,求1 ~ 100之间所有不能被 5,7,11整除的数的和
循环语句:
while 语句
for 语句:
字符串
range函数
break 语句
continue 语句
while 语句
for 语句:
字符串
range函数
break 语句
continue 语句
列表 list
列表的定义:
列表是由一系列元素组成的,元素与元素之间可能没有任何的关联关系,但他们之间有先后顺序关系
列表是一种容器
列表是一种序列
列表是可以被改变的序列
列表的定义:
列表是由一系列元素组成的,元素与元素之间可能没有任何的关联关系,但他们之间有先后顺序关系
列表是一种容器
列表是一种序列
列表是可以被改变的序列
python3 中的序列:
字符串 str
列表 list
元组 tuple
字节串 bytes
字节数组 bytearray
字符串 str
列表 list
元组 tuple
字节串 bytes
字节数组 bytearray
创建空列表的字面值:
L = [] # L 绑定空列表
L = [] # L 绑定空列表
创建非空列表的字面值
L = [1, 2, 3, 4]
L = ['Beijing', 'shanghai', 'shenzhen']
L = [1, 'two', 3.3, '四']
L = [1, 2, [3.1, 3.2, 3.3], 4]
L = [1, 2, 3, 4]
L = ['Beijing', 'shanghai', 'shenzhen']
L = [1, 'two', 3.3, '四']
L = [1, 2, [3.1, 3.2, 3.3], 4]
列表的构造函数 list
list() # 生成一个空的列表 等同于 []
list(iterable) # 用可迭代对象创建一个列表
list() # 生成一个空的列表 等同于 []
list(iterable) # 用可迭代对象创建一个列表
示例:
>>> list()
[]
>>> list("hello")
['h', 'e', 'l', 'l', 'o']
>>> list(range(1, 10, 2))
[1, 3, 5, 7, 9]
>>> list()
[]
>>> list("hello")
['h', 'e', 'l', 'l', 'o']
>>> list(range(1, 10, 2))
[1, 3, 5, 7, 9]
列表的运算:
运算符:
+ += * *=
运算符:
+ += * *=
+ 用于拼接列表
x = [1,2,3]
y = [4,5,6,7]
z = x + y # z = [1, 2, 3, 4, 5, 6, 7]
+= 用原列表与右侧列表拼接,并用变量绑定新列表
x = [1,2,3]
x += [4,5,6] # x = [1,2,3,4,5,6]
x = [1,2,3]
y = [4,5,6,7]
z = x + y # z = [1, 2, 3, 4, 5, 6, 7]
+= 用原列表与右侧列表拼接,并用变量绑定新列表
x = [1,2,3]
x += [4,5,6] # x = [1,2,3,4,5,6]
* 生成重复的列表
x = [1,2] * 3 # x = [1,2,1,2,1,2]
y = 3 * [5,6] # y = [5,6,5,6,5,6]
x = [1,2] * 3 # x = [1,2,1,2,1,2]
y = 3 * [5,6] # y = [5,6,5,6,5,6]
*= 生成重复的列表,并给原变量赋值
x = [3,4]
x *= 2 # x = [3,4,3,4]
y = 3
y *= [7,8] # y = [7,8,7,8,7,8]
x = [3,4]
x *= 2 # x = [3,4,3,4]
y = 3
y *= [7,8] # y = [7,8,7,8,7,8]
列表的比较运算:
运算符:
< <= > >= == !=
示例:
[1,2,3] < [1,2,4] # True
[1,3] > [1,2,4] # True
[5] < [5, 0] # True
["ABC", "123"] > ['abc', '456'] # False
[1, "two"] > ["two", 1] # TypeError
[1, 2] < [3.3, 4] # True
[1] < ['2'] # TypeError
运算符:
< <= > >= == !=
示例:
[1,2,3] < [1,2,4] # True
[1,3] > [1,2,4] # True
[5] < [5, 0] # True
["ABC", "123"] > ['abc', '456'] # False
[1, "two"] > ["two", 1] # TypeError
[1, 2] < [3.3, 4] # True
[1] < ['2'] # TypeError
练习:
用循环输入文字,将每次输入的文字保存在一个列表L中,当输入空行时结束输入.并打印列表 L 的内容
用循环输入文字,将每次输入的文字保存在一个列表L中,当输入空行时结束输入.并打印列表 L 的内容
练习:
1.
输入一个Unicode的开始值 用变量begin绑定
输入一个.........结束值 用变量stop绑定
打印开始值至结束值之间的所有对应的文字,生成字符串并打印
请输入开始值: 20013
请输入结束值: 20050
打印:
中丮丯...........乑乒
2. 输入一个整数(代表树干的高度)
打印如下一棵圣诞树
输入:2
*
***
*
*
输入:3
*
***
*****
*
*
*
3. (改进上述代码)输入一个整数(代表树干的高度)
打印如下一棵圣诞树
输入:3
1
222
33333
*
*
*
4. 输入一个正整数,打印这个数是否是素数(prime)
提示:
素数也叫质数,是只能被1和自身整数的整数
如:
请输入: 5
打印:
5 是素数
请输入: 6
打印:
6 不是素数
打印:
6 不是素数
素数: 2 3 5 7 11 13 17 19 23 ...