日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python基础知识__字符串

發(fā)布時間:2024/7/5 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python基础知识__字符串 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

字符串介紹

一. 認(rèn)識字符串

字符串是 Python 中最常用的數(shù)據(jù)類型。我們一般使用引號來創(chuàng)建字符串。創(chuàng)建字符串很簡單,只要為變量分配一個值即可。

a = 'hello world' b = "abcdefg" print(type(a)) print(type(b))

注意:控制臺顯示結(jié)果為<class 'str'>, 即數(shù)據(jù)類型為str(字符串)。

1.1 字符串特征

  • 一對引號字符串

name1 = 'Tom' name2 = "Rose"
  • 三引號字符串

name3 = ''' Tom ''' name4 = """ Rose """ a = ''' i am Tom, nice to meet you! ''' ? b = """ i am Rose, nice to meet you! """

注意:三引號形式的字符串支持換行。

二.字符串輸出

1.格式化操作符

name = '小李'position = '講師'address = '北京市' ?print('--------------------------------------------------')print("姓名:%s" % name)print("職位:%s" % position)print("公司地址:%s" % address)print('--------------------------------------------------')

結(jié)果:

--------------------------------------------------姓名: 小李職位: 講師公司地址: 北京市--------------------------------------------------

2.f-strings

f-strings 提供一種簡潔易讀的方式, 可以在字符串中包含 Python 表達(dá)式. f-strings 以字母 'f' 或 'F' 為前綴, 格式化字符串使用一對單引號、雙引號、三單引號、三雙引號. 格式化字符串中

f-strings?的基本結(jié)構(gòu)是這樣的:

name = '小李' age = 18 sex = '男' msg1 = F'姓名:{name},性別:{age},年齡:{sex}' # 大寫字母也可以 msg = f'姓名:{name},性別:{age},年齡:{sex}' # 建議小寫 print(msg)

輸出的結(jié)果為:

姓名:小李,性別:18,年齡:男

f-strings?就是在字符串的引號前面加上一個字母?f。字母大小寫都可以,但是推薦使用小寫。{}?中除了可以使用變量外,還可以放入函數(shù):

def func(a,b):return a + b msg = f"運(yùn)行結(jié)果:{func(1,2)}" print(msg)

輸出的結(jié)果為:

運(yùn)行結(jié)果:3

甚至可以在?{}?中放入?input?函數(shù),讓用戶輸入:

print(f"姓名:{input('請輸入姓名:')} 年齡:{input('請輸入年齡:')} 性別:{input('請輸入性別:')}")

輸出的結(jié)果是:

請輸入姓名:alex 請輸入年齡:18 請輸入性別:男 姓名:alex 年齡:18 性別:男

除了字符串,{} 中也可以放入列表和字典:

lst = [1, 2, 32, 34, 45, 5] msg = f"運(yùn)行結(jié)果:{lst[0:3]}" print(msg)dic = {"key": 1, "key1": 22} msg = f"運(yùn)行結(jié)果:{dic['key1']}" print(msg)

輸出的結(jié)果為:

運(yùn)行結(jié)果:[1, 2, 32] 運(yùn)行結(jié)果:22

f-string?可以寫成多行的形式,但依然打印成一行:

msg = f"窗前明月{'光'}," \f"玻璃好上{'霜'}。" \f"要不及時{'擦'}," \f"一會就得{'臟'}。" print(msg)

輸出的結(jié)果為:

窗前明月光,玻璃好上霜。要不及時擦,一會就得臟。

要想打印多行字符串,還是要使用三對引號:

msg = f""" 窗前明月{'光'}, 玻璃好上{'霜'}. 要不及時{'擦'}, 一會就得{'臟'}. """ print(msg)

通過使用三元運(yùn)算,配合 f-strings,我們可以進(jìn)一步節(jié)省代碼:

a = 10 b = 20 msg = f"{a if a < b else b}" print(msg)

同時使用兩個括號表示一個可以打印的大括號:

msg = f"{{'alex': 'wusir'}}" print(msg)

輸出的結(jié)果為:

{'alex': 'wusir'}

字符串輸入;

注意:input獲取的數(shù)據(jù),都以字符串的方式進(jìn)行保存,即使輸入的是數(shù)字,那么也是以字符串方式保存

demo:

userName = input('請輸入用戶名:')print("用戶名為:%s" % userName) ?password = input('請輸入密碼:')print("密碼為:%s" % password)

結(jié)果:(根據(jù)輸入的不同結(jié)果也不同)

請輸入用戶名:xiaoli用戶名為: 110請輸入密碼:123456密碼為: 123456

下標(biāo)和切片

1. 下標(biāo)索引

所謂“下標(biāo)”,就是編號,就好比超市中的存儲柜的編號,通過這個編號就能找到相應(yīng)的存儲空間

字符串中"下標(biāo)"的使用

列表與元組支持下標(biāo)索引好理解,字符串實際上就是字符的數(shù)組,所以也支持下標(biāo)索引。

如果有字符串:name = 'abcdef',在內(nèi)存中的實際存儲如下:

如果想取出部分字符,那么可以通過下標(biāo)的方法,(注意python中下標(biāo)從 0 開始)

name = 'abcdef' ?print(name[0])print(name[1])print(name[2])

運(yùn)行結(jié)果:

a b c

2. 切片

切片是指對操作的對象截取其中一部分的操作。字符串、列表、元組都支持切片操作。

切片的語法:[起始:結(jié)束:步長]

注意:選取的區(qū)間從"起始"位開始,到"結(jié)束"位的前一位結(jié)束(不包含結(jié)束位本身),步長表示選取間隔。

我們以字符串為例講解。

如果取出一部分,則可以在中括號[]中,使用:

name = 'abcdef' ?print(name[0:3]) # 取 下標(biāo)0~2 的字符

運(yùn)行結(jié)果:

name = 'abcdef' ?print(name[0:5]) # 取 下標(biāo)為0~4 的字符

運(yùn)行結(jié)果:

name = 'abcdef' ?print(name[3:5]) # 取 下標(biāo)為3、4 的字符

運(yùn)行結(jié)果:

name = 'abcdef' ?print(name[2:]) # 取 下標(biāo)為2開始到最后的字符

運(yùn)行結(jié)果:

name = 'abcdef' ?print(name[1:-1]) # 取 下標(biāo)為1開始 到 最后第2個 之間的字符 ?

運(yùn)行結(jié)果:

想一想

  • (面試題)給定一個字符串a(chǎn)Str, 請反轉(zhuǎn)字符串

# 索引是通過下標(biāo)取某個元素 # 切片是通過下標(biāo)去某一段元素 ? s = 'Hello World!' ? print(s[4]) ? print(s) ? print(s[:]) # 取出所有元素(沒有起始位和結(jié)束位之分),默認(rèn)步長為1 ? print(s[1:]) # 從下標(biāo)為1開始,取出 后面所有的元素(沒有結(jié)束位) ? print(s[:5]) ?# 從起始位置開始,取到 下標(biāo)為5的前一個元素(不包括結(jié)束位本身) ? print(s[:-1]) # 從起始位置開始,取到 倒數(shù)第一個元素(不包括結(jié)束位本身) ? print(s[-4:-1]) # 從倒數(shù)第4個元素開始,取到 倒數(shù)第1個元素(不包括結(jié)束位本身) ? print(s[1:5:2]) # 從下標(biāo)為1開始,取到下標(biāo)為5的前一個元素,步長為2(不包括結(jié)束位本身) ? # python 字符串快速逆置 print(s[::-1]) ?# 從后向前,按步長為1進(jìn)行取值

字符串常見操作

如有字符串mystr = 'hello world itcast and itcastcpp',以下是常見的操作

<1>find

檢測 str 是否包含在 mystr中,如果是返回開始的索引值,否則返回-1

  • 語法

  • 字符串序列.find(子串, 開始位置下標(biāo), 結(jié)束位置下標(biāo))
  • 示例

  • mystr.find(str, start=0, end=len(mystr))

    <2>index

    跟find()方法一樣,只不過如果str不在 mystr中會報一個異常.

  • 語法

  • 字符串序列.index(子串, 開始位置下標(biāo), 結(jié)束位置下標(biāo))
  • 示例

  • mystr.index(str, start=0, end=len(mystr))

    <3>count

    返回 str在start和end之間 在 mystr里面出現(xiàn)的次數(shù)

  • 語法

  • 字符串序列.count(子串, 開始位置下標(biāo), 結(jié)束位置下標(biāo))
  • 示例

  • mystr.count(str, start=0, end=len(mystr))

    <4>replace

    把 mystr 中的 str1 替換成 str2,如果 count 指定,則替換不超過 count 次.

  • 語法

  • 字符串序列.replace(舊子串, 新子串, 替換次數(shù))
  • 示例

  • mystr.replace(str1, str2, ?mystr.count(str1))

    <5>split

    以 str 為分隔符切片 mystr,如果 maxsplit有指定值,則僅分隔 maxsplit 個子字符串

  • 語法

  • 字符串序列.split(分割字符, num)
  • 示例

  • mystr.split(str=" ", 2)

    <6>capitalize

    把字符串的第一個字符大寫

    mystr.capitalize()

    <7>title

    把字符串的每個單詞首字母大寫

    >>> a = "hello itcast" >>> a.title() 'Hello Itcast'

    <8>startswith

    檢查字符串是否是以 hello 開頭, 是則返回 True,否則返回 False

  • 語法

  • 字符串序列.startswith(子串, 開始位置下標(biāo), 結(jié)束位置下標(biāo))

    2.示例

    mystr.startswith(hello)

    <9>endswith

    檢查字符串是否以obj結(jié)束,如果是返回True,否則返回 False.

    mystr.endswith(obj)

    <10>lower

    轉(zhuǎn)換 mystr 中所有大寫字符為小寫

    mystr.lower()

    <11>upper

    轉(zhuǎn)換 mystr 中的小寫字母為大寫

    mystr.upper()

    <12>ljust

    返回一個原字符串左對齊,并使用空格填充至長度 width 的新字符串

    mystr.ljust(width)

    <13>rjust

    返回一個原字符串右對齊,并使用空格填充至長度 width 的新字符串

    mystr.rjust(width)

    <14>center

    返回一個原字符串居中,并使用空格填充至長度 width 的新字符串

    mystr.center(width)

    <15>lstrip

    刪除 mystr 左邊的空白字符

    mystr.lstrip()

    <16>rstrip

    刪除 mystr 字符串末尾的空白字符

    mystr.rstrip()

    <17>strip

    刪除mystr字符串兩端的空白字符

    >>> a = "\n\t itcast \t\n" >>> a.strip() 'itcast'

    <18>rfind

    類似于 find()函數(shù),不過是從右邊開始查找.

    mystr.rfind(str, start=0,end=len(mystr) )

    <19>rindex

    類似于 index(),不過是從右邊開始.

    mystr.rindex( str, start=0,end=len(mystr))

    <20>partition

    把mystr以str分割成三部分,str前,str和str后

    mystr.partition(str)

    <21>rpartition

    類似于 partition()函數(shù),不過是從右邊開始.

    mystr.rpartition(str)

    <22>splitlines

    按照行分隔,返回一個包含各行作為元素的列表

    mystr.splitlines()

    <23>isalpha

    如果 mystr 所有字符都是字母 則返回 True,否則返回 False

    mystr.isalpha()

    <24>isdigit

    如果 mystr 只包含數(shù)字則返回 True 否則返回 False.

    mystr.isdigit()

    <25>isalnum

    如果 mystr 所有字符都是字母或數(shù)字則返回 True,否則返回 False

    mystr.isalnum()

    <26>isspace

    如果 mystr 中只包含空格,則返回 True,否則返回 False.

    mystr.isspace()

    <27>join

    mystr 中每個元素后面插入str,構(gòu)造出一個新的字符串

  • 語法

  • 字符或子串.join(多字符串組成的序列)
  • 示例

  • mystr.join(str)

    #想一想

    • (面試題)給定一個字符串a(chǎn)Str,返回使用空格或者'\t'分割后的倒數(shù)第二個子串

    總結(jié)

    以上是生活随笔為你收集整理的Python基础知识__字符串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。