PYTHON学习笔记-3(基本数据类型)

5.基本数据类型

5.1数字类型及操作

5.1.1整数   - 与数学中整数概念一致,没有取值范围限制,可正可负

-pow(x,y)函数:计算 xy,想算多大算多大

-四种进制表示形式:

十进制:1010, 99, -217

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

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

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

5.1.2浮点数  - 带有小数点及小数的数字

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

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

-浮点数间运算存在不确定尾数,不是bug:

>>> 0.1+0.3

0.4

>>> 0.1+0.2

0.30000000000000004

加粗为不确定尾数,故需要注意的:

>>> 0.1 + 0.2 == 0.3     False

>>> round(0.1+0.2, 1) == 0.3     True

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

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

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

5.1.3复数  -  z = 1.23e-4+5.6e+89j

- 实部: z.real 获得实部

- 虚部: z.imag 获得虚部

5.1.4数值运算操作符

操作符及使用

描述

x + y

加,x与y之和

x – y

减,x与y之差

x * y

乘,x与y之积

x / y

除,x与y之商 10/3结果是3.3333333333333335

x // y

整数除,x与y之整数商 10//3结果是3

+ x  

x本身

- y

X的负值

x%y

余数,模运算 10%3结果是1

X**y

幂运算,x的y次幂,x^y

当y是小数时,开方运算10**0.5结果是

二元操作符有对应的增强赋值操作符:

增强操作符及使用

描述

 

 

x op= y

 

即 x = x op y,其中,op为二元操作符

x += y  x -= y  x *= y  x /= y  x //= y  x %= y  x **= y

>>> x = 3.1415

>>> x **= 3 # 与 x = x **3 等价

31.006276662836743

类型间可进行混合运算,生成结果为"最宽"类型 :整数 -> 浮点数 -> 复数

例如:123 + 4.0 = 127.0 (整数+浮点数 = 浮点数)

5.1.5数值运算函数

abs(x):绝对值,x的绝对值 abs(-10.01) 结果为 10.01

divmod(x,y):商余,(x//y, x%y),同时输出商和余数 divmod(10, 3) 结果为 (3, 1)

pow(x, y[, z]):幂余,(x**y)%z,[..]表示参数z可省略 pow(3, pow(3, 99), 10000) 结果为 4587

round(x[, d]):四舍五入,d是保留小数位数,默认值为0 round(-10.123, 2) 结果为 -10.12 max(x1,x2, … ,xn):最大值,返回x1,x2, … ,xn中的最大值,n不限 max(1, 9, 5, 4, 3) 结果为 9 min(x1,x2, … ,xn):最小值,返回x1,x2, … ,xn中的最小值,n不限 min(1, 9, 5, 4, 3) 结果为 1

int(x):将x变成整数,舍弃小数部分 int(123.45) 结果为123;int("123") 结果为123

float(x):将x变成浮点数,增加小数部分 float(12) 结果为12.0;float("1.23") 结果为1.23 complex(x):将x变成复数,增加虚数部分 complex(4) 结果为 4 + 0j

5.2示例3:天天向上的力量Q4

工作日模式(工作日1-5每天努力提高a%,周末6-7每天下降1%)

365模式(每天努力提高1%)

问a为几时,工作日模式与365模式的提高程度相等?

#DayDayUpQ4.py

def dayUP(df):              #def保留字用于定义函数

    dayup = 1

    for i in range(365):

        if i %7 in [6,0]:

            dayup = dayup*(1-0.01)

        else:

            dayup = dayup*(1+df)

    return dayup

dayfactor = 0.01

while dayUP(dayfactor) < 37.78:

    dayfactor += 0.001

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

结果:工作日的努力参数是:0.019

5.3字符串类型及操作

5.3.1字符串类型的表示

字符串有2类 共4种表示方法 :

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

- 由一对三单引号或三双引号表示,可表示多行字符串 ''' Python 语言 '''

Q:- 如果希望在字符串中包含双引号或单引号呢?

'这里有个双引号(")' 或者 "这里有个单引号(')"

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

''' 这里既有单引号(')又有双引号 (") '''

字符串的序号:可参见笔记1:

正向递增序号(头从0开始递增) 和 反向递减序号(尾部-1开始递减)

字符串的使用:

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

"请输入带有符号的温度值: "[0] 或者 TempStr[-1]

- 切片:返回字符串中一段字符子串 <字符串>[M: N] (表示字符串序号从M到N,但不包含序号N的字符)

例如:"请输入带有符号的温度值: "[1:3]  或例如: TempStr[0:-1]表示除去最后一位的其他位

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

例"〇一二三四五六七八九十"[:3] 结果是 "〇一二"

-字符串切片高级用法:使用<字符串>[M: N: K]根据步长对字符串切片

例"〇一二三四五六七八九十"[1:8:2] 结果是 "一三五七"

"〇一二三四五六七八九十"[::-1] 结果是 "十九八七六五四三二一〇"

字符串的特殊符号:

- 转义符表达特定字符的本意

"这里有个双引号(\")" 结果为:这里有个双引号(")

- 转义符形成一些组合,表达一些不可打印的含义

  "\b"回退 "\n"换行(光标移动到下行首) "\r" 回车(光标移动到本行首)

5.3.2字符串操作符

操作符及使用

描述

x + y

连接两个字符串x和y

n * x 或 x * n

复制n次字符串x

x in s

如果x是s的子串,返回True,否则返回False

示例:获取星期字符串

输入:1-7的整数,表示星期几

输出:输入整数对应的星期字符串

例如:输入3,输出 星期三

#WeekNamePrintV1.py

weekStr = "星期一星期二星期三星期四星期五星期六星期日"

weekId = eval(input("请输入星期数字(1-7):"))

pos = (weekId – 1 ) * 3      #pos为星期?的首位

print(weekStr[pos: pos+3])

#WeekNamePrintV2.py

weekStr = "一二三四五六日"

weekId = eval(input("请输入星期数字(1-7):"))

print("星期" + weekStr[weekId-1])

5.3.3字符串处理函数

len(x):长度,返回字符串x的长度

len("一二三456") 结果为 6

str(x):任意类型x所对应的字符串形式

str(1.23)结果为"1.23"   str([1,2])结果为"[1,2]"

hex(x) 或 oct(x) :整数x的十六进制或八进制小写形式字符串

hex(425)结果为"0x1a9"  oct(425)结果为"0o651"

chr(u):x为Unicode编码,返回其对应的字符

ord(x):x为字符,返回其对应的Unicode编码

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

- 统一字符编码,即覆盖几乎所有字符的编码方式

- 从0到1114111 (0x10FFFF)空间,每个编码对应一个字符

- Python字符串中每个字符都是Unicode编码字符

示例:

>>> "1 + 1 = 2 " + chr(10004)  '1 + 1 = 2 ✔

>>> "这个字符♉的Unicode值是:" + str(ord("♉"))    '这个字符♉的Unicode值是: 9801

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

打印12星座:

5.3.4字符串处理方法

方法是什么:- "方法"特指<a>.<b>()风格中的函数<b>(),本身也是函数。

一些以方法形式提供的字符串处理功能:

 

5.3.5字符串类型的格式化

- 字符串格式化使用.format()方法,用法如下: <模板字符串>.format(<逗号分隔的参数>)

示例:

5.3.6小结:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值