回顾:
字符串
编码转换
ord(x)
chr(x)
整数转字符串的函数:
hex(i)
oct(i)
bin(i)
字符串的构造(创建)函数
str(x)
int(x)
bool(x)
float(x)
complex(x)
while语句
day06:
for 语句:
for 语句用来遍历(每个对象能够查看并只查看一遍)序列或可迭代对象的每一个元素
可迭代对象是指有多个数据组合在一起的对象
包括:
字符串 str
-------以后后边会学--------
列表 list
元祖 tuple
字典 dict
集合 set
固定集合 frozenset
生成器等
for 的语法
for 变量列表 in 可迭代对象或生成器:
语句1
.....
else:
语句2
.....
示例:
s = 'hello'
for ch in s:
print(ch)
else:
print('对象不能再提供数了,结束')
语法说明:
1.变量依次用可迭代对象的每次给出的元素依次赋值,然后执行语句
2.可迭代对象迭代完所有的元素后,执行else子句部分语句后退出循环
3.else子句部分可以省略(同while语句类似)
4. 语句1的执行次数与可迭代对象的元素个数有关
5.当在循环内部用break终止循环时,else子句部分语句不会执行
for 练习:
任意输入一段字符串:
计算出输入字符'a'的个数,并打印出个数
计算出空格的个数,并打印个数
(不能使用S.count方法)
思考:
用while语句能否实现上述功能
x = input('请输入一段字符:')
i = 0
space = 0
for y in x:
if y == 'a':
i += 1
elif y ==" ":
space += 1
print('输入的a的数量为:',i,'输入空格的数量:',space)
range()函数:
格式
rang(stop) 从零开始,每次生成一个整数后加一操作,直到stop为止(不包含stop)
range(start,stop[,step])从start开始,每次生成一个整数后移动step,直到stop为止(不包含stop,且stop可以是负数)
作用:
用来生成一个可迭代的是、整数序列生成器对象
示例:
range(4) #生成 0 1 2 3
range(-100)#生成空 因为是从0 开始
range(3,6) #3.4.5
range(1,10,2) #1 3 5 7 9
示例练习:
用for语句打印1-20,打印在1行内
for i in range(1,21):
if i == 20:
print(i)
else:
print(i,end= ' ')
练习:
1.输入一个字符串,从尾向头输出这个字符串的字符
如:
#python3 ....py
请输入:hello
o
l
l
e
h
思考:用while能不能实现?
s = input('请输入字符串:')
for i in range(len(s)-1,-1,-1):
print(s[i])
s = input('请输入字符串:')
for x in s[::-1]:
print(x)
s = input('请输入字符串:')
index = len(s)-1
while index >= 0:
print(s[index])
index = index - 1
练习:
1.计算1+3+5+7+...+99的和
# s = 0
# for y in range(1,100,2):
# if y < 100:
# s = s + y
# print(s)
# x = int(input('请输入一个数,来计算该数以内全部数字之和'))
# s = 0
# for y in range(1,x):
# if y < 100:
# s = s + y
# print(s)
# x = int(input('请输入一个数,来计算该数以内全部数字之和'))
# s = 0
# for y in range(1,x,2):
# if y < 100:
# s = s + y
# print(s)
x = 1
a = 0
while x < 100:
a += x
x += 2
print(a)
for 语句的嵌套
指for语句内含有for语句
例:
for x in 'ABC':
for y in '123':
print(x + y)
for shi in range(1,10):
for ge in range(10):
print(shi * 10 + ge)
内部循环先走,走完在走外边的循环
思考:打印如下矩形
5
12345
23456
34567
45678
56789
n = int(input('请输入一个数:'))
# begin = 1
# 用外重循环来控制打印的行数,同时改变开始值begin
for begin in range(1,n + 1):
# 打印其中一行,begin为行的开始值
for x in range(begin,begin + n):
print(x,end='')
print()
用while语句打印1,3,5,7,...,19
将上题用for语句来实现
a = 1
while a <= 20:
print(a,end=' ')
a += 2
for x in range(1,20,2):
print(x)
continue 语句:
作用:
用于循环语句中(while,for语句)中,不再执行本次循环内chontinue之后的语句,重新开始一次新的循环
例:
for x in range(10):
if x == 3:
continue
print(x)
示例:
打印10 以内的整数:
for x in range(10):
while示例:
x = 0
while x < 10:
if x ==3:
continue
print(x)
x += 1
从新开始之前记得改变循环变量!!!!
示例:
# 打印10以内的偶数:
用while循环跳过奇数实现
x = 1
while x <= 10:
if x % 2 == 1:
x += 1
continue
print(x)
x += 1
continue语句说明
在while语句中执行continue语句,将会直接跳转到while语句的真值表达式处从新开始新的循环
在for语句中执行cintinue语句将会从可迭代对象中取下一个绑定变量后再次进入
循环总结:
while语句
for语句
break语句
continue语句
练习:
用字符串*号打印三角形
要求输入整数,此整数代表三角形的高度
如: 3
*
***
*****
4
*
***
*****
*******
x = int(input('请输入一个整数:'))
h = 1 # 行数
space = x * 2 + 1 # 空格字符数
while h < x:
star = '*' * (h * 2 - 1) # 星星数量
S = star.center(space,' ') # 综合星星空格数量输出一行
print(S)
h += 1 # 循环进入第二行
输入unicode起始值到变量begin
输入unicode的终止值到变量end
打印这些编码所对应的文字,结果如下:1
请输入起始值:48
请输入终止值:59
十进制编码 十六进制编码 文字
40 0x30 0
49 0x31 1
.......
请输入起始值:20000
请输入终止值:20010
十进制编码 十六进制编码 文字
20000 0x4e20 .。
.......
3.假设用户信息为:
用户名:tarena
密码: 123456
验证码:a1b2
当用户输入任何一项错误的时候就开始让用户从新输入,直到输入正确为止