Python 数据类型

Python3 有六个标准的数据类型:

  • Number(数字)

  • String(字符串)

  • List(列表)

  • Tuple(元组)

  • Set(集合)

  • Dictionary(字典)

数字(Number)、字符串(String)、元组(Tuple)是不可变的数据类型,列表(List)、集合(Set)、字典(Dictionary)是可变的。

不可变指的是值本身不可变,但变量是可变的。比如:

1 a="hello wolrd"
2 a=10
3 print(a)  #10

 “hello world”这个字符串本身是不可变的,我们不能修改这个字符串本身,但我们可以修改指向这个字符串的变量。

python中没有数组这一数据类型,但可以使用列表、元组代替数组。

查看数据类型

1、可用type()查看值、变量的数据类型:

a=1
print(type(a))   # <class 'int'>
print(type(1))   #可直接使用值

2、可用isinstance()判断变量类型:

1 a=1
2 b=isinstance(a, int)  #返回值是bool类型
3 print(b)  #True
4 
5 b=isinstance(1,int)   #第一个参数也可以使用具体的值

3、如果不再使用某些变量,可用del删除变量

1 a=1
2 del a  #删除变量
3 print(a)  #报错
4 
5 
6 a,b=1,"hello"
7 del  a,b   #可同时删除多个变量,逗号分隔

数字(Number)

Python3 支持4种数字: int、float、bool、complex(复数)

1 a,b,c,d=1,1.2,True,4+3j
2 print(c+1)   #2

bool型有两个值:True、False,首字母要大写。参与算数运算时,True代表1,False代表0。

需要注意的算数运算符:

1 print(6/4)  #除法,结果是浮点型
2 print(4/4)   #1.0
3 
4 print(6//4)  #整除,只保留整数部分,1
5 
6 print(2**3)  #乘方,2的3次方(幂),8

 强制类型转换:

 1 a,b=1,2.3
 2 float(a)  #将a强制转换为float型,并返回转换后得到的值1.0
 3 int(b)  #将b强制转换为int型,并返回转换后得到的值2
 4 print(a)  #1
 5 print(b)  #2.3
 6 
 7 """
 8 注意,变量的值并没有发生改变
 9 a=1.2
10 int(a)   返回转换后得到的值1,a的值仍是1.2,没有变
11 print(int(a))   1
12 """

构造复数:

  • complex(x)    //返回复数x+0j,x为实部,虚部为0
  • complex(x,y)    //返回复数x+yj

x,y本身的值并不改变。

字符串(String)

1、定义

 1 a="hello"  #可使用双引定界
 2 b=' world!'  #也可以使用单引定界
 3 c="""hello   #多行字符串可使用三个单引或三个双引定界,类似html中的<pre>标签,会保留格式。
 4 world!"""     
 5 
 6 
 7 d=""ok""   #特殊字符要使用转义
 8 print(d)
 9 
10 print(r"
")  #可在字符串前面加一个r或R,表示原始字符串,这样就不会解析表示的特殊字符。此句代码原样输出

11 
12 print(a+b)  # +号是字符串连接符
13 print(1+a)  #数字和字符串不能相加,会报错

2、字符串索引、截取

 1 a="hello"  #可使用双引定界
 2 
 3 print(a)   #整个字符串
 4 
 5 print(a[0])  #某个字符,下表索引,可使用负数。0表示左起第一个,-1表示右起第一个。h
 6 print(a[-1])  #o
 7 
 8 print(a[0:3])  #截取字符串。hel,截取范围是[start,end),和java一样,包含start,不包含end
 9 print(a[1:])  #可缺省start或end,缺省时默认start为0,end为-1
10 print(a[:3])  #

3、字符串的成倍增加

1 a="hello"*3   #字符串可与数字相乘。3个hello连接在一起。
2 print(a)  #hellohellohello
3 
4 print("*"*50)    #分隔线效果

4、字符串的成员判断

1 print("H" in "hello")  #False
2 print("H" not in "hello")  #True

返回值是bool型。

5、 字符串的格式化输出

1 print("我是%s,我今年%d岁"%("小明",20))  #我是小明,我今年20岁

 "字符串格式"%(值1,值2,....)

如果只有一个值,可缺省%后面的()。

格式与C语言中的相同。

    符   号描述
      %c  字符
      %s  字符串
      %d  整数
      %u  无符号整型
      %o  无符号八进制数
      %x  无符号十六进制数,x可大写
      %f  浮点数,可指定小数点后的精度
      %e  用科学计数法格式化浮点数,e可大写

格式化操作辅助指令:

符号功能
* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号( + )
<sp> 在正数前面显示空格
0 显示的数字前面填充'0'而不是默认的空格
% '%%'输出一个单一的'%'
m.n m 是显示的最小总宽度,n 是小数点后的位数

若格式不匹配,会自动转换为对应的格式输出:

1 a=1.2323
2 print("%d"%(a))  #1
原文地址:https://www.cnblogs.com/chy18883701161/p/11284862.html