for 语句:
作用:
用来遍历可迭代对象的数据元素
可迭代对象:
字符串 str
(以下后面会讲))
列表 list
元组 tuple
字典 dict
集合 set
...
语法:
for 变量列表 in 可迭代对象:
语句块1 (重复执行多次)
else:
语句块2 (可迭代对象不再提供数据时)
说明:
else 子句可以省去
当在循环内部用break终止循环时,else子句部分的语句不会执行
示例:
s='ABCDE'
for ch in s:
print("ch---->",ch)
练习:
任意输入一段字符串
1)计算这个字符串的'a'这个字符的个数,并打印出来
2)计算出空格的个数,并打印出来
(要求:用for语句实现)
思考:用while语句能否实现?
s=input('输入字符串')
n=0
m=0
for ch in s:
if ch=='a':
n+=1
if ch==' ':
m+=1
print('a的个数:',n)
print('空格的个数:',m)
range 函数
作用:
用来创建一个生成一系列整数的可迭代对象(整数序列生成器)
函数 说明
range(stop) 用来生成 0~stop 之间内的整数,直到stop为止(不包含stop)
range(start,stop[,step]) 用来生成
start~stop之间的整数,直到stop为止(不包含stop),每个整数之间隔step,且step可以说负数
说明:
此对象可用于for语句来进行迭代取出其中的元素
示例:
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
练习:
1用for语句打印1~20的整数,打印在一行内
z=range(1,21)
for x in z:
print(x,end=' ')
2用for语句打印1~20的整数,每行打印5个,打印4行
z=range(1,21)
for x in z:
print(x,end=' ')
if x%5==0:
print()
3 求100以内有哪些数与自身+1的乘积再对11求余结果等于8?打印出来结果
z=range(100)
for x in z:
if x*(x+1)%11==8:
print(x,end=' ')
print()
4 输入一段字符串,判断输入的字符串中有几个中文字符:
注:中文字符的编码值一定大于127
z=input('输入字符')
print()
i=0
for x in z:
if ord(x)>127:
i+=1
print(x,end=' ')
print(i)
for 语句的注意事项
for 语句range调用顺序:
示意:
请问此程序打印的结果是什么,为什么?
x= 1 i= 6
x= 2 i= 6
x= 3 i= 6
x= 4 i= 6
x= 5 i= 6
---------------------------
i=6
for x in range(1,i)
print('x=',x,'i=',i) range 函数优先调用,且只调用一次
2 for语句变量列表里的变量可能不会被创建
for x in range(4,0):
print(x)
else:
print('循环结束后x的值是',x) #报错 range无法创建数值
3 for 语句中用break语句中断执行时,else子句不会执行
示例:
for x in range(10)
print(x)
if x==3:
break
else:
print('结束')
for 语句嵌套
示例:
for x in 'ABC'
for y in '123'
print(x+y)
练习:
打印26个大英文字母和26个小英文字母
chr(i) #数字转为字符
'A' 65
'a' 97
continue语句:
如何让程序不再向下执行本次循环,重新开始一次新的循环
作用:
用于循环语句(foe while)语句中,不再执行本次循环内continue之后的语句,重新开始新的循环
说明:
1在for 语句中执行continue语句,将会从可迭代对象中取下一个数据,绑定变量后开始一次新的循环
2在while语句中。执行continue语句,将会直接跳转到while语句真值表达式外,重新判断循环条件
语法:
continue
示例:跳过奇数,打印偶数(10以内)
for x in range(10):
if x%2==1:
continue
print(x)
练习:1输入一个整数begin,结束end
打印begin到end之间的全部奇数
2求1~100之间所有不能被2,3,5,7整除的数
1)打印这些数
2)打印这些数的和
用while语句打印10以内的偶数
循环小结:
while 语句
for 语句
字符串str
range() 函数返回的对象
break 语句
continue 语句
列表: list
问题:
列表的定义:
列表是一种容器
列表是可以改变的序列
列表是由一系列特定元素组成的,元素与元素之间可能没有任何的关联关系,但他们之间有
先后顺序关系
python3 中序列的类型: sequence
字符串 str
列表 list
------以下后面会讲----
元组 tuple
字节串 bytes
字符数组 bytearray
创建空列表的字面值:
[] # 创建空列表的表达式
创建非空列表的字面值:
L=[1,2,3,4]
L=['北京','上海','深圳']
L=[1,'Two',3.14,'四']
L=[1,2,[3.1,3.2],4]
列表的构造(创建)函数 list
list() #生成一个空的列表 等同于[]
list(iterable) 用可迭代对象创建一个列表
示例:
L=list() #L绑定空列表
L=list('hello') #L绑定['h','e','l','l','o']
L=list(range(7,10)) #L绑定[7,8,9]
列表的运算:
算术运算:
+ += * *=
+ 用于拼接列表
lx=[1,2,3]
ly=[4,5,6]
lz=lx+ly lz=[1,2,3,4,5,6]
+= 用原列表与右侧列表拼接,再用变量绑定列表
语法:
L+=可迭代对象
示例:
lx=[1,2,3]
l+=[4,5,6]
lx=[1,2,3,4,5,6]
* 用于生成重复的列表
x=[1,2]*3 # x=[1,2,1,2,1,2]
x*=3 # x=[1,2,1,2,1,2]
列表的比较运算:
运算符:
< <= > >= == !=
说明:
列表的比较规则与字符串的比较规则相同
列表要求每两个元素能依次进行比较,否则会出现类型错误
示例:
x=[1,2,3]
y=[1,3,2]
x<y # True
练习:
1.写一个程序,让用户输入很多个正整数,当输入负数时结束输入
1)将用户输入的数存在列表L中,打印列表
如: 输入1,2,3,4
打印[1,2,3,4]
L = []
while True:
x=int(input('输入正整数')
if x<0:
break
L+=[x]
print(L)
列表的in/not in 运算符:
判断一个值是否在列表中,如果存在返回True,否则返回False
说明:同字符串的in/not in 类似,但只能判断单个元素是否存在列表中
示例:
x=[1,'Two',3.14,"Four"]
3.14 in x # True
"3" in x # False
4 not in x # True
列表的索引操作:
语法:
列表[整数表达式]
用法:
等同于字符串的索引
索引分为正向索引和反向索引,规则与字符串规则完全相同
示例:
x=[1,'二',3,'Four']
print(x[0]) #1
print(x[1]) #二
print(x[-1]) #Four
列表的索引赋值操作:
列表是可变的序列,可以通过索引赋值改变列表中的元素
语法:
列表[整数表达式]=表达式
示例:
x=[1,'二',3,'Four']
x[1]=2 #将列表中的第二个元素改为2
x[-1]=4
print(x) #[1,2,3,4]
列表的切片:
语法:
列表[(开始索引b):(结束索引e):(步长s)]
说明:列表切片取值返回一个列表,规则等同于字符串规则
示例:
x=[0,1,2,3,4,5,6,7,8]
y=x[1:9:2] #奇数
切片的赋值操作:
作用:
可以改变原列表的排序,可以插入和修改数据
可以用切片改变列表对应的元素值
语法:
列表[切片]=可迭代对象
注:赋值运算符的右侧必须是一个可迭代对象
L = [2.2,3.3,4,4]
L[0:1]=[1,2] # L=[1,2,3.3,4.4]
L[2:]=[3,4,5] # L=[1,2,3,4,5]
L[::]=[30,40] #L=[30,40]
L=[1,2,3,4,5,6,7,8]
L[2:4]=[] # L=[1,2,6,7,8]
切片注意事项:
对于步长不等于1的切片赋值,赋值运算符的右侧的可迭代对象提供的元素个数一定要
等于切片切出的段数
如:
l=[1L = [2.2,3.3,4,4]
L[0:1]=[1,2]
,2,3,4,5]
l[::2]="ABC" True
l[::2]="ABC" False
练习:
1.写程序输入一个三角形的宽和高,打印相应的三角形
如:
输入3:
1) *
**
***
i=int(input('输入宽的数值'))
j=1
while j<=i:
print('*'*j)
j+=1
2) *
**
***
3) ***
**
*
4)***
**
*
2写程序,任意输入一个整数,判断这个数是否为素数
素数(质数)只能被1和自身整除的正整数
提示:用排除法:当判断x为素数时,只要让x分别除以2,3,4,5...x-1,只要有任何一个数能被整除
说明x不是素数
x=int(input('请输入一个整数:'))
for i in range(2,x):
if x%i==0:
print('这不是素数')
break
else:
print('这是素数')
3编写程序求下列多项式的值
Sn=1/1-1/3+1/5-1/7+...
1)求10000000个这样的分数相加的和是多少?
2)将上一步的和乘以4打印出来,是多少?
a=int(input('请输入数字'))
i=1
s=0
j=0
while j<=a-1:
s+=1/i*(-1)**(j)
i+=2
j+=1
print('输入的和是',s)
print('乘以4的积是:',4*s)
4算出100~999之间的水仙花数
水仙花数是指百位的三次方+十位的3次方+个位的三次方等于原数的整数
如:
153=1*3+5*3+3*3
370...
python基础-day06
最新推荐文章于 2021-02-21 00:39:18 发布
