python 4
用于字符串的序列函數(shù)
len(s)? 返回序列的長(zhǎng)度
max(s)? 返回序列的最大值元素
min(s)? 返回序列的最小值元素? # 字符串比的都是unicode 值大小
例:
s = 'abc123'
print(len(s))? # 6
print(max(s))? # c
字符串編碼的轉(zhuǎn)換函數(shù):
ord(str)? 返回一個(gè)字符的unicode 值 # 只能顯示單個(gè)字符的值
chr(i)? ? 返回一個(gè)unicode 值對(duì)應(yīng)的字符
整數(shù)轉(zhuǎn)為字符串函數(shù):
hex(i)? 將整數(shù)轉(zhuǎn)換為十六進(jìn)制的字符串
oct(i)? 將整數(shù)轉(zhuǎn)換為八進(jìn)制的字符串
bin(i)? 將整數(shù)轉(zhuǎn)換為二進(jìn)制的字符串
字符串構(gòu)造函數(shù):
str(obj='')? 將對(duì)象轉(zhuǎn)換為字符串
str(0x64)? ? # '100'
計(jì)算機(jī)默認(rèn)轉(zhuǎn)成十進(jìn)制字符串
練習(xí)1:
寫(xiě)一個(gè)程序苍蔬,輸入一個(gè)字符串逊笆,如果字符串不為空,則把第一個(gè)字符的編碼打印出來(lái)
練習(xí)2:
寫(xiě)一個(gè)程序,輸入一個(gè)整數(shù)值(0-65535)谋竖,打印出這個(gè)數(shù)值所對(duì)應(yīng)的字符
python3 中常用的字符串方法(method):
字符串的方法調(diào)用語(yǔ)法:
對(duì)象.方法名(方法傳參)
示例:
'abc'.isalpha()? #語(yǔ)法是對(duì)的
123.isalpha()? ? #語(yǔ)法是錯(cuò)的
假設(shè)字符串變量名為S
常用字符串的方法氓栈,如下:
S.isdigit()? ? ? ? 判斷字符串是否為全數(shù)字
S.isalpha()? ? ? ? 判斷字符串是否全為英文字符
S.islower()? ? ? ? 判斷字符串是否為小字英文字符
S.isupper()? ? ? ? 判斷字符串是否為大字英文字符
S.isspace()? ? ? ? 判斷字符串是否全為空白字符
S.center(width[,fill])? ? s.center(4,"-")
將字符串居中不同,左右默認(rèn)填充空格
S.count(sub[,start[,end]]) s.count("to")? s.count('o',2)
獲取字符串中的子串個(gè)數(shù)
S.find(sub[,start[end]])
獲取字符串中子串sub的索引脓魏,失敗返回-1
S.strip()? ? ? ? ? 返回去掉左右空白字符的字符串
S.lstrip()? ? ? ? 返回去掉左側(cè)空白字符的字符串
S.rstrip()? ? ? ? 返回去掉右側(cè)空白字符的字符串
S.title()? ? ? ? ? 生成每個(gè)英文單詞首字母大寫(xiě)的字符串
S.upper()? ? ? ? ? 生成將英文轉(zhuǎn)換為大寫(xiě)的字符串
S.lower()? ? ? ? ? 生成將英文轉(zhuǎn)換為小寫(xiě)的字符串
S.replace(old,new[,count])? ? 將字符串old用代替生成新的字符串
空白字符指的是空格,水平制表符(\t),換行符(\n)等不可見(jiàn)字符
練習(xí):
輸入一個(gè)字符串杭跪,判斷這個(gè)字符串中有幾個(gè)空格
字符串格式化表達(dá)式:
作用:
生成一定格式的字符串
運(yùn)算符:
%
語(yǔ)法:
格式字符串%參數(shù)值
或
格式字符串%(參數(shù)值1仙逻,參數(shù)值2,....)
說(shuō)明:
格式化字符串中以%開(kāi)頭為占位符涧尿,占位符的位置將用參數(shù)值替換
例:
fmt = 'name: %s, age: %d'
name = 'jinchen'
age = 35
print(fmt % (name,age))
格式化字符串中的占位符:
%s? 字符串
%r? 字符串(使用repr而不是str)
%c? 整數(shù)轉(zhuǎn)為單個(gè)字符
%d? 十進(jìn)制整數(shù)
%o? 八進(jìn)制整數(shù)
%x? 十六進(jìn)制整數(shù)(字符a-f小寫(xiě))
%X? 十六進(jìn)制整數(shù)(字符A-F大寫(xiě))
%e ,%E 指數(shù)表求得浮點(diǎn)數(shù)
%f ,%F 浮點(diǎn)小數(shù)
%g ,%G 十進(jìn)制形式的浮點(diǎn)數(shù)或指數(shù)浮點(diǎn)數(shù)自動(dòng)轉(zhuǎn)換
%%? 等同于一個(gè)字符'%'
占位符% 和類型碼之間的格式語(yǔ)法
-? 左對(duì)齊
+? 右對(duì)齊
0? 補(bǔ)零
width? 寬度(整數(shù))
pricision? 精度(整數(shù))
“%10d" % 123? ? ? # '? ? ? 123'
%和d之間加一個(gè)十進(jìn)制系奉,表示寬度為10的字符
“%010d" % 123? ? # '0000000123'
%和d之前加一個(gè)0,表示寬度為10的字符前邊用0 補(bǔ)全
“%-10d" % 123? ? # '123? ? ? '
%和d之前加一個(gè)-姑廉,表示寬度為10的字符左對(duì)齊
“%+10d" % 123? ? # '? ? ? 123'
%和d之前加一個(gè)+缺亮,表示寬度為10的字符右對(duì)齊
對(duì)于整型數(shù)可以補(bǔ)零,字符串不可以如%10s 就是空格補(bǔ)齊而不是零
"%7.3f" % 3.141594654215321
這個(gè)精度就是桥言,整個(gè)字符為7位萌踱,取小數(shù)點(diǎn)后第3位
循環(huán)語(yǔ)句:
while? 語(yǔ)句
for in 語(yǔ)句
while 語(yǔ)句:
作用:
根據(jù)一定的條件,重復(fù)的執(zhí)行一個(gè)語(yǔ)句或多條語(yǔ)句
語(yǔ)法:
while? 真值表達(dá)式:
語(yǔ)句1
...
else:
語(yǔ)句2
...
說(shuō)明:
1.先執(zhí)行真值表達(dá)式号阿,測(cè)試布爾值為True還是False
2.如果真值表達(dá)式值為True則執(zhí)行語(yǔ)句1并鸵,然后再回到第一步,重復(fù)進(jìn)行測(cè)試
3.如果真值表達(dá)式為False則執(zhí)行語(yǔ)句2倦西,然后結(jié)束此while語(yǔ)句執(zhí)行能真,如果沒(méi)有else,子句則直接結(jié)束此while語(yǔ)句的執(zhí)行
4.else子句部分可以省略
示例:
# 打印1-20的整數(shù)
n = 1
while n <= 20:
print(n)
n = n + 1
else:
print('end')
練習(xí):
用while語(yǔ)句控制打印hello world 的行數(shù)
輸入一個(gè)數(shù)n扰柠,打印n行
2. 輸入一行字符串,將字符串中編碼值最大的一個(gè)打印出來(lái)
while 語(yǔ)句嵌套
嵌套示意:
while 真值表達(dá)式:
...
while 真值表達(dá)式2:
...
else:
...
...
else:
...
例:
i = 1
while 1 < 5:
j = 1
while j < 3:
print('%d + %d = %d' % (i, j, i + j))
j += 1
i += 1
print('程序結(jié)束')
練習(xí):
輸入一個(gè)整數(shù)用變量n綁定疼约,求1+2+3+4+5+n的和
驗(yàn)證:如果n = 1 結(jié)果為5050
s = int(input("請(qǐng)輸入一個(gè)整數(shù):"))
a = 0 # 讓一個(gè)變量置空
i = 1
while i <= s:
a = a + i? #將以前的值和當(dāng)前的值累加放回原處
# print(i)
i = i + 1
print('1+2+3+4+...+%d = %d' % (s, a))
break 語(yǔ)句:
作用:
用于循環(huán)語(yǔ)句中(while,for語(yǔ)句中)卤档,用來(lái)終止當(dāng)前循環(huán)語(yǔ)句的執(zhí)行
語(yǔ)法:
break
說(shuō)明:
通常和if語(yǔ)句組合使用,當(dāng)break語(yǔ)句執(zhí)行后程剥,此循環(huán)語(yǔ)句break之后的語(yǔ)句將不再執(zhí)行
break語(yǔ)終止循環(huán)劝枣,循環(huán)語(yǔ)句的else子句將不會(huì)被執(zhí)行
break語(yǔ)句只能終止當(dāng)前循環(huán)語(yǔ)句的執(zhí)行,如果有循環(huán)嵌套時(shí)织鲸,不會(huì)跳出嵌套的外重循環(huán)
n = int(input('請(qǐng)輸入一個(gè)整數(shù):'))
while n <100:
print(n)
if n == 5:
break
n += 1
else:
print('while語(yǔ)句有誤舔腾,結(jié)束')
死循環(huán):
死循環(huán)是指條件一直成立的循環(huán)
死循環(huán)通常用break來(lái)終止
死循環(huán)的else不會(huì)執(zhí)行
練習(xí):
1.打印1-20的整數(shù),在一行顯示搂擦,每個(gè)數(shù)字之間用一個(gè)空格分隔
1 2 3 4 5 6 ... 20
2.打印1-20的整數(shù)稳诚,每行五個(gè)數(shù)字,打印四行
1 2 3 4 5
6 7 8 9 10
...
提示:可以用print(n,sep='',end=' ')
3.輸入一個(gè)正整數(shù)用變量n 綁定
已知 0 + 1 + 2 + ... + x < n
求x 的最大數(shù)
4.用程序生成如下字符串:
'ABCD......XTZ'
和
'AaBbCc....YyZz'
name = 'jinchen'
password = '123456'
while True:
n = input('請(qǐng)輸入用戶名:')
p = input('請(qǐng)輸入密碼:')
if name == n and password == p:
break
else:
print('輸入有誤瀑踢,請(qǐng)從新輸入')
print('登陸成功')
a = 1
while a <= 20:
print(a,end=' ')
a += 1
a = 1
while a <= 20:
if a % 5 ==0:
print(a)
else:
print(a,sep='',end=' ')
a += 1
n = int(input('請(qǐng)輸入一個(gè)正整數(shù):'))
x = 0
a = 0
while x < n:
x += 1
a += x
if a >= n:
break
b = x
print(b)
x = 65
while x <= 90:
b = chr(x)
x += 1
print(b,end='\0')
x = 65
q = 97
while x <= 90 and q <= 122:
b = chr(x)
c = chr(q)
x += 1
q += 1
d = b + c
print(d,end="\0")