網站首頁 編程語言 正文
1. 整數、浮點數和復數
Python2中區分整型int、長整型long
Python3中只有統稱為 整型int
浮點數
即帶有小數點的數字,因為浮點數用二進制表示的,小數部分有時是無法表示的。是不精確的
float組成: 由整數位,小數點,小數位組成,也可以用科學計數法表示
Decimal
是精確的
from decimal import Decimal #從decimal 包導入Decimal 類 mydec = Decimal("3.22") #將字符串轉換成decimal類型 print(mydec, type(mydec)) mydec2 = Decimal(3.22) #浮點型3.22 是不精確的,轉換成decimal就是精確的 print(mydec2, type(mydec)) 結果:3.22 <class 'decimal.Decimal'> 3.220000000000000195399252334027551114559173583984375 <class 'decimal.Decimal'>
復數
dir(a) 查看屬性
a.imag 獲取虛部,無論定義的時候是整型還是浮點型最終都會轉換成浮點型
a.real 獲取實部
>>> a = 4 + 5j >>> a.imag 5.0 >>> a.real 4.0
2.進制轉換
進制數字類型
二進制、八進制、十六進制都是整型
>>> a=0b11 二進制 binary >>> type(a) <class 'int'> >>> b=0o11 八進制 octonary >>> type(b) <class 'int'> >>> c=0x11 十六制 hexadecimal >>> type(c) <class 'int'>
整型進制操作
整型轉換成2、8、16進制,得到的值是字符串類型
>>> num = 100 >>> bin(num) 整型轉換成二進制,()里面只能是整型 任意進制轉2進制, 接收一個int, 返回一個str '0b1100100' >>> oct(num) 任意進制轉8進制, 接收一個int, 返回一個str '0o144' >>> hex(num) 任意進制轉16進制, 接收一個int, 返回一個str '0x64'
>>> int (0o11) 接收整型 9 >>> int("0o11",base=8) 接收整型,但要指定幾進制 9 >>> int("11") 接收整型,可以不指定,因為它是一個數字 11
3. 字符串
3.1 轉義字符
r標志:是輸出原始字符串,不轉義
3.2 字符串取值
下標取值法
從左0123456
從右-1 -2 -3 -4 -5
>>> a = 'abcdefghijklmnopq' >>> a[0] 'a' >>> a[-8] 'j'
切片取值法
str[start:end:step] 左閉右開 step 為正數 從左至右 step 為負數 從右至左 str[2:] 從左至右 第三個數開始 str[:7] 從左至右到第七位 str[::-1] 從右至左 步長為1 str[4::-2] 從第五個數開始從右至左 步長為2
>>> a = 'abcdefghijklmnopq' 一旦定義不可改變 >>> a[2:5] 'cde'
4. 字符串運算與轉換
>>> str1="qqq" >>> str2 = "lll" >>> str1+str2 # 字符串拼接 'qqqlll' >>> str3="abc" >>> str3*3 'abcabcabc'字符串復制 >>> result = str(100) # int轉換成字符串 >>> type(result) <class 'str'> >>> result '100'
5. 字符串的常用方法
判斷系列
演示:
>>> str7= "helloabc xx zz" >>> str7.startswith("abc") False >>> str7.startswith("abc",5) True >>> str7.startswith("abc",5,7) False >>> str7.startswith("abc",5,8) True
查找統計系列
len不是字符串的屬性方法,不能通過.len的方式去計算長度
字符串轉換類
>>> str7 'helloabc xx zz' >>> str7.upper() 轉大寫 'HELLOABC XX ZZ' >>> str7.title() 轉標題格式 'Helloabc Xx Zz' >>> str9 = str7.title().swapcase() 大小寫互換 >>> str9 'hELLOABC xX zZ' >>> str9 = "a b c d e f" >>> str9.split() 默認按空格切割 ['a', 'b', 'c', 'd', 'e', 'f'] >>> str10 = "a#b#c#d#e#f#g#h" >>> str10.split("#") ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] >>> str11 = str10.split("#") >>> str11 ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] >>> "*".join(str11) 'a*b*c*d*e*f*g*h'
+和join的效率問題
+ 拼接效率比join低。+拼接,每一次出現都會在內存中開辟一個新的空間,所以效率低
6 . 字符串格式化
%格式化
語法格式:%[(name)][flags][width].[precision]typecode
- (name):命名
- flags: +,-,’ '或0。
+表示右對齊;-表示左對齊;
’ '為一個空格,表示在正數的左側填充一個空格,從而與負數對齊,0表示使用0填充。
- width表示顯示寬度
- precision表示小數點后精度
%s 一個蘿卜一個坑,一一對應,不能多也不能少
演示:
結果
format格式化
num1 = 0.1416926 #轉換成百分位 print("%.2f%% " % (num1 * 100))
f格式化
python2不支持這種寫法
print(f"my name is {name},my age is {age}") 結果:my name is sc,my age is 4 print(f"my name is {name},my age is {age:*>10}") 結果:my name is sc,my age is *********4
練習
字符串的拼接方式
請計算出新拼接出來的字符串長度,并取出其中的第七個字符。
a = "字符串拼接1" b = "字符串拼接2" print("方式1:" + a + b) print("方式2:%s%s" % (a, b)) print(f"方式3:{a}{b}") print("方式4:{0}{1}".format(a, b)) c = a + b print("新拼接的字符串長度為:", len(c)) print("第七個字符為:", c[6]) str1 = "8*y*cali*china**it*soft*linux*python" count = str1.count("*") list = str1.split("*") str2 = "".join(list) print("*" * count + str2)
將字符串"8ycalichina**itsoftlinuxpython"里的所有的*
號抽
取出來放到最前面,里面的字符串保持順序不變
str1 = "8*y*cali*china**it*soft*linux*python" count = str1.count("*") list = str1.split("*") str2 = "".join(list) print("*" * count + str2)
7. 字符串拼接
print(“%s %s”%(str1,str2))
>>> str1 = "你好" >>> str2 = "hejin" >>> str1+str2 #方式1:加號拼接 '你好hejin' >>> "".join([str1,str2]) #方式2:join拼接 '你好hejin' >>> print("%s,%s"%(str1,str2)) #方式3:% 占位符 你好,hejin >>> "{},{}".format(str1,str2) #方式4:format() '你好,hejin' >>> "{0},{1}".format(str1,str2) # 方式5 '你好,hejin' >>> "{1},{0}".format(str1,str2) 'hejin,你好' >>> "{a},{b}".format(a=str1,b=str2) # 方式6 '你好,hejin' >>> "{b},{a}".format(a=str1,b=str2) 'hejin,你好' >>> f"{str1},{str2}" # 方式7:f格式化 '你好,hejin'
練習:猜誰是小偷
嫌疑人A、B、C、D的筆錄如下,其中三人為真,一人為假: a:我不是小偷 b:C是小偷 c:小偷肯定是D d:小偷肯定是D
lst = ["a", "b", "c", "d"] for x in lst: if ("a" != x) + ("c" == x) + ("d" == x) + ("d" != x) == 3: print(f"{x}是小偷")
原文鏈接:https://blog.csdn.net/qq_40887651/article/details/120886633
相關推薦
- 2023-06-18 聚星C#數字信號處理工具包頻譜分析的用法_C#教程
- 2023-07-14 react 如何實現富文本編輯器
- 2022-06-14 go語言中的udp協議及TCP通訊實現示例_Golang
- 2022-03-31 nginx平滑重啟和平滑升級的圖文教程_nginx
- 2022-07-21 微信小程序使用vant weapp報錯
- 2023-06-04 pandas.DataFrame?Series排序的使用(sort_values,sort_inde
- 2023-07-05 React通過useContext特性實現組件數據傳遞
- 2022-08-11 淺析k8s中各組件和kube?apiserver通信時的認證和鑒權問題_云其它
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支