北理慕课——Python基本数据类型

本文介绍了Python中的数字类型,包括整数、浮点数和复数,详细讲解了它们的表示形式、运算操作和函数。同时,文章通过实例探讨了数值运算的规律,如每天进步或退步的累计效果。此外,还简要提到了字符串类型的基础知识和time库的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数字类型及操作

1.1 整数类型:与数学中整数的概念一致。可正可负,没有取值范围限制

                · pow(x,y) 函数:计算x^y

                · 整数类型的4种进制表示形式:

                       十进制:1020,99,-217

                       二进制:以0b或0B开头,0b010,-0B101

                       八进制:以0o或0O开头,0o123,-0O456

                       十六进制:以0x或0X开头,0x9a,-0X89

 

1.2 浮点数类型:与数学中实数的概念一致

                · 带有小数点及小数的数字

                ·  浮点数取值范围和小数精度都存在限制,但常规计算可忽略

                ·  取值范围数量级约10^-307 至 10^308,精度数量级10^-16

                ·  浮点数间运算存在不确定尾数,由于计算机内部机制导致,不是bug

                ·  round(x,d):对 x 四舍五入,d 是小数截取尾数

                ·  浮点数间运算与比较用round()函数辅助

                ·  不确定尾数一般发生在10^-16左右,round()十分有效

                ·  使用字母e或E作为幂的符号,以10为基数,格式: <a>e<b>  表示a*10^b

 

1.3 复数类型:与数学中复数的概念一致

          例:  z = 1.23e-4+5.6e+89j

                   z.real获得实部           z.imag获得虚部

 

1.4 数值运算操作符

        数字类型的关系:类型间可进行混合运算,生成结果为"最宽"类型

        整数是特殊的浮点数,浮点数是特殊的复数

 

1.5 数值运算函数

 

实例:天天向上的力量

第一问:一年365天,每天进步1‰,累计进步多少呢?一年365天,每天退步1‰,累计剩下多少呢?

#DayDayUpQ1.py 
dayup = pow(1.001, 365) 
daydown = pow(0.999, 365) 
print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))

第二问:一年365天,每天进步5‰或1%,累计进步多少呢?一年365天,每天退步5‰或1%,累计剩下多少呢?

#DayDayUpQ2.py 
dayfactor = 0.005   #使用变量的好处,一处修改即可
dayup = pow(1+dayfactor, 365) 
daydown = pow(1-dayfactor, 365) 
print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))

第三问:一年365天,一周5个工作日,每天进步1%,一周2个休息日,每天退步1%。这种工作日的力量,如何呢?

#DayDayUpQ3.py 
dayup = 1.0 
dayfactor = 0.01 
for i in range(365):           #采用循环模拟365天的过程 抽象 + 自动化
    if i % 7 in [6,0]: 
        dayup = dayup*(1-dayfactor)
    else: 
        dayup = dayup*(1+dayfactor)
print("工作日的力量:{:.2f} ".format(dayup))

 

第四问:工作日模式要努力到什么水平,才能与每天努力1%一样? - A君: 一年365天,每天进步1%,不停歇 - B君: 一年365天,每周工作5天休息2天,休息日下降1%,要多努力呢?

#DayDayUpQ4.py 
def dayUP(df): 
    dayup = 1 
    for i in range(365):               #根据df参数计算工作日力量的函数 参数不同
        if i % 7 in [6,0]:             #这段代码可共用 def保留字用于定义函数
            dayup = dayup*(1 - 0.01)
        else: 
            dayup = dayup*(1 + df) 
    return dayup

dayfactor = 0.01 
while dayUP(dayfactor) < 37.78:   #while保留字判断条件是否成立 条件成立时循环执行
dayfactor += 0.001

print("工作日的努力参数是:{:.3f} ".format(dayfactor))

 

2.字符串类型及操作

2.1 字符串类型的表示

由一对单引号或双引号表示,仅表示单行字符串

eg: 'adfvsad'  "vfdvfdva"

由一对三单引号或三双引号表示,可表示多行字符串

eg: ''' sfdsf

                  f dsf '''

如果希望在字符串种包含双引号或单引号?

'' dfsfsafd ' dsfds ''  or  ' ds fdsa '' dsfa '

如果希望在字符串中既包含单引号又包含双引号?

''' dsafdsaf  'dfs dsafd '' dsfsfsfd '''

 

字符串的使用:

索引:返回字符串中单个字符 格式:   < 字符串 >[ M ]

切片:返回字符串中一段字符字串从第M个字符到N-1个字符  格式:  < 字符串 >[ M:N ]

切片的高级用法:

< 字符串 >[ M : N ]     M缺失表示至开头,N缺失表示至结尾

< 字符串 >[ M : N : K ]   根据步长 K 对字符串切片

 

字符串的特殊字符

转义符 \   转义符表达特定字符的本意,通过加 \ 可以输出 \ 后的字符

转义符形成一些特殊组合,表示一些不可打印的含义 eg: \b 表示回退  \n 表示换行  \r表示回车

 

2.2 字符串操作符

由0个或多个字符组成的有序字符序列

2.3 字符串处理函数

一些以函数形式提供的字符串处理功能

Python使用的是Unicode编码

有趣的例子:输出十二星座图案代码

for i in range(12):
    print(chr(9800+i),end='  ')

 

2.4 字符串处理方法

 

2.5 字符串类型的格式化

字符串格式化使用.format()方法,用法如下:

    < 模板字符串 >.format(< 逗号分割的参数 >)

 

3.模块time库的使用

time库是python中处理时间的标准库

import time

time.<b>( )

time库中包括三类函数:

时间获取:time() ctime() gmtime()

时间格式化: strftime() strptime()

程序计时:  sleep() perf_counter()

 

3.1 时间获取

 

3.2 时间格式化

 

3.3 程序计时

实例:文本进度条

采用字符串方式打印可以动态变化的文本进度条,进度条需要能在一行中逐渐变化

刷新:在print()中使用 \r 打印后让光标退回到之前的位置

#简单的文本进度条
import time
for i in range(101):
    print("\r{:>3}%".format(i),end='')
    time.sleep(0.1)
#文本进度条
import time
scale = 50
s = time.perf_counter() 
print("执行开始".center(scale//2,'-'))

for i in range(scale + 1):
    a = '*'* i
    b = '.'* (scale - i)
    n = (i / scale) * 100
    dur = time.perf_counter() - s
    print("\r{:^3.0f}%[{}->{}{:.2f}".format(n,a,b,dur),end='')
    time.sleep(0.1)

print("\n"+"执行结束".center(scale//2,'-'))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值