- Python字符串(string)
Python 中的字符串必須由 雙引號(hào)"" 或者 單引號(hào)' ' 包圍,具體格式為:
"字符串內(nèi)容"
'字符串內(nèi)容'
處理字符串中包含引號(hào),我們有兩種處理方案:
-
對(duì)引號(hào)進(jìn)行轉(zhuǎn)義
在引號(hào)前面添加反斜杠\就可以對(duì)引號(hào)進(jìn)行轉(zhuǎn)義,讓 Python 把它作為普通文本對(duì)待,例如:str1 = 'I\'m a great coder!' str2 = "引文雙引號(hào)是\",中文雙引號(hào)是“" print(str1) print(str2) -
使用不同的引號(hào)包圍字符串
str1 = "I'm a great coder!" #使用雙引號(hào)包圍含有單引號(hào)的字符串 str2 = '引文雙引號(hào)是",中文雙引號(hào)是“' #使用單引號(hào)包圍含有雙引號(hào)的字符串 print(str1) print(str2)
運(yùn)行結(jié)果:
I'm a great coder!
引文雙引號(hào)是",中文雙引號(hào)是“
原始字符串:在普通字符串或者長(zhǎng)字符串的開頭加上r前綴,就變成了原始字符串
str1 = r'I\'m a great coder!'
print(str1)
輸出結(jié)果:
I\'m a great coder!
使用字符串:
#!/usr/bin/python3
var1 = 'Hello World!'
var2 = "Runoob"
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])
運(yùn)行結(jié)果:
var1[0]: H
var2[1:5]: unoo
Python字符串運(yùn)算符
| 操作符 | 描述 | 實(shí)例 |
|---|---|---|
| + | 字符串連接 | a + b 輸出結(jié)果: HelloPython |
| * | 重復(fù)輸出字符串 | a*2 輸出結(jié)果:HelloHello |
| [ ] | 通過(guò)索引獲取字符串中字符 | a[1] 輸出結(jié)果 e |
| [ : ] | 截取字符串中的一部分,遵循左閉右開原則,str[0:2] 是不包含第 3 個(gè)字符的。 | a[1:4] 輸出結(jié)果 ell |
| in | 成員運(yùn)算符 - 如果字符串中包含給定的字符返回 True | 'H' in a 輸出結(jié)果 True |
| not in | 成員運(yùn)算符 - 如果字符串中不包含給定的字符返回 True | 'M' not in a 輸出結(jié)果 True |
| r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思來(lái)使用,沒(méi)有轉(zhuǎn)義特殊或不能打印的字符。 原始字符串除在字符串的第一個(gè)引號(hào)前加上字母 r(可以大小寫)以外,與普通字符串有著幾乎完全相同的語(yǔ)法。 | print( r'\n' ) 或 print( R'\n' ) |
| % | 格式字符串 | 見(jiàn)下方詳細(xì)描述 |
【實(shí)例】字符串運(yùn)算符操作:
#!/usr/bin/python3
a = "Hello"
b = "Python"
print("a + b 輸出結(jié)果:", a + b)
print("a * 2 輸出結(jié)果:", a * 2)
print("a[1] 輸出結(jié)果:", a[1])
print("a[1:4] 輸出結(jié)果:", a[1:4])
if( "H" in a) :
print("H 在變量 a 中")
else :
print("H 不在變量 a 中")
if( "M" not in a) :
print("M 不在變量 a 中")
else :
print("M 在變量 a 中")
print (r'\n')
print (R'\n')
輸出結(jié)果:
a + b 輸出結(jié)果: HelloPython
a * 2 輸出結(jié)果: HelloHello
a[1] 輸出結(jié)果: e
a[1:4] 輸出結(jié)果: ell
H 在變量 a 中
M 不在變量 a 中
\n
\n
Python字符串格式化
#!/usr/bin/python3
print ("我叫 %s 今年 %d 歲!" % ('小明', 10))
python字符串格式化符號(hào):
| 符 號(hào) | 描述 |
|---|---|
| %c | 格式化字符及其ASCII碼 |
| %s | 格式化字符串 |
| %d | 格式化整數(shù) |
| %u | 格式化無(wú)符號(hào)整型 |
| %o | 格式化無(wú)符號(hào)八進(jìn)制數(shù) |
| %x | 格式化無(wú)符號(hào)十六進(jìn)制數(shù) |
| %X | 格式化無(wú)符號(hào)十六進(jìn)制數(shù)(大寫) |
| %f | 格式化浮點(diǎn)數(shù)字,可指定小數(shù)點(diǎn)后的精度 |
| %e | 用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù) |
| %E | 作用同%e,用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù) |
| %g | %f和%e的簡(jiǎn)寫 |
| %G | %f 和 %E 的簡(jiǎn)寫 |
| %p | 用十六進(jìn)制數(shù)格式化變量的地址 |
Python format 格式化函數(shù)
Python2.6 開始,新增了一種格式化字符串的函數(shù) str.format(),它增強(qiáng)了字符串格式化的功能。
基本語(yǔ)法是通過(guò) {} 和 : 來(lái)代替以前的 % 。
format 函數(shù)可以接受不限個(gè)參數(shù),位置可以不按順序。
占位符格式化:
>>>"{} {}".format("hello", "world") # 不設(shè)置指定位置,按默認(rèn)順序
'hello world'
>>> "{0} {1}".format("hello", "world") # 設(shè)置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 設(shè)置指定位置
'world hello world'
指定參數(shù)格式化:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print("網(wǎng)站名:{name}, 地址 {url}".format(name="菜鳥教程", url="www.runoob.com"))
# 通過(guò)字典設(shè)置參數(shù)
site = {"name": "菜鳥教程", "url": "www.runoob.com"}
print("網(wǎng)站名:{name}, 地址 {url}".format(**site))
# 通過(guò)列表索引設(shè)置參數(shù)
my_list = ['菜鳥教程', 'www.runoob.com']
print("網(wǎng)站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必須的
也可以向 str.format() 傳入對(duì)象:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class AssignValue(object):
def __init__(self, value):
self.value = value
my_value = AssignValue(6)
print('value 為: {0.value}'.format(my_value)) # "0" 是可選的