eval 與 exec
eval 函式只能處理字串,也可以返回引數中字串表示式的運算結果
>>
> result =
eval
("9*9*9"
)>>
> result
729# eval()的引數只能是字串,如果強行換成表示式會出現型別錯誤typeerror
>>
>
eval(8
*8)traceback (most recent call last)
: file ""
, line 1,in
typeerror:
eval
() arg 1 must be a string,
bytes
or code object
eval()的引數只能是字串,如果強行換成表示式會出現型別錯誤typeerror
exec函式的引數是一段可執行的**,exec函式的作用是執行引數中的**:
>>
>
import os
>>
>
exec
("os.system('notepad')"
)
字串的輸出方式
『』 :單引號用於單個字元;"":雙引號內部用於書寫字串;』』』 『』』 三引號內部是寫的是可以換行的字串;
ps:在編碼與轉碼的過程中,函式ord()將引數中的字元(單個字元)轉換成對應的ascii碼值;函式chr()將引數中的ascii碼值轉化成對應的字元
字串擷取
語法結構:
str
[start:end]
擷取乙個字串對應的部分
mystr =
"""生活中程式猿的真實寫照、
一款遊戲一包煙,一台電腦一下午。
一盒泡麵一壺水,一頓能管一整天"""
print
(mystr[:]
)# 擷取整個字串
print
(mystr[3:
11])# 從下標為 3 的元素擷取到下標為 11 的元素(不包括最後乙個元素)
print
(mystr[:-
1])# 從開始第乙個元素擷取到最後乙個元素(不包括)
print
(mystr[2:
])# 從下標為2的元素擷取到最後乙個元素(包括)
:前後不寫對應的下標,意味著從第乙個元素開始,或者擷取到最後乙個元素(包含);字串正向(從左往右)的下標編號是從 0 開始的,分別是:0,1,2,3 …第乙個元素的編號是:0;字串逆向(從右往左)的下標編號是從-1開始的,分別是:-1,-2,-3…第乙個元素的編號是:-1
字串賦值
將變數賦值成為字串,是將對應的變數名指向一塊儲存字串的位址,字串鐘大哥字元可以作為元素輸出,但是字串的內容不能改變(不能直接修改記憶體位址中的內容)
>>> mystr = "我愛你中國"
>>> print(mystr[2])
你》 mystr[2] = "4"
traceback (most recent call last):
file "", line 1, in typeerror: 'str' object does not support item assignment
不能修改字串的額內容(想修改內容可以重新賦值乙個字串)
字串中的轉義字元
在字串中通常使用轉義字元\
標識特殊含義;比如顯示雙引號,標識檔案路徑等,轉義字元與不同的字母組合在字串中也有不同的意義,比如\n
意味著換行符
print
("\"calc\""
)# 區別字串內的雙引號和標識字串的雙引號
print()
# 輸入檔案路徑的方式;遇到 \ 需要進行轉義
print
("abcd\nefg"
)# \n換行
字串對齊
format
函式為對應輸出的字串預留空位
format
("str"
,"xxs"
)
使用format()
函式輸出的字串預設的對齊方式是左對齊
print
(format
("12"
,"10s"),
"123456"
)print
(format
("12sax"
,"10s"),
"akncjk"
)print
(format
("12wdq"
,"10s"),
"1516515"
)print
(format
("12ascac"
,"10s"),
65151
)print
(format
("1dwqd2"
,"10s"),
2161)-
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
---(預設的對齊方式是左對齊)
12123456
12sax akncjk
12wdq 1516515
12ascac 65151
1dwqd2 2161
字串格式化
字串格式化有以下幾個常用符號:
num =
20money =
4000
print
("zs的女神有%d個備胎,\n有一天zs花了%f元人民幣給女神買了一部手機,\n女神說,你是個好人但咱倆不合適;\n其中乙個備胎花了%f 元人民幣租了輛賓士,\n給女神買了一束花,\n女神就陪他睡了"
%(num, money, money)
)cup =
'c'money =
15364.2234
print
("zs的女神有%c罩杯,是她花了%.2f元人民幣隆的"
%(cup,money)
)# %.nf 代**式化浮點數並保留n位小數
print
("zs的女神有%c罩杯,是她花了%e元人民幣隆的"
%(cup,money)
)# %.e 代**式化科學計數法 * 10的指數次方
print
("zs的女神有%c罩杯,是她花了%.2e元人民幣隆的"
%(cup,money)
)# %.ne 代**式化科學計數法 * 10的指數次方 結果保留n位小數
其中:%.nf||%.ne
表示保留n位小數
浮點數填充型別:
print
("%-10.2f %f"%(
123.56
,11562.23546))
# 10個字元位置,保留兩位小數,左對齊
print
("%10.2f %f"%(
123.568915
,11562.23546))
# 10個字元位置,保留兩位小數,預設右對齊
print
("%010.2f %f"%(
123.5685611
,11562.23546))
# 10個字元位置,保留兩位小數,右對齊,用 0 代替空格對字元位進行佔位填充
print
("%10.2f %f"%(
123.5689
,11562.23546
))
有格式化佔位符 % 出現的時候 %% 算是一種特殊的轉義字元,在字串中輸出乙個%
print
("hello %% %.2f%%"%(
10.5))
# 輸出 hello % 10.50%
print
("hello %% %d%%"%(
10))# 輸出 hello % 10%
在python2中,普通字串是以8位ascii碼進行儲存的,而unicode字串則儲存為16位unicode字串,這樣能夠表示更多的字符集。使用的語法是在字串前面加上字首 u。
在python3中,所有的字串都是unicode字串。(所以就不用在前面加上u了)
python3 中表明純文字的方法
在對應的字串之前加上字母r
表示純文字r
的功能是處理轉義字元\
在開發中常用於輸入檔案路徑,但是r
不能處理雙引號(需要輸出雙引號還是要使用轉義字元的)
print
(r"g:\新建資料夾\python"
)print
("g:\\新建資料夾\\python"
)# 輸出的結果都是檔案路徑;g:\新建資料夾\python
print
("ss\"11223\"ss"
)# 處理雙引號的時候需要使用轉義字元
Python 字串格式化
字串格式化 s 格式化為字串 format hello,s.s enough for ya?values world hot print format values hello,world.hot enough for ya?f 格式化為實數 浮點數 format pi with three dec...
python字串格式化
字串的格式化 在python中也有類似於c中的printf 的格式輸出標記。在python中格式化輸出字串使用的是 運算子,通用的形式為 其中,左邊部分的 格式標記字串 可以完全和c中的一致。右邊的 值組 如果有兩個及以上的值則需要用小括號括起來,中間用短號隔開。重點來看左邊的部分。左邊部分的最簡單...
Python字串格式化
字串的格式化 在python中也有類似於c中的printf 的格式輸出標記。在python中格式化輸出字串使用的是 運算子,通用的形式為 其中,左邊部分的 格式標記字串 可以完全和c中的一致。右邊的 值組 如果有兩個及以上的值則需要用小括號括起來,中間用短號隔開。重點來看左邊的部分。左邊部分的最簡單...