從零自學Python day08

2021-10-08 09:25:18 字數 3966 閱讀 9164

是最常用的資料型別,用單引號或雙引號括起來建立字串

一般建立變數給變數賦值時建立字串

實際上就是字串的擷取

需要注意的是,python中沒有一種資料型別叫單字元,如果字串只有乙個字元那也叫字串,可進行的操作和字串相同

擷取字串的方法是[,]中括號

#!/usr/bin/python3

var1 =

'hello world!'

var2 =

"runoob"

print

("var1[0]: "

, var1[0]

)print

("var2[1:5]: "

, var2[1:

5])

輸出結果為

var1[0]: h

var2[1:5]: unoo

實際上就是字串的拼接或者擷取字串後再拼接,做到產生新字串的效果

但是已經建立的字串是不能更改的,只有拼接和擷取手段

#!/usr/bin/python3

var1 =

'hello world!'

print

("已更新字串 : "

, var1[:6

]+'runoob!'

)

輸出結果為

已更新字串 : hello runoob!

這應該是通過轉義字元使字串有著特殊意義

轉義字元都含有反斜槓/

(在行尾時) 續行符

\ 反斜槓符號

』 單引號

" 雙引號

\a 響鈴

\b 退格(backspace)

\000 空

\n 換行

\v 縱向製表符

\t 橫向製表符

\r 回車

\f 換頁

\oyy 八進位制數,yy 代表的字元,例如:\o12 代表換行,其中 o 是字母,不是數字 0。

\xyy 十六進製制數,yy代表的字元,例如:\x0a代表換行

\other 其它的字元以普通格式輸出

字串也有運算,和昨天運算子中講的一樣,字串的運算一般有拼接、判斷(成員運算子)、擷取

+字串連線

*重複輸出字串

通過索引獲取字串中字元

[ : ] 擷取字串中的一部分,遵循左閉右開原則,str[0:2] 是不包含第 3 個字元的。

in 成員運算子 - 如果字串中包含給定的字元返回 true

not in 成員運算子 - 如果字串中不包含給定的字元返回 true

r/r

原始字串 - 原始字串:所有的字串都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。 原始字串除在字串的第乙個引號前加上字母 r(可以大小寫)以外,與普通字串有著幾乎完全相同的語法。

% 格式字串

#!/usr/bin/python3

a ="hello"

b ="python"

print

("a + b 輸出結果:"

, a + b)

print

("a * 2 輸出結果:"

, a *2)

print

("a[1] 輸出結果:"

, a[1]

)print

("a[1:4] 輸出結果:"

, a[1:

4])if

("h"

in a)

:print

("h 在變數 a 中"

)else

:print

("h 不在變數 a 中")if

("m"

notin a)

:print

("m 不在變數 a 中"

)else

:print

("m 在變數 a 中"

)print

(r'\n'

)print

(r'\n'

)

輸出結果為

a + b 輸出結果: hellopython

a * 2 輸出結果: hellohello

a[1] 輸出結果: e

a[1:4] 輸出結果: ell

h 在變數 a 中

m 不在變數 a 中

\n\n

原話是python 支援格式化字串的輸出 。儘管這樣可能會用到非常複雜的表示式,但最基本的用法是將乙個值插入到乙個有字串格式符 %s 的字串中。

我理解的是像是一道填空題,可以後續輸入插入到原本的字串中間,有點像英語的完形填空,將乙個數字或字串之類的不全一句話,插入不同的資料型別有不同的格式化符

這好像只是其中乙個作用還有其他作用不是很理解

#!/usr/bin/python3

print

("我叫 %s 今年 %d 歲!"%(

'小明',10

))

輸出結果為

我叫 小明 今年 10 歲!

%c 格式化字元及其ascii碼

%s 格式化字串

%d 格式化整數

%u 格式化無符號整型

%o 格式化無符號八進位制數

%x 格式化無符號十六進製制數

%x 格式化無符號十六進製制數(大寫)

%f 格式化浮點數字,可指定小數點後的精度

%e 用科學計數法格式化浮點數

%e 作用同%e,用科學計數法格式化浮點數

%g %f和%e的簡寫

%g %f 和 %e 的簡寫

%p 用十六進製制數格式化變數的位址

格式化操作符輔助指令:

三引號的作用是實現在給變數賦值的時候輸入多行字串

字串中可以包含換行符、製表符以及其他特殊字元。

#!/usr/bin/python3

para_str =

"""這是乙個多行字串的例項

多行字串可以使用製表符

tab ( \t )。

也可以使用換行符 [ \n ]。

"""print

(para_str)

輸出結果為

這是乙個多行字串的例項

多行字串可以使用製表符

tab ( )。

也可以使用換行符 [

]。f-string 是 python3.6 之後版本新增的,稱之為字面量格式化字串,是新的格式化字串的語法。

之前我們習慣用百分號 (%):

name = 『runoob』

『hello %s』 % name

『hello runoob』

f-string 格式化字串以 f 開頭,後面跟著字串,字串中的表示式用大括號 {} 包起來,它會將變數或表示式計算後的值替換進去,例項如下:

name = 『runoob』

f』hello 』 # 替換變數

f』』 # 使用表示式

『3』

w =

f』: 』

『runoob: www.runoob.com』

用了這種方式明顯更簡單了,不用再去判斷使用 %s,還是 %d。

在 python 3.8 的版本中可以使用 = 符號來拼接運算表示式與結果:

x = 1

print(f』』) # python 3.6

2

在python2中,普通字串是以8位ascii碼進行儲存的,而unicode字串則儲存為16位unicode字串,這樣能夠表示更多的字符集。使用的語法是在字串前面加上字首 u。

在python3中,所有的字串都是unicode字串。

從零自學Python day02

保留字就是關鍵字,通俗來講就是這些字python自己用了,不能再被當作常數變數或其他識別符號等 保留字的查詢 import keyword keyword.kwlist保留字有 false none true and as assert break class continue def del el...

從零自學Python day03

python中的變數不需要宣告後使用,但是要賦值才能使變數被建立 變數本身沒有型別,我們所說的 型別 是變數所指的記憶體中物件的型別。我理解的是依據賦值型別的不同來劃分成不同的變數 用等號 給變數賦值 變數名 賦給變數的值 等號 運算子左邊是乙個變數名,等號 運算子右邊是儲存在變數中的值。usr b...

從零自學Python day12

集合和字典元組列表相似,也是能裝有多個值 元素 內容我也不知道該咋叫了 的一種資料型別 不同的是,集合中的元素是無序的,集合 set 是乙個無序的不重複元素序列。集合的建立方法是用1.花括號 這個與字典相同,因為字典中是鍵值對,所以不會弄混,值得注意的是,當建立空集合的時候,只能用第二種方法,因為用...