基本数据类型

数字类型及操作

整数类型

与数学中整数的概念一致
- 可正可负,没有取值范围限制
- pow(x,y)函数:计算 x y ,整数无限制,想算多大算多大

>>> pow(2,100)
1267650600228229401496703205376
>>> pow(2,pow(2,15))
1415461031044954789001553……

4种进制表示形式
- 十进制:1010, 99, -217
- 二进制,以0b或0B开头:0b010, -0B101
- 八进制,以0o或0O开头:0o123, -0O456
- 十六进制,以0x或0X开头:0x9a, -0X89

浮点数类型

- 带有小数点及小数的数字
- 浮点数取值范围和小数精度都存在限制,但常规计算可忽略
- 取值范围数量级约-10^307 至10^308 ,精度数量级10^-16

0.1  53位二进制表示小数部分,约10 -16

0.00011001100110011001100110011001100110011001100110011010 (二进制表示)

0.1000000000000000055511151231257827021181583404541015625 (十进制表示)

0.1 + 0.2  二进制表示小数,可以无限接近,但不完全相同

结果无限接近0.3,但可能存在尾数

- round(x, d):对x四舍五入,d是小数截取位数
- 浮点数间运算与比较用round()函数辅助
- 不确定尾数一般发生在10^-16 左右,round()十分有效

复数类型

 

数值运算操作符

 

数字类型的关系

类型间可进行混合运算,生成结果为"最宽"类型
- 三种类型存在一种逐渐"扩展"或"变宽"的关系:
  整数 -> 浮点数 -> 复数
  - 例如:123 + 4.0 = 127.0 (整数+浮点数 = 浮点数)

数值运算函数

字符串类型及操作

字符串类型的表示

由0个或多个字符组成的有序字符序列
- 字符串由一对单引号或一对双引号表示
  "请输入带有符号的温度值: " 或者 'C'

- 字符串是字符的有序序列,可以对其中的字符进行索引
  "请" 是 "请输入带有符号的温度值: " 的第0个字符

- 由一对单引号或双引号表示,仅表示单行字符串
  "请输入带有符号的温度值: " 或者 'C'
- 由一对三单引号或三双引号表示,可表示多行字符串
  ''' Python
        语言 '''

使用[ ]获取字符串中一个或多个字符
- 索引:返回字符串中单个字符 <字符串>[M]
  "请输入带有符号的温度值: "[0] 或者 TempStr[-1]
- 切片:返回字符串中一段字符子串 <字符串>[M: N]
  "请输入带有符号的温度值: "[1:3] 或者 TempStr[0:-1]

字符串切片高级用法
使用[M: N: K]根据步长对字符串切片
- <字符串>[M: N],M缺失表示至开头,N缺失表示至结尾
  "〇一二三四五六七八九十"[:3] 结果是 "〇一二"
- <字符串>[M: N: K],根据步长K对字符串切片
  "〇一二三四五六七八九十"[1:8:2] 结果是 "一三五七"
  "〇一二三四五六七八九十"[::-1] 结果是 "十九八七六五四三二一〇"

字符串的特殊字符
转义符 \
- 转义符表达特定字符的本意
  " 这里有个双引号(\")" 结果为 这里有个双引号(")
- 转义符形成一些组合,表达一些不可打印的含义
  "\b"回退 "\n"换行(光标移动到下行首) "\r" 回车(光标移动到本行首)

字符串操作符

获取星期字符串

weekStr = "星期一星期二星期三星期四星期五星期六星期日"
weekId = eval(input("请输入星期数字(1-7):"))
pos = (weekId - 1 ) * 3
print(weekStr[pos: pos+3])
字符串处理函数

Python字符串的编码方式 Unicode编码

- 统一字符编码,即覆盖几乎所有字符的编码方式
- 从0到1114111 (0x10FFFF)空间,每个编码对应一个字符
- Python字符串中每个字符都是Unicode编码字符

字符串处理方法

字符串类型的格式化

 

time库基本介绍

time库包括三类函数
- 时间获取:time() ctime() gmtime()
- 时间格式化:strftime() strptime()
- 程序计时:sleep(), perf_counter()

时间获取

时间格式化

程序计时应用

"文本进度条"问题分析

简单的开始
import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    print("{:^3.0f}%[{}->{}]".format(c,a,b))
    time.sleep(0.1)
print("------执行结束------")

打印输出
------执行开始------
 0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
------执行结束------
"文本进度条"单行动态刷新

单行动态刷新 刷新的关键是 \r
- 刷新的本质是:用之后打印的字符覆盖之前的字符
- 不能换行:print()需要被控制
- 要能回退:打印后光标退回到之前的位置 \r

import time
for i in range(101):
  print("\r{:3}%".format(i), end="")
  time.sleep(0.1)
"文本进度条"实例完整效果
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,'-'))

转载于:https://www.cnblogs.com/Robin5/p/11367142.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值