类型指的是编程语言中文本的类型,不同的类型具有不同的格式,在程序运行中扮演不同的角色。
数字类型包含整数类型、浮点数类型、复数类型。
可以用二进制、八进制、十进制、十六进制表示。 -正常输入即为十进制;
int(250) == 250-0b或者0B:2进制数;
bin(250) == "0b11111010"-0o或者0O:8进制数;
oct(250) == "0o372"-0x 或者0X:16进制数:
hex(250) == "0xfa"即为带有小数点及小数的数字。 因为小数点的问题,浮点数计算比整数复杂,程序中尽量用整数。 浮点数用科学计数法记录,使用字母E或者e作为幂的符号,基数是10,例如:
1e3 == 1000和数学中的复数概念一致。 复数z:
z = 1 + 2j虚数部分用j或J表示,a与b都是浮点数类型。 可以使用z.real()获得z的实数部分,z.imag()获得虚数部分。
特别的,通过函数对数字进行运算
pow(x , y) # 计算x的y次方 abs(x) # 求x的绝对值 divmod(x , y) # 得到 x//y 与x%y反斜杠叫做转义字符,可以改变特定字符的含义,比如可以 \"将本来用来控制字符串的引号变成文本状态的引号。 输出原始字符串r"输出字符串"。
字符串是字符的有序序列,可以对其中的字符进行索引。
字符串"abcd"中a为第0个字符(字符串从0开始)也是第-4个字符(反向数)。
使用格式为"字符串"[位置]可以对字符串中的内容进行索引,返回到字符串中某个位置的单个字符,字符串中任何文本内容都占用位置,哪怕是空格(转义符与被转移的字符共同占用一个位置)。
"a" == "abcde"[0] "f" == "abcde"[-1] "c" == "abcdef"[2] "c" == "abcde"[-3] " " == "Hello\nWorld !"[-2] "\n" == "Hello\nWorld !"[5]使用格式为"字符串"[位置1:位置2:截取间隔]可以对字符串中的内容进行索引,截取间隔默认为0,为0时返回到字符串:<位置1> 至 <位置2> - 1 中的所有字符。
以上两种方法虽然编写简单但是计算机运行效率低,建议使用.join或.format
方法特指a.b()风格函数中的b()
字符串.format()函数用于格式化输出 具体使用方法如下
"你{}好{}鸭{}".format("~","#","!") '你~好#鸭!' # 上一行代码返回的结果为此代码中{}是槽,用来圈定一个位置,将.format中规定值填充到槽中,槽中可以填入操作符,控制填入内容的格式或指定填入内容。
填充: <参数序号>:<填充><对齐方式><宽度>一个表示()中内容位置的数字,可以指定填充内容的位置引导符号,符号以后的内容为格式控制符用于填充的字符(只能为单个字符)控制对齐方式:左对齐<,右对齐>,居中对齐^控制槽的宽度其中槽中可以不填,不填则为默认值,填充符号默认为空格,对齐方式默认为左侧对齐,输出宽度默认为字符串宽度。 详例:
"位{0:!^20}置{2:>15}控{0:=<}制{1:->15}".format("阿呆","Ad","Python") '位!!!!!!!!!阿呆!!!!!!!!!置 Python控阿呆制-------------Ad' # 这是输出结果 输出内容格式控制 <参数序号>:<,><.><类型>一个表示()中内容位置的数字,可以指定填充内容的位置引导符号,符号以后的内容为格式控制符数字千位分割符控制浮点数精度或者字符串最大的输出长度指定类型b,c,d,o,x,X,e,E,f,% 单行动态刷新 详解见函数章。 for i in range(101): print("\r{:1}%".format(i),end="") # IDEA似乎不能实现这种操作,编写好的程序用CMD打开是可以正确运行的print()函数输出结果后默认添加一个换行,通过end=""可以控制最后的内容是什么,比如空值,也就是不进行额外操作 \r 可以控制下一次输出时光标的位置(也就是指下一次开始打印内容的位置) 例如:
import time for i in range(101): time.sleep(0.1) print("你!!!\r{:1}%好".format(i),end="")会看到,打印第一次时,似乎是从“!”开始打印的,然而实际上是打印瞬间%将"你"覆盖住了。
元组是包含多个元素的类型,元素之间用逗号分割。 元组中元素可以是不同类型。 一个元组可以是另一个元组的元素(需给元组加括号): 元组中各元素存在先后关系,可以通过索引访问元组中元素,索引方式与字符串类似。 元组定义后不能更改不能删除,如需更改使用列表类型 元组可以通过索引区间访问元组中部分元素t[num1:num2] 与字符串类似,元组之间可以使用 + 或 * 进行运算
列表是至有序的元素集合,其所包含的元素可以多样 列表可以通过索引访问其中的单个元素 列表的大小没有限制可以随时更改 序列操作符
[1,2,3] + [2,3,4] [1, 2, 3, 2, 3, 4] # 上述代码输出结果 [1,2] * 3 [1, 2, 1, 2, 1, 2] # 上述代码输出结果 [1,2,3][1] # 索引,与字符串索引类似 2 # 上述代码输出结果 len([1,2,3,4,5,6]) # 得到序列中元素个数 6 # 上述代码输出结果 [1,2,3,4][0:2] # 获取列表中的一个子序列,与字符串分割类似 [1, 2] # 上述代码输出结果 for i in [1,2,3,4,5,6]: # 对列表进行循环列举 <expr> in <seq> 成员检查,检查<expr>是否在列表中 .append(x) 将元素x添加到列表最后 .sort() 将列表元素排序 .reverse() 将列表元素翻转 .index() 返回第一次出现元素x的索引值 .insert(i, x) 在i位置插入新元素x .count(x) 返回元素x在列表中的数量 .remove(x) 删除列表中第一次出现的元素x .pop(i) 去除列表中位置i的元素并删除(浮选法)
暂略
字典是无序的对象集合。 两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
>>> a = {0, 1, 2 ,3} >>> b= {0, 2 ,1 , 3} >>> a == b