一、数据类型:数字
整数(int) | 一般意义上的数包含八进制(以数字0开头)十六进制(以0x开头 |
---|---|
长整数(long) | 无限大小的数,在其末尾加小写字母l或者大写字母L(python3版本后没有 |
浮点数(float) | 小数,用E/e表示的幂,如2.7 、1234e+10 |
复数(complex) | 附属的虚部由字母j/J结尾,如1+2j |
简单示例:
1.1运算符
运算符 | 描述 |
---|---|
** | 乘方运算符 |
* | 乘法运算符 |
/ | 除法运算符 |
// | 整除运算符 |
% | 取余运算符 |
+ 、 - | 加减法运算符 |
I | 位或 |
^ | 位异或 |
& | 位于 |
<< | 左移运算 |
>> | 右移运算 |
>>> 2 ** 5 (乘方运算)
32
>>> 3 * 2 (乘法)
6
>>> 4 / 2 (除法)
2.0
>>> 7 / 2
3.5
>>> 7 // 2 (整除)
3
>>> 7 % 2 (取余)
1
>>> 5 ^ 3 (101 异或011 为 110 ===> 6)
6
>>> 11 | 5 (1011 位或 0101 为 1111 ===>15)
15 即非0为真
>>> 10 | 4 (1010 位或 0100 为 1110===>14)
14
>>> 12 & 11 (相与运算)
8
>>> 12 & 12
12
在python中存在浮点数精度缺失的问题,这实际上不是bug,其实在很多的编程语言中都会出现,这是由于在python中默认用53为二进制数表示小数部分,而在浮点数默认输出的时候取前16位,二进制和十进制在转换之间无限接近,但不完全子同,计算机在处理运算时,先将十进制数转换为二进制,在转换为十进制,这中间就会出现精度缺失,我们经常用round(x,y)函数
,x表示进行的运算,y表示小数点后保留的个数。例如:round(0.1+0.2, 1)=.03
,这里遵循四舍五入的原则。
二、数据类型:字符串
python中的字符用于表示和存储文本。字符串通常由单引号、双引号或者三引号包围。
简单示例
>>> str1 = 'hello'
>>> str1
'hello'
>>> print(str1) //print的时候会默认去掉单引号和双引号
hello
>>> str2 = "python"
>>> str3 = 'a = 1 + 2 '
>>> print(str3)
a = 1 + 2
>>> str4 ='can\'t'
>>> str4
"can't"
>>> str5 = "cant't" //双引号自带转译,转译的功能比单引号强
>>> str5
"cant't"
2.1 字符串中的转译字符
常见的转译字符
转义字符 | 含义 |
---|---|
\n | 换行符 |
\t | 制表符 |
\r | 回车 |
\ | 表示\ |
\’ | 标识一个单引号,而不是字符串结束 |
\" | 标识一个双引号,而不是字符结束 |
简单示例
>>> t = 'hello \tpython'
>>> print(t)
hello python
>>> t
'hello \tpython' //只有在使用print函数输出字符串的时候,才会解释字符串中的转译字符
>>> t = 'hello \npython'
>>> print(t)
hello
python
>>> t = 'hello \rpython' //\r真正实现了其回车的功能(回到某行开头,把前面的输出覆盖了,不管前面的内容有多长都会被全部抹去)
>>> print(t)
python
2.2 操作字符串
在python中,可使用运算符“+”、“*”对字符串进行操作,另外,python中提供很多对字符串的操作函数。
m
简单示例
>>> str = 'hi, python!' //p前面有一个空格,用于去区分单词
>>> str.capitalize()
'Hi, python!'
>>> str.count('p') //字符p的个数
1
>>> str.find('p') //p字符的起始位置
4
>>> str.find('c') //-1表示未找到
-1
>>> str.isalpha() //仅字母?
False
>>> str.isalnum() //仅字母数字?
False
>>> str.isdigit() //仅数字?
False
>>> str.islower() //字母仅小写?
True
>>> str.isupper() //字母仅大写?
False
>>> str.join('HI') //连接字符串,以str字符串为分隔符连接参数中的每一项。
'Hhi, python!I'
注意:以上的操作并不会改变str本身的值,仅返回修改后的值,若是要修改str的值,则要使用复制语句来实现srt = str.函数()
实现
strint.join()函数功能
>>> str = 'how'
>>> str.join('--')
'-how-'
>>> str.join('---')
'-how-how-'
>>> str.join('----')
'-how-how-how-'
>>> str.join('-') //参数字符仅有一个时,返回参数
string.split()函数功能
>>> str = 'how'
>>> str = 'how are you !'
>>> str.split() //不指定时默认以空格分隔
['how', 'are', 'you', '!']
>>> str.split(None,1) //指定一次分割
['how', 'are you !']
>>> str.split(None,0) //0次分割,相当于不分割
['how are you !']
>>> str.split('o',) //指定使用“o”分割
['h', 'w are y', 'u !']
>>> str.split('o',1) //使用“o”分割,分割一次
['h', 'w are you !']
2.3 字符串的索引和分片
- Python中的字符串相当于一个不可变序列的列表。一旦声明一个字符串,则该字符串中的每个字符都有了自己固定的位置。在Python中可以使用“[ ]” 来访问字符串中指定位置上的字符,这种方式类似于C语言中的数组。
- 与数组类似,在Python字符串中,字符的序号也是从0开始的,即string[0]表示字符串string中的第一个字符。
- 与C语言不同的是,Python 还允许以负数表示字符的序号,负数表示从字符串尾部开始计算,此时最后一个字符的序号为-1,而不是-0。
>>> str = '123456789'
>>> str[0] //第一个字符串
'1'
>>> str[4] //第五个字符串
'5'
>>> str[-1] //倒数第一个
'9'
>>> str[-3] //倒数第三个
'7'
>>> str[-0] //-0=0,即第一个
'1'
>>> str[1:4] //第二个到第五个,但不包含第五个
'234'
>>> str[1:-1] //第二个到最后一个,但不包含第最后一个
'2345678'
>>> str[0:-2]
'1234567'
>>> str[:-2]
'1234567'
>>> str[0:]
'123456789' //所有输出
2.4 格式化字符串
在python中,字符串的字符顺序是不可变的,但是在某些情况下,可能又有要根据某些情况修改字符串的内容,这时可以使用格式化字符串的功能。
在python中,可以在字符串中使用以“%”开头的字符,以在脚本中改变字符串中的内容。
%c | 单个字符 |
---|---|
%d | 十进制整数 |
%o | 八进制整数 |
%s | 字符串 |
%x | 十六进制整数,其中字母小写 |
%X | 十六进制整数,其中字母大写 |
>>> s = 'so %s day !'
>>> print(s % 'happy')
so happy day !
>>> s = '1 %c 1 %c 2'
>>> s % ('+','=')
'1 + 1 = 2'
>>> 'x = %x ' % 0xA
'x = a '
>>> 'x = %X ' % 0xA
'x = A '
2.5 .format方法
.format()
方法较%
使用起来简单,这里可以修改字符对应的顺序,如下所示,在槽中添加数字,默认从0开始,这里不指定的话,则遵循一一对应的顺序。
槽内部格式化操作
python提供了六种格式控制标记
填充,对齐宽度简单示例:
数字处理简单示例
2.6字符串,数字类型的转换
- **字符串 ——> 数字 int()函数 **
- 数字 ——> 字符串 str()函数
>>> '4' + 10
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> int(4) + 10
14
>>> str(4) +'10'
'410'
>>> str = 10
>>> str(4) +'10'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable //这里由于前面已将定义了一个变量与后面的str函数名冲突,所以不可以同时使用。
2.7原始字符串
原始字符串是python中一类比较特殊的字符串,以R/r开头,在原始字符串中“"不再标识转译,它是为正则表达式设计的,可以方便的标识Widows下的路径,但是路径不能一“\”结尾,否侧会出错。
>>> import os
>>> path = r'e:\python练习'
>>> os.listdir(path) //列出路径下的目录。
['.idea', 'hello.py', 'python笔记', 'venv']
2.8 unicode编码
在python3中所有的字符均采用unicode编码的方式,unicode编码,和ASCII编码类似,是国际上为了将统一各个国家使用的字符而设计的一种编码,他的思想就是使用一套编码,希望可以将各个国家使用的字符都纳进来。她包含的范围为
0-111411(0x10FFFF
空间,每个编码对应一个字符。
函数的使用 | 描述 |
---|---|
chr(u) | u为Unicode编码,返回其对应的字符 |
ord(x) | x为字符,返回其对应的unicode编码 |
例如:打印12星座的符号
for i in range(12):
print(chr(9800+i),end="")
执行结果:
♈♉♊♋♌♍♎♏♐♑♒♓