字符串格式的方法%s、format和python3.6新特性f-string和類型註解

複製代碼
1、%s
msg = '我叫%s,今年%s,性別%s' %('帥哥',18,'')
print(msg)  # 我叫帥哥,今年18,性別男


2、format
# 三種方式:
# 第一種:按順序接收參數
s1 = '我叫{},今年{},性別{}'.format('帥哥','18','')
print(s1)   # 我叫帥哥,今年18,性別男


# 第二種:按索引接收參數
s2 = '我叫{0},今年{1},性別{2},我依然叫{0}'.format('帥哥', '18', '')
print(s2)  # 我叫帥哥,今年18,性別男,我依然叫帥哥


# 第三種:按關鍵字接收參數
s3 = '我叫{name},今年{age},性別{sex}'.format(age='18', name='帥哥', sex='')
print(s3)  # 我叫帥哥,今年18,性別男


3、f-string
1、介紹
f-string(formatted string literals):格式化字符串常量,是Python3.6新引入的一種字符串格式化方法,使格式化字符串的操做更加簡便。


2、語法
f'xxx' 或 F'xxx'  且以大括號 {} 代表被替換的字段,{}裏面能夠是字符串或者表達式


三、簡單替換字符串:{'字符串'}
name = '小白'
msg = f'我叫{name},今年{18}歲,性別{"男"}'
print(msg)  # 我叫小白,今年18歲,性別男
注意:若f使用的是單引號,那麼裏面的{}如果字符串則應該用雙引號,反之同樣


4、計算表達式:{表達式}
ret = f"1 add 2 is {1+2}"
print(ret)  # 1 add 2 is 3


5、lambda表達式:{(lambda表達式) (參數)}
注意:
lambda表達式的 : 會被f-string誤認爲是表達式與格式描述符之間的分隔符,
爲避免歧義,須要將lambda表達式置於括號 () 內:

func = f"my_add result:{(lambda x,y:x+y) (1,2)}"
print(func)  # my_add result:3

若不加括號則報錯:
func = f"my_add result:{lambda x,y:x+y (1,2)}"
print(func)


  File "<fstring>", line 1
    (lambda x,y)
               ^
SyntaxError: unexpected EOF while parsing


六、f-string用法很強大,這裏只是寫出了一些經常使用的方法,感興趣能夠本身去研究其餘用法




4、類型註解
Python是一門動態語言,變量以及函數的參數是不區分類型。好比咱們要實現一個數字相加的函數:
def my_add(x, y):
  return x + y
可是這樣的壞處是,別人不知道你要作的是數字相加的函數,別人輸入字符串,同樣是能夠獲得字符串的拼接的


因而 Python 3 提供了一個新的特性:
類型註解:
def my_add(x:int, y:int) -> int:
  return x + y

語法:
參數:類型 指定函數的參數類型
-> 類型 指定函數的返回值類型。


注意:Python 解釋器並不會由於這些註解而提供額外的校驗,
也就是說,這些類型註解加不加,對你的代碼來講沒有任何影響,我同樣能夠輸入字符串的。

只是這麼作的好處是:
1.讓別人看得更明白
2.當你輸入str和float 類型的參數時,雖然同樣不會報錯能夠得出結果,可是IDE工具會有高亮提示
複製代碼
相關文章
相關標籤/搜索