数字类型及操作
整数类型
四种进制表示形式:
十进制:1010,99,-217
二进制,以0b或0B开头:0b010,-0B010
八进制,以0o或0O开头:0o123,-0O456
十六进制,以0x或0X开头:0x9a,-0X89
浮点数类型
浮点数之间的运算存在不确定位数,但是这不是bug,是二进制和十进制的转换导致。
round(x,d):对x四舍五入,d是小数截取位数
浮点数间运算与比较用round()函数辅助
不确定位数一般发生在10-16,因此round()十分有效
- 使用字母e或E来表示科学计数法:4.3e-3 —> 0.0043
复数类型
z=1.23e-4+5.6e+89j
实部:1.23e-4 可以用z.real获得实部
虚部:5.6e+89j 可以用z.imag获得虚部
数值运算操作符
- ‘/‘表示除法 ‘//‘表示整除
- ‘**’表示幂运算
数值运算函数
函数 | 描述 |
---|---|
abs(x) | 取绝对值 |
divmod(x,y) | 同时输出商和余数 |
pow(x,y[,z]) | 等价于(x**y)%z,参数z可以省略 |
round(x[,d]) | 四舍五入,d是保留小数的位数 |
max(x1,x2,x3……xn) | 返回最大值,n不限 |
min(x1,x2,x3……xn) | 返回最小值,n不限 |
int(x) | 将x变成整数,舍弃小数部分 |
float(x) | 将x变成浮点数,增加小数部分 |
complex(x) | 将x变成复数,增加虚数部分 |
实例:天天向上的力量
题目描述
工作日模式要努力到什么水平,才能与每天努力1%一样?
-A君: 一年365天,每天进步1%,不停歇
-B君: 一年365天,每周工作5天休息2天,休息日下降1% ,要多努力呢?
每周工作5天休息2天,计算工作日的努力参数是多少才能与每天努力1%一样。
要求如下:
(1) 一年365天,以第0天的能力值为基数,记为1.0;
(2) 当好好学习时,能力值相比前一天提高1%;当没有学习时,由于遗忘等原因能力值相比前一天下降1%;
输出
输出结果格式如下:(其中结果保留小数点后三位,冒号后有一个空格)
工作日的努力参数是: 0.019
参考代码
def dayUP(df):
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))
工作日模式,每天要努力到1.9%,相当于365模式每天1%
采用{:.3f}将输出数字变成三位小数点表示时,即使数学上该输出值是整数,也会按照小数方式输出。
字符串类型及操作
字符串类型的表示
表示方法:2类4种:一对单引号、一对双引号、一对三单引号、一对三双引号
字符串的序号:正向递增序号(从0开始)、反向递减序号(从-1开始)
索引:s[n]
切片:s[m:n] (m和n可以缺失,m缺失表示至开头,n缺失表示至结尾)
s[m:n:k] (根据步长k对字符串切片)
“123456789”[::-1]结果是:”987654321”
字符串操作符
描述 | 操作符及使用 |
---|---|
x+y | 连接两个字符串x和y |
n x 或 x n | 复制n次字符串x |
x in s | 如果x是s的字串,返回True,否则返回False |
字符串处理函数
函数及使用 | 描述 |
---|---|
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编码 |
字符串处理方法
方法及使用 | 描述 |
---|---|
str.lower() 或 str.upper() | 返回字符串的副本,全部字符小写大写 |
str.split(sep=None) | 返回一个列表,由str根据sep被分割的部分组成 “A,B,C”.split(“,”)结果为[‘A’,’B’,’C’] |
str.count(sub) | 返回字串sub在str中出现的次数 |
str.replace(old,new) | 返回字符串str副本,所有old字串被替换为new |
str.center(width[,fillchar]) | 字符串str根据宽度width居中,fillchar可选 |
str.strip(chars) | 从str中去掉在其左侧和右侧chars中列出的字符 “= python= “.strip(“ =np”)结果为”ytho” |
str.join(iter) | 在iter变量除最后元素外每个元素后增加一个str “,”.join(“12345”)结果为”1,2,3,4,5”、主要用于字符串的分隔 |
字符串类型的格式化
字符串格式化使用.format()方法,用法如下:
<模板字符串>.format(<逗号分隔的参数>)
.png)
.png)
.png)
.png)
.png)