变量赋值是将变量名和数据建立关联。通过变量的赋值操作,变量名就可以指代具体的数值。
Python 提供了内部赋值和外部赋值两种赋值方式。
内部赋值通过赋值运算符(等号:=)为变量指定一个数据值。可以为一个变量赋值,也可以同时为多个变量赋值。
单一赋值指为一个变量指定一个数据值。数据值可以是数值,也可以是表达式。
单一赋值的格式如下:
变量名=数据值
变量名=表达式
例如:
a=50 # 为变量赋整型数据
print(a,type(a))
a=58.7 # 为变量赋浮点型数据
print(a,type(a))
a='hello Python' # 为变量赋字符串类型数据
print(a,type(a))
a=False # 为变量赋布尔型数据
print(a,type(a))
运行结果为:
50 <class 'int'>
58.7 <class 'float'>
hello Python <class 'str'>
False <class 'bool'>
多重赋值是将一个数据值同时赋给多个变量。
格式如下:
变量名1=变量名2=...=数据值
例如:
a=b=c=50 # 为变量赋整型数据
print('a=',a,'b=',b,'c=',c)
a=b=c=58.7 # 为变量赋浮点型数据
print('a=',a,'b=',b,'c=',c)
a=b=c='hello Python' # 为变量赋字符串类型数据
print('a=',a,'b=',b,'c=',c)
a=b=c=False # 为变量赋布尔型数据
print('a=',a,'b=',b,'c=',c)
运行结果为:
a= 50 b= 50 c= 50
a= 58.7 b= 58.7 c= 58.7
a= hello Python b= hello Python c= hello Python
a= False b= False c= False
同步赋值是指同时为多个变量赋值,但每个变量的值可以不相同。这种形式等同于多个单一赋值的组合。
格式如下:
变量名1, 变量名2, ... =数据值1, 数据值2, ...
同步赋值相当于把数据值1赋值给变量1,把数据值2赋值给变量2,以此类推。
因此,要求数据值必须和变量对应。
例如:
a,b,c,d=50,24.857,'hello python',False
print('a=',a,'b=',b,'c=',c,'d=',d)
运行结果为:
a= 50 b= 24.857 c= hello python d= False
使用内置函数 input() 根据用户的输入为变量赋值,称为外部赋值。
此时,不管用户输入的是何种类型的数据,程序获取的都是字符串。为了便于后续对数据的处理,需要对数据进行额外的处理,以获取正确的数据类型。
格式如下:
变量名=input(提示字符串)
由于 input() 函数接收的是字符串类型的数据,如果需要通过输入的方式为变量赋值,直接使用 input() 函数即可。
例如:
name=input('请输入你的名字:')
gender=input('请输入你的性别:')
print('你的名字为:',name,' 你的性别为:',gender)
运行结果为:
请输入你的名字:李刚
请输入你的性别:男
你的名字为: 李刚 你的性别为: 男
使用 input() 函数输入的任何数据都是字符串类型。
例如:
a=input('请输入数据值:')
print(a,type(a))
a=input('请输入数据值:')
print(a,type(a))
a=input('请输入数据值:')
print(a,type(a))
a=input('请输入数据值:')
print(a,type(a))
运行结果为:
请输入数据值:50
50 <class 'str'>
请输入数据值:25.789
25.789 <class 'str'>
请输入数据值:True
True <class 'str'>
请输入数据值:wang
wang <class 'str'>
如果需要通过输入的方式为变量赋非字符串类型的数据,可以借助 eval() 函数对通过 input() 函数输入的数据进行处理,然后再赋值。
例如:
a=eval(input('请输入数据值:'))
print(a,type(a))
a=eval(input('请输入数据值:'))
print(a,type(a))
a=eval(input('请输入数据值:'))
print(a,type(a))
运行结果为:
请输入数据值:50
50 <class 'int'>
请输入数据值:52.878
52.878 <class 'float'>
请输入数据值:False
False <class 'bool'>
注意:使用 eval(input()) 方式给变量赋值时,可以给变量赋整型、浮点型与布尔型数据。如果不是以上三种类型,而是一个字符串类型,必须加引号,否则会报错。
例如:
a=eval(input('请输入数据值:'))
print(a,type(a))
运行结果为:
请输入数据值:hello
Traceback (most recent call last):
File "C:\Users\wgx58\PycharmProjects\PythonProject\hello.py", line 1, in <module>
a=eval(input('请输入数据值:'))
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "" , line 1, in <module>
NameError: name 'hello' is not defined. Did you mean: 'help'?
可以看到,当输入 hello 时程序报错。
如果输入 hello 时添加引号,则程序可以正常运行。
a=eval(input('请输入数据值:'))
print(a,type(a))
运行结果为:
请输入数据值:'hello'
hello <class 'str'>