python(Mooc)--基本數據類型

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.3333333333333
  • x//y整數除,x與y之整數商,10//3結果是3

(2)操作符號

  • +x,x本身
  • -y,y的負值
  • x % y,餘數,模運算,10%3結果是1
  • x**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,'-'))

運行效果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章