文章目錄
1.數字類型及操作
1.1 整數類型
(1)與數學中的整數概念一樣
- 可正可負,沒有取值範圍限制
pow(x,y)
函數:計算x的y次方。比如pow(2,100),就是2的100次方
(2)4種進製表示形式
- 十進制:1010,99
- 二進制:以0B或0b開頭:0B1110,0b11
- 八進制:以0o或0O開頭:0O123,-0o456
- 十六進制:以0x或0X開頭:0X89,-0x56
1.2 浮點數類型
(1)與數學中實數概念一樣
- 帶有小數點及小數的數字
- 浮點數取值範圍和小數精度都存在限制,但常規計算可忽略
- 取值範圍數量級約爲-10308至10308,精度數量級10-16
(2)浮點數間運算存在不確定位數,不是bug,原因如下:
(3)round函數:解決浮點數尾數帶來的計算問題:
>>>0.1 + 0.2 == 0.3
False
>>>round(0.1 + 0.2, 1) == 0.3
True
這裏引出round函數
round(x,d)
:對x四捨五入,d是小數截取位數
(4)科學計數法
- 使用字母e或E作爲冪的符號,以10爲基數,格式如下:
<a>e<b>
表示a10b。4.3e-3即4.310-3=0.0043
1.3 複數類型
(1)與數學的複數概念一樣
- 定義j=√(-1),以此爲基礎,構建數學體系
- -a+bj被稱爲複數,其中a是實部,b是虛部
1.4 數值運算操作符
(1)運算法則
與數學中的運算符一樣,都有加減乘除,有區別的是
x/y
,除法產生的結果是浮點數,10/3結果是3.3333333333333x//y
整數除,x與y之整數商,10//3結果是3
(2)操作符號
+x
,x本身-y
,y的負值x % y
,餘數,模運算,10%3結果是1x**y
,①冪運算,x的y次冪,xy②當y是小數時,開方運算,10**0.5=√10
(3)二元操作符對應的增強賦值操作符
(4)數字類型的關係
類型間可以進行混合運算,生成結果爲“最寬”類型
- 三種類型存在一種逐漸“擴展“或”最寬”的關係:
整數 -> 浮點數 ->複數
- 舉個例子:123 + 4.0 = 127.0 (整數 + 浮點數 = 浮點數)
1.5 九個數值運算函數
2.字符串類型及操作
2.1 字符串類型的表示
(1)字符串有2類共4種表示方法
- 由一對單引號或雙引號表示,僅表示單行字符串,如
"請輸入溫度值:" 或者 'c'
- 由一對三單引號或三雙引號表示,可表示多行字符串
'''python
語言'''
- 如果希望在字符串中包含雙引號或單引號呢?
'這裏有個雙引號(")' 或者 "這裏有個單引號(')"
- 如果希望在字符串中既包括單引號又包括雙引號呢?
'''這裏既有單引號(')又有雙引號(")'''
(2)字符串的序號
(3)字符串的使用
使用[ ]獲取字符串中的一個或多個字符
-
索引:返回字符串的單個字符
<字符串>[M]
舉例:"請輸入帶有符號的溫度值:"[0]
或者TempStr[-1]
-
切片:返回字符串中的一段字符子串
<字符串>[M,N]
舉例:"請輸入帶有符號的溫度值:"[1,3]
或者TempStr[0:-1]
(4)字符串切片的高級用法
使用[M:N:K]根據步長對字符串切片
<字符串>[M:N]
,M缺失表示至開頭,N缺失表示至結尾。
舉例:“012345678”[:3]
結果是"012"<字符串>[M:N:K]
,根據步長K對字符串切片,它指的是從字符串第一位置開始,到第N位置前結束(不含N),以步長爲K獲取字符。
舉例:"01234567"[1:8:2]
結果是"135"
舉例:"01234567"[::-1]
結果是"76543210"
(5)字符串的特殊字符
- 轉義符\ : 表達特定字符的本意
舉例:"這裏有個雙引號(\")"
結果爲 這裏有個雙引號(") "\b"回退
"\n"換行
"\r"回車
2.2 三個字符串操作符
2.3 五個字符串處理函數
2.4 八個字符串處理方法
2.4 字符串類型的格式化
字符串格式化是用.format()方法,用法如下:
<模板字符串>.format(<逗號分隔的參數>)
這裏涉及到槽的概念,槽默認是一一對應的
當然也可以通過序號指定對應(注意從0開始),看下面的例子:
我們也可以對槽內部數據進行格式化配置:
{<參數序號>:<格式控制標記>}
看兩個例子:
//這個例子針對前三個
>>> "{0:=^20}".format("PYTHON")
'=======PYTHON======='
>>> "{0:*>20}".format("bit")
'*****************bit'
>>> "{:10}".format("bit")
'bit '
//這個例子針對後三個
>>> "{0:,.2f}".format(12345.6789)
'12,345.68'
>>> "{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
'110101001,Ʃ,425,651,1a9,1A9'
>>> "{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
3.time庫的使用
3.1 時間獲取
3.2 時間格式化
- 格式化:類似字符串格式化,需要有展示模板
- 展示模板由特定的格式化控制符組成
- 實現時間格式化的方法:
strftime(tpl,ts)
方法
下面是格式化控制信息:
strptime(str,tpl)
方法:將一段字符串變成時間
3.3 程序計時應用
- 程序計時指的是測量起止動作所經歷的時間歷程
- 測量時間:
perf_counter()
函數
- 產生時間:
sleep()
函數
4.實例:文本進度條
(1)概述
- 採用字符串方法打印可以動態變化的文本進度條
- 進度條需要能在一行中逐漸變化
(2)單動態刷新
- 刷新的本質:用後打印的字符覆蓋之前的字符
- 不能換行:prinf()需要被控制
- 要能後退:打印後光標退回之前的位置 \r
(3)代碼與效果
#textProbar.py
import time
scale = 50
print("執行開始".center(scale//2, "-"))
start = time.perf_counter()
for i in range(scale+1):
a = '*' * i
b = '.' * (scale - i)
c = (i/scale)*100
dur = time.perf_counter() - start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')
time.sleep(0.1)
print("\n"+"執行結束".center(scale//2,'-'))
運行效果: