整数类型、浮点数类型、复数类型、数值运算操作符
与数学中的整数概念一致
与数学中的实数概念一致
使用字母e或E作为幂的符号,以10为基数,格式如下:
e,表示:
例如:
4.3e-3,,0.0043
9.6E5,,960000.0
如果 ,那么 x 的值是什么?
定义 ,以此为基础,构建数学体系
a+bj 被称为复数,其中,a是实部,b是虚部
z.real 获取实部,z.imag 获取虚部
例:
z = 1.23e-4+5.6e+89j
print(z.real)
# 0.000123
print(z.imag)
# 5.6e+89
x + y | |
---|---|
x - y | |
x * y | |
x / y | 除,10 / 3=3.3333 |
x // y | 整数除,10 / 3 = 3 |
+ x | x 本身 |
x % y | 取余,10 % 3 = 1 |
x ** y | 幂运算,x 的 y 次幂 |
x op= y | 二元操作符 x = x op y |
类型之间可以进行混合运算,生成结果为“最宽”类型
整数->浮点数->复数
例:123+4.0 = 127.0
函数及使用 | 描述 |
---|---|
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 pow(3, pow(3, 99), 10000) 结果为4587 |
round( x[, d] ) | 四舍五入,d是保留小数位数,默认值为0 round(-10.123, 2) 结果为 -10.12 |
max(x1, x2, ..., xn) | 最大值 |
min(x1, x2, ..., xn) | 最小值 |
int( x ) | 将 x 变成整数,舍弃小数部分 |
float( x ) | 将 x 变成浮点数,增加小数部分 float(12) 结果为12.0 float("1.23") 结果为 1.23 |
complex( x ) | 将 x 变成复数,增加虚数部分 complex(4) 结果为 4+0j |
程序大意:小明一年365天每天努力工作,小红则工作日努力,周末休息,则小红在工作日要多努力才能达到和小明努力一年的效果?
程序流程图:
程序代码:
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))
输出结果为:0.019
结论:工作日模式下,每天要努力到1.9%,相当于365天模式每天1%
单行字符串:单引号 or 双引号
多行字符串:三单引号 or 三双引号
在字符串中包含 双引号 or 单引号:
# 'hello'
print("'hello'")
# "hello"
print('"hello"')
# '"hello"'
print(''' '"hello"' ''')
索引:返回字符串中单个字符 <字符串>[M]
切片:返回字符串中一段字符子串 <字符串>[M : N]
name="gengsj"
# j
print(name[-1])
# geng
print(name[0: 4])
使用 [ M: N: K ] 根据步长对字符串切片
<字符串>[M: N],M缺失表示 至开头,N缺失表示 至结尾
<字符串>[M: N: K],根据步长K 对字符串切片
示例:
str = "HarryPotter"
# 从开头到第五个元素(不包含第五个元素)
print(str[: 5])
# 从第五个元素到末尾
print(str[8: ])
# 从第一个元素到第八个元素,跳跃2
print(str[1: 8: 2])
# 翻转字符串
print(str[: : -1])
print("这里有个双引号(\")")
# 这里有个双引号(")
"\b"回退 "\n"换行(光标移动到下行首) "\r"回车(光标移动到本行首)
操作符及使用 | 描述 |
---|---|
x + y | 连接两个字符串 x 和 y |
n * x 或 x * n | 复制 n次字符串 |
x in s | 如果 x 是 s 的子串,则返回 True,否则返回 False |
示例:输入星期几的数字,输出对应中文
weekStr = "一二三四五六日"
weekId = eval(input("请输入星期数字(1-7):"))
print("星期" + weekStr[weekId - 1])
函数及使用 | 描述 |
---|---|
len(x) | 长度,返回字符串x的长度 |
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) | u为Unicode编码,返回其对应的字符 |
ord(x) | x为字符,返回其对应的Unicode编码 |
示例:打印十二星座
for i in range(12):
print(chr(9800 + i), end=" ")
# 最后end=" ",是把本来要输入的换行符换成 一个空格
一些以方法形式提供的字符串处理功能
方法及使用 | 描述 |
---|---|
str.lower(), str.upper() | 返回字符串的副本,全部字符小写/大写 "AbCdEfGh".lower() 结果为 "abcdefgh" |
str.split(sep = None) | 返回一个列表,由 str 根据 sep 被分隔的部分组成 "A,B,C".split(",") 结果为 ['A', 'B', 'C'] |
str.count(sub) | 返回子串 sub 在 str 中出现的次数 "an apple a day".count("a") 结果为4 |
str.replace(old, new) | 返回字符串 str副本,所有 old 子串被替换为new "python".replace("n", "n123.io") 结果为 "python123.io" |
str.center(width [,fillchar]) | 字符串str根据宽度width居中,fillchar可选 "python".center(20, "=") 结果为 =======python======= |
str.strip(chars) | 从str中去掉 chars中列出的字符 "= python= ".strip(" =np") "ytho" |
str.join(iter) | 在iter变量除最后元素外每个元素后增加一个str ",".join("12345")结果为 "1, 2, 3, 4, 5" |
格式化:对字符进行格式表达的方式
<模板字符串>.format(<逗号分隔的参数>)
# 输出宽度为20,居中对齐,不满20个字符用=填充
print( "{0:=^20}".format("PYTHON") )
# '=======PYTHON======='
# 输出宽度为20,右对齐,不满20个字符用*填充
print( "{0:*>20}".format("BIT") )
# '*****************BIT'
# 输出宽度为10,默认左对齐,添加空格补齐
print("{:10}".format("BIT"))
# 'BIT '
# 注意:单引号之内为输出内容
time库是 Python 中处理时间的标准库
import time
time.()
函数 | 描述 |
---|---|
time() | 获取当前时间戳,即计算机内部时间值,(浮点数) >>>time.time() 1650193056.0178475 |
ctime() | 获取当前时间并以易读方式表示,返回字符串 >>>time.ctime() Sun Apr 17 18:58:30 2022 |
gtime() | 获取当前时间,表示为计算机可处理的时间格式 >>>time.gtime() time.struct_time(tm_year=2022, tm_mon=4, tm_mday=17, tm_hour=10, tm_min=59, tm_sec=18, tm_wday=6, tm_yday=107, tm_isdst=0) |
将时间以合理的方式展示出来
函数 | 描述 |
---|---|
strftime(tpl, ts) | tpl:格式化模板字符串,定义输出效果 ts:计算机内部时间类型变量 >>>t = time.gmtime() >>>time.strftime("%Y-%m-%d %H:%M:%S", t) 2022-04-17 11:04:33 |
strptime(str, tpl) | str:字符串形式的时间值 tpl:格式化模板字符串,用来定义输入结果 >>>timeStr = '2022-04-17 11:04:33' >>>time.strptime(timeStr, "%Y-%m-%d %H:%M:%S") |
字符说明
格式化字符串 | 日期 / 时间说明 | 值范围 和 实例 |
---|---|---|
%Y | 年份 | 0000~9999 |
%m | 月份 | 01~12 |
%B | 月份名称 | January~December |
%b | 月份名称缩写 | Jan~Dec |
%d | 日期 | 01~31 |
%A | 星期 | Monday~Sunday |
%a | 星期缩写 | Mon~Sun |
%H | 小时(24h制) | 00~23 |
%I | 小时(12h制) | 01~12 |
%p | 上午/下午 | AM, PM |
%M | 分钟 | 00~59 |
%S | 秒 | 00~59 |
函数 | 描述 |
---|---|
perf_counter() | 返回一个CPU级别的精确时间计数值,单位为秒 要程序开始前计数一次,完成时再计数一次,计算差值 >>>start = time.perf_counter() >>>end = time.perf_counter() >>>end - start |
sleep(s) | 拟休眠的时间,单位是秒,可以是浮点数 >>>def wait(): time.sleep(3.3) >>>wait() 程序将等待3.3秒之后退出 |