Python数据类型、变量、字符串、编码
文章目录
一、数据类型
1.整数类型
Python用int来表示整型例如:不同进制的写法:
C:\>python
Python 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 10 #十进制10
10
>>> 0b1010 #二进制
10
>>> 0o12 #八进制
10
>>> 0xa #十六进制
10
>>> 0xA #十六进制
10
以上写法都表示阿拉伯数字10,在python2.x中分别是int、long两种类型。从python3.x开始,整数类型为int,不再区分整数int与长整数long,整数的长度不受限制。
注意:注释#
Python编程语言的单行注释常以井号开头“#”,单行注释可以作为单独的一行放在注释代码行之上,也可以放在语句或者表达式之后。是不会被系统执行的。
2.浮点数类型
浮点数也就是小数,在计算机领域把小数称为浮点数,是因为浮点数的小数点位置是浮动可变的。浮点数也可以用科学计数法来表示。
浮点数也称为float型
例如: 浮点数数据类型
>>> 3.1415926
3.1415926
>>> -2.1314259
-2.1314259
>>> 3.14e-2
0.0314
>>> 3.14e-10
3.14e-10
3.布尔类型
布尔值只有true、false两种值,要么是true,要么是false。对应的计算机底层机器编码为0和1,。在python中,可以直接使用true、false表示布尔值,也可以通过布尔运算计算出来,例如:3<5会产生布尔值true,2 == 1会产生布尔值false。
例如:布尔类型
>>> 3<5
True
>>> 2==1
False
>>>
4.复数类型
Python支持复数的直接表达式,例如3+5j,跟数学上的复数表示形式一样。唯一不同的是虚部的i变成了j,实际上,这个类型并不能算作常用类型,制作了解即可。
例如:复数类型数据
>>> 1+2j
(1+2j)
>>> 3+4j
(3+4j)
>>> a=1+2j
>>> b=3+4j
>>> a+b
(4+6j)
>>>
5.字符串类型
字符串是以单引号,双引号括起来的任意文本,比如“hello”,‘hello’,字符串还有原始字符串表示法,字节字符串表示法和Unicode字符串表示法,而且可以书写成多行的形式,也就是用三个单引号或三个双引号结尾。
>>> 'hello world'
'hello world'
>>> 'hello 美女'
'hello 美女'
>>> '''牛逼 666'''
'牛逼 666'
二、变量
1.命名规则
在Python中,变量是需要一个变量名来表示的,变量名必须是大小写英文、数字和下划线组成,而不能以数字开头。
例如:x=1,变量x是一个整数;
x_001 = ‘x_001’,变量x_001是一个字符串;
等于号“=”是一个赋值符号,可以把任意数据类型赋值给变量,同一个变量是可以反复赋值的,而且可以是不同类型的变量。
总结以下命名规则:
1、变量名由字母、数字、下划线构成,且不能以数字开头;
2、大小写敏感,区分大小写;
3、不要和关键字冲突。
2.使用方法
2.1 赋值
等于号“=”是主要的赋值操作符
>>> a_int=1
>>> b='cat'
>>> c=3.69
>>> d='hello,zhizhang'
等号左边是变量名称,右边是赋予变量的内容。
2.2 type函数
type函数可以对变量的类型进行检查
>>> a_int=1
>>> b='cat'
>>> c=3.69
>>> d='hello,zhizhang'
>>> print(type(a))
<class 'complex'>
>>> print(type(b))
<class 'str'>
>>> print(type(c))
<class 'float'>
>>> print(type(d))
<class 'str'>
2.3 多重赋值
如果有三个变量x,y,z并且想把这三个变量都设置为1,怎么样可以把一个数值赋给多个变量呢?测试一下:
>>> x=y=z=1
>>> print(x,y,z)
1 1 1
同时赋值给多个变量是完全可以的。这还没完,进一步思考,是否可以将不同的类型的数值赋值给多个变量呢?
2.4 多元赋值
>>> q,w,e=666,'牛逼','fucky'
>>> print(q,w,e)
666 牛逼 fucky
>>> q
666
>>> w
'牛逼'
>>> e
'fucky'
三、字符串和编码
1.字符串
字符串类型赋值
字符串也是一种类型,可以通过引号间包含字符的方式来创建字符串变量:
>>> str1='hello'
>>> str2="world"
>>> print(str1,str2)
hello world
Python里面没有字符这个类型,用长度为1的字符串来表示这个概念。前面提到单引号和双引号是用来定义字符串的特殊符号,如果我们想输出单引号和双引号到屏幕上怎么办?
转义字符
反斜线""符号,也叫转义字符
>>> name1="hello thankyou"
>>> name1
'hello thankyou'
>>> print(name1)
hello thankyou
>>> name2="\"hello,kuniqiwa\""
>>> name2
'"hello,kuniqiwa"'
>>> print(name2)
"hello,kuniqiwa"
不光是单引号、双引号可以这样操作,其他的符号也可以通过前置转义字符“\”来进行转义:
下面是Python常见的转义方式:
转义字符 | 描述 |
---|---|
\ | 续行符 |
\\ | 反斜杠符号 |
\’ | 单引号 |
\" | 双引号 |
\b | 退格 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
三重引号用法
>>> '''date:2022/1/21
... 今夜阳光明媚
... 今夜多云转晴'''
'date:2022/1/21\n今夜阳光明媚\n今夜多云转晴'
>>> a='''date:2022/1/21
... 今夜阳光明媚
... 今夜多云转晴'''
>>> a
'date:2022/1/21\n今夜阳光明媚\n今夜多云转晴'
>>> print(a)
date:2022/1/21
今夜阳光明媚
今夜多云转晴
2.编码
常见编码有ASCII编码(美国)、GBK编码(中国)、shift_JIS编码(日本)、Unicode编码(统一编码)等。
python2.x 默认的字符编码是ASCII,默认的文件编码也是ASCII;
python3.x 默认的字符编码是Unicode,默认的文件编码是UTF-8。
3.字符串操作
字符串切片
>>> str1='你好,迪丽娜扎'
>>> str1[0:5]
'你好,迪丽'
>>> str1[5:7]
'娜扎'
>>> str1[:5]
'你好,迪丽'
首相将内容赋值给str1这个变量,这个变量包括6个汉字和1个标点,一共7个字符。然后进行切片操作,
[0:5]截取第0个地址至第5个字符之间的内容;
[5:7]截取第6到7个字符之间的内容;
[:5]表示起始位置为空,终止位置为5,和[0:5]是一样的。
字符串拼接
>>> str1='你好'
>>> str2='迪丽娜扎'
>>> print(str1+str2)
你好迪丽娜扎
>>> print(str1*6)
你好你好你好你好你好你好
>>> print(str2*3)
迪丽娜扎迪丽娜扎迪丽娜扎
字符串运算符
>>> a="life is short"
>>> b="you need python"
>>> s1=a+b #字符串连接
>>> s2=a*2 #字符串乘以2,重复输出
>>> s3=a[3] #下表索引,输出第4个字符,从0开始的
>>> s4=a[0:6] #截取
>>> print(s1)
life is shortyou need python
>>> print(s2)
life is shortlife is short
>>> print(s3)
e
>>> print(s4)
life i
>>> print('python' in b) #成员运算符,包含给定内容,为true
True
>>> print('python' in a) #否则为false
False
>>> print('python' not in a) #成员运算符,不包含给定字符,返回true
True
注意,运算符in和not in返回的布尔值true,false,这两个运算符经常和循环语句配合使用。
字符串格式化
Python支持格式化字符串输出,基本用法是将一个值插入到一个有字符串格式符%s的内容中:
>>> str1='中国xx集团'
>>> print('%s xx有限公司' %str1)
中国xx集团 xx有限公司