day05笔记:
今天内容
1、for语句
2、continue语句
3、列表
1、for语句
作用:
用来遍历可迭代对象的数据元素
可迭代对象是指能依次获取数据元素 的对象
可迭代对象包括:
字符串str
----以下后再才讲----
列表 list
元组 tupie
字典 dict
集合 set
range 函数返回的对象等
语法:
for 变量列表in可迭代对象:
语句块1
else
语句块2
s = 'ABCDE'
for ch in s:
print('ch -->',ch)
ch --> A
ch --> B
ch --> C
ch --> D
ch --> E
s = 'ABCDE'
for ch in s:
print('ch -->',ch)
else:
print('可迭代对象已经不能提供数据了!
print ('程序结束’)
练习:
1.任意输入一个字符串:
1)计算您输入的空格的个数,并打印出来
2)计算您输入的‘a’字符的个数,并打印出来(要求用for语句实现)
思考:
用whine 语句能否实现上述功能?
解:
s = input('请输入一行字符串:')
count_blank = 0
for char in s:
if char == ' ':
count_blank += 1
else:
print('空格的个数是:',count_blank)
count_a = 0
for char in s:
if char == 'a':
count_a += 1
else:
print('a的个数是:',count_a)
2、renge 函数
格式:
见:>>> 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.的示例:
for x in range (4):
print(x)
0,1,2,3
练习:
1.用for语句打印1~20,打印在一行内
2.用for语句打印1~20,每五个打印在一行
1.
#for x in range(1,(21)):
# print(x,end=' ')
#else:
# print()
2.
#for x in range(1, 20):
# print(x,end=' ')
# if x % 5 == 0:
#
# print()
#else:
# print()
1.求100以内在哪些数与自身+1的乘积对11求余的结果等于8
2.计算1+3+5+7+.....+97+99的和分别用for和while循环语句来实现
解1,for x in range(1,101):
if (x +1)*x % 11 == 8:
print(x)
2.
s = 0
for x in range(1,100,2):
s+=x
else:
print('用for语句求和的是:'s)
s = 0
x = 1
while x < 100:
s+=x
x+=2
else:
print('用while语句求和的是:',s)
3、for语句的注意事项:
#请问下面程序的打印结果是什么:
i = 6
for x in range(1,6):
print(‘x=’,x,‘i=’,i)
i -= 1 # <<<---- 注意此处
x= 1 i= 6
x= 2 i= 6
x= 3 i= 6
x= 4 i= 6
x= 5 i= 6
如下语句的执行结果是什么?为什么?
....缺
4、for语句的嵌套
示例:
for x in 'ABC'
for y in '123':
print(x+y)
A1
A2
A3
B1
B2
B3
C1
C2
C3
练习;
输入一个整数n,打印一个对应的正方形:
如:
请输入:5
#1
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
#2
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
解1
#bc = int(input('请输入正方形的边长:'))
#for line in range (bc):
#打印一行
# for i in range (1,bc+1):
# print (i,end= ' ')
# print() #换行
解2
#bc = int(input('请输入正方形的边长:'))
#for line in range (bc):
# #打印一行
# for i in range (line + 1,line + 1 + bc):
# print (i,end= ' ')
# print() #换行
5、coutinue 语句
用于循环语句中,(whine,for语句)中,不再执行本次循环coutinue之后的语句,重新开始一次新的循环
说明:
1.在for语句中执行continue语句,将会从可迭代对象中去下一个元素,绑定变量会后再次开始执行
2.在while语句中执行continue,将会之间跳转到while语句的真值表达式处重新判断循环条件
示例:
continue.py
#for x in range(5):
# if x == 3:
# continue
# print(x)
0
1
2
4
用continue语句跳过奇数打印偶数
#for x in range(20):
# if x % 2 == 1:
# continue
# print(x)
0
2
4
6
8
10
12
14
16
18
求1~100之间所有不能被5.7.11整除的数以及这些数的和
#s = 0
#for x in range(1,100):
# if x %5 != 0 and x %7 != 0 and x %11 != 0:
# print(x)
# s += x
#print('以上所以数的和是:',s)
循环语句总结:
while 语句
可以用于死循环
for 语句
用于可迭代对象的循环
break 语句:
用于终止当前循环
continue语句:
用于开始一次新的循环
6、列表 list
列表的定义:
列表是一种容器
列表是序列的一种
列表是可以被改变的序列
列表中由一系列特定元素组成的,元素与元素之间可以没有任 何的关联关系,但他们之间有先后顺序关系
创建空列表的字面值
L = [] # L 变量绑定空列表
创建非空列表的字面值
L = [1,2,3,4]
L = ['beijing',‘shanghai’,‘shenzhen’]
L =[1,‘Two,’3.14, ‘四’]
列表的构造(创建)函数 list
list () 生成一个空的列表,等同于[]
list (iterable) 用可迭代对象创建一个列表
示例:
L = list () # L绑定空列表
L = list (‘hello’) # L 绑定['h','e', 'l','l','o']
L = list (range(1,10,2)) #L (1,3,5,7,9)
列表的运算:
算术运算:
+ += * *=
+ 用于拼接列表
x = [1.2.3]
y = [4,5,6]
z = x + y [1.2.3.4.5.6]
+= 用原列表与左侧列表拼接,用变量绑定拼接后的列表
x = [1.2.3]
x += [4.5.6]
print(x)
*生成重复的列表
x = [1.2] * 3 # = [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"] # False
[1, 'Two']>['Two',1] # 出错了
列表的 in / not in 运算符
作用:
判断一个值是否存在于列表中,如果存在返回Ture,否则返回False
not in 的返回值与 in 运算符相反
示例:
2 in [1.2.3.4] # True
‘2’ in not 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)计算您共输入了多少个字符
#1
#a = (input('请输入第一行文字:'))
#a1 = (input('请输入第一行文字:'))
#a2 = (input('请输入第一行文字:'))
#L = [a,a1,a2]
#print(L)
#2
L = []
while True:
a = input('请输入文字:')
if not a:
break
L = L + [a]
#L = L + a存的是字符串分开的
print('L绑定的列表是:',L)
count = 0
for x in L:
count += 1
print('您输入的行数是:',count)