回顧:
字符串
編碼轉(zhuǎn)換
ord(x)
chr(x)
整數(shù)轉(zhuǎn)字符串的函數(shù):
hex(i)
oct(i)
bin(i)
字符串的構(gòu)造(創(chuàng)建)函數(shù)
str(x)
int(x)
bool(x)
float(x)
complex(x)
while語句
day06:
for 語句:
for 語句用來遍歷(每個對象能夠查看并只查看一遍)序列或可迭代對象的每一個元素
可迭代對象是指有多個數(shù)據(jù)組合在一起的對象
包括:
字符串? ? str
-------以后后邊會學(xué)--------
列表? ? ? list
元祖? ? ? tuple
字典? ? ? dict
集合? ? ? set
固定集合? frozenset
生成器等
for 的語法
for 變量列表? in 可迭代對象或生成器:
語句1
.....
else:
語句2
.....
示例:
s = 'hello'
for ch in s:
print(ch)
else:
print('對象不能再提供數(shù)了叹谁,結(jié)束')
語法說明:
1.變量依次用可迭代對象的每次給出的元素依次賦值彭沼,然后執(zhí)行語句
2.可迭代對象迭代完所有的元素后,執(zhí)行else子句部分語句后退出循環(huán)
3.else子句部分可以省略(同while語句類似)
4. 語句1的執(zhí)行次數(shù)與可迭代對象的元素個數(shù)有關(guān)
5.當(dāng)在循環(huán)內(nèi)部用break終止循環(huán)時遣钳,else子句部分語句不會執(zhí)行
for? 練習(xí):
任意輸入一段字符串:
計算出輸入字符'a'的個數(shù),并打印出個數(shù)
計算出空格的個數(shù),并打印個數(shù)
(不能使用S.count方法)
思考:
用while語句能否實現(xiàn)上述功能
x = input('請輸入一段字符:')
i = 0
space = 0
for y in x:
if y == 'a':
i += 1
elif y ==" ":
space += 1
print('輸入的a的數(shù)量為:',i,'輸入空格的數(shù)量:',space)
range()函數(shù):
格式
rang(stop)? 從零開始,每次生成一個整數(shù)后加一操作辆琅,直到stop為止(不包含stop)
range(start,stop[,step])從start開始,每次生成一個整數(shù)后移動step,直到stop為止(不包含stop,且stop可以是負(fù)數(shù))
作用:
用來生成一個可迭代的是这刷、整數(shù)序列生成器對象
示例:
range(4)? #生成∠芽纭0 1≌钙纭2∮绾堋3
range(-100)#生成空 因為是從0 開始
range(3,6) #3.4.5
range(1,10,2) #1 3 5 7 9
示例練習(xí):
用for語句打印1-20率碾,打印在1行內(nèi)
for i in range(1,21):
if i == 20:
print(i)
else:
print(i,end= ' ')
練習(xí):
1.輸入一個字符串叔营,從尾向頭輸出這個字符串的字符
如:
#python3? ....py
請輸入:hello
o
l
l
e
h
思考:用while能不能實現(xiàn)?
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
練習(xí):
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('請輸入一個數(shù)所宰,來計算該數(shù)以內(nèi)全部數(shù)字之和'))
# s = 0
# for y in range(1,x):
#? ? if y < 100:
#? ? ? ? s = s + y
# print(s)
# x = int(input('請輸入一個數(shù)绒尊,來計算該數(shù)以內(nèi)全部數(shù)字之和'))
# 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語句內(nèi)含有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)
內(nèi)部循環(huán)先走,走完在走外邊的循環(huán)
思考:打印如下矩形
5
12345
23456
34567
45678
56789
n = int(input('請輸入一個數(shù):'))
#? begin = 1
#? 用外重循環(huán)來控制打印的行數(shù)仔粥,同時改變開始值begin
for begin in range(1,n + 1):
Sて祝 打印其中一行,begin為行的開始值
for x in range(begin,begin + n):
print(x,end='')
print()
用while語句打有返1,3,5,7,...,19
將上題用for語句來實現(xiàn)
a = 1
while a <= 20:
print(a,end=' ')
a += 2
for x in range(1,20,2):
print(x)
continue? 語句:
作用:
用于循環(huán)語句中(while,for語句)中,不再執(zhí)行本次循環(huán)內(nèi)chontinue之后的語句谭羔,重新開始一次新的循環(huán)
例:
for x in range(10):
if x == 3:
continue
print(x)
示例:
打踊恰10 以內(nèi)的整數(shù):
for x in range(10):
while示例:
x = 0
while x < 10:
if x ==3:
continue
print(x)
x += 1
從新開始之前記得改變循環(huán)變量!N谅恪?筒妗!
示例:
;案妫 打蛹娌10以內(nèi)的偶數(shù):
用while循環(huán)跳過奇數(shù)實現(xiàn)
x = 1
while x <= 10:
if x % 2 == 1:
x += 1
continue
print(x)
x += 1
continue語句說明
在while語句中執(zhí)行continue語句,將會直接跳轉(zhuǎn)到while語句的真值表達式處從新開始新的循環(huán)
在for語句中執(zhí)行cintinue語句將會從可迭代對象中取下一個綁定變量后再次進入
循環(huán)總結(jié):
while語句
for語句
break語句
continue語句
練習(xí):
用字符串*號打印三角形
要求輸入整數(shù)沙郭,此整數(shù)代表三角形的高度
如: 》鹕搿3
*
***
*****
4
*
***
*****
*******
x = int(input('請輸入一個整數(shù):'))
h = 1? ? ? ? ? ? ? ? ? ? ? ? # 行數(shù)
space = x * 2 + 1 # 空格字符數(shù)
while h < x:
star = '*' * (h * 2 - 1)? ? # 星星數(shù)量
S = star.center(space,' ') # 綜合星星空格數(shù)量輸出一行
print(S)
h += 1 # 循環(huán)進入第二行
輸入unicode起始值到變量begin
輸入unicode的終止值到變量end
打印這些編碼所對應(yīng)的文字,結(jié)果如下:1
請輸入起始值:48
請輸入終止值:59
十進制編碼 十六進制編碼 文字
40 0x30? ? ? 0
49? ? ? ? ? ? ? 0x31? ? ? 1
.......
請輸入起始值:20000
請輸入終止值:20010
十進制編碼 十六進制編碼 文字
20000 0x4e20? ? ? .病线。
.......
3.假設(shè)用戶信息為:
用戶名:tarena
密碼: 〖唷123456
驗證碼:a1b2
當(dāng)用戶輸入任何一項錯誤的時候就開始讓用戶從新輸入,直到輸入正確為止