python的变量与基础数据类型

1 python的变量

  • python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  • 在 python 中,变量就是变量,它没有类型,所谓"类型"是变量所指的内存中对象的类型。

1.1 变量的定义

  • 变量定义的格式:变量=值
  • 等号(=)用来给变量赋值
  • 等号(=)运算符左边是一个变量名
  • 等号(=)运算符右边是存储在变量中的值
a=3
b=3.14
c="abc"
print(a,b,c)
print("变量a的类型: ",type(a))
print("变量b的类型: ",type(b))
print("变量c的类型: ",type(c))

1.2 多个变量赋值

  • 允许同时为多个变量赋值
  • 例如:a = b = c = 1
  • 实例中,创建一个整型对象,值为1,从后向前赋值,三个变量被赋予相同的数值。

1.3 多个对象指定多个变量

  • 可以为多个对象指定多个变量
  • 例如:a, b, c = 1, 2,“runoob”
  • 实例中,两个整型对象1 和2 的分配给变量a和b,字符串对象 “runoob” 分配给变量c。

2 python的基础数据类型

  • 六个标准数据类型:
    • Number(数字)
    • String(字符串)
    • List(列表)
    • Tuple(元组)
    • Set(集合)
    • Dictionary(字典)
  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

2.1 Number(数字)

  • Python3支持 int、float、bool、complex(复数)
  • 在Python3里,只有一种整数类型int,表示为长整型,没有 python2中的Long。
  • 内置的 type() 函数可以用来查询变量所指的对象类型。
# int整型
i=1
print(type(i),i)
# float浮点型
f=1.3
print(type(f),f)
# bool布尔型
b=True
print(type(b),b)
# complex复数
c=1+3j
print(type(c),c)
print(c.real,c.imag)
  • python3 中,bool 是int 的子类,True和False可以和数字相加,True==1 False==0
  • 复数由实部和虚部构成,在python中,复数的实部和虚部可以通过 .real 和 .imag 属性来获取

2.2 String(字符串)

  • 字符串用单引号’ 或双引号"括起来
  • 使用反斜杠 \ 转义特殊字符
# 单引号,推荐使用
s1='hello world 1!'
# 双引号
s2="hello world 2!"
# 单引号、双引号相互包含
s3='hello "world" 3!'
s4="hello 'world' 4!"

print(s1,s2,s3,s4,sep='\n')

2.2.1 字符串的截取

  • 格式:变量[头下标:尾下标:步长]
  • 下标从0开始,左开右闭
s='123456789'
print(s5[0:5])
# 头下标为0,可以省略
print(s5[:5])
# 统计字符串长度
print(len(s5))
print(s5[5:9])
print(s5[5:len(s5)])
# 尾下标到最后,可以省略
print(s5[5:])

# 从左往右以0开始,从右往左以-1开始
print(s5[5:-2])
print(s5[-5:-2])

# 取出单个字符
print(s5[5])

# 步长默认为1
# 每两个字符取出一个
print(s5[1:6:2])
# 步长不允许为0
# print(s5[1:4:0])
# 逆序输出
print(s5[::-1])

# 字符串定义后,内容不能改变,会报错
# s5[5]='0'
# print(s5[5])

2.2.2 字符串的运算

  • 加号 + 是字符串的连接符
s1='aA'
s2='zZ'
print(s1+s2)
  • 星号 * 表示复制当前字符串,与之结合的数字为复制的次数
s3='c'
print(s3*3)

2.2.3 转义

  • 使用反斜杠 \ 转义特殊字符
# \n换行符 \t制表符 \b退格符 \r回车符 \f换页符
print('hello\nworld')
print('hello\tworld')

# \\表示\本身
print('hello\\nworld')

# 如果不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串
print(r'hello\tworld')

2.2.4 多行字符串

s="""aaa
    bbb
        ccc
ddd"""
print(s)

2.3 bool(布尔类型)

  • 布尔类型可以用来控制程序的流程,比如判断某个条件是否成立,或者在某个条件满足时执行某段代码。
  • 布尔类型只有两个值:True 和 False

3 python的数据类型转换

  • 隐式类型转换:自动完成
  • 显式类型转换:需要使用类型函数来转换

3.1 隐式类型转换

  • 对两种不同类型的数据进行运算,较低数据类型就会转换为较高数据类型以避免数据丢失。
i=10
f=10.1
b=True
print(type(i+f))
print(type(i+b))

# 整型和字符串类型运算结果会报错,无法自动转换
print(11+'22')

3.1.1 数据类型的高低之分

  • "较高数据类型"和"较低数据类型"是在隐式类型转换中用于描述数据精度的概念。
    • 精度可以理解为数据类型能够表示的信息量或详细程度
    • "较高"数据类型指的是能够表示更多信息(或更精确信息)的数据类型
    • "较低"的数据类型则表示的信息较少
  • 布尔(bool)< 整型(int)< 浮点型(float)<复数(complex)

3.2 显式类型转换

  • 在显式类型转换中,用户可以将对象的数据类型转换为所需的数据类型。
  • 使用 int()、float()、str() 等预定义函数来执行显式类型转换。
    • int() 强制转换为整型
    • float() 强制转换为浮点型
    • str() 强制转换为字符串类型
i=10
f=10.1
s1='123.1'
s2='abc'

print(int(f))
print(float(i))
print(float(s1))
print(str(i)+s2+str(f))

# s1无法直接转换成int型,可以分步实现
print(int(float(s1)))

# 报错:不符合格式,无法转换
print(int(s2)) 

3.2.1 不同数据类型之间能否随意转化

  • 虽然Python提供了一些内置的函数来实现不同数据类型之间的转换,如int(), float(), str(), list(), tuple(), set()等等,但并非所有类型的数据都可以被转换成其他任意类型。
  • 转换是否可行,主要取决于数据本身是否包含足够的信息来表示目标类型。
# 报错:不符合格式,无法转换
print(int(s2)) 
  • 总的来说,数据类型的转换并非无限制,它取决于原始数据是否能够提供足够的信息来表示目标类型。

你可能感兴趣的:(python,开发语言)