python数据类型——数字,字符串(字符串的分片和索引)

一、数据类型:数字

整数(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="")
 执行结果:
 ♈♉♊♋♌♍♎♏♐♑♒♓
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章