原文: https://www.programiz.com/python-programming/variables-constants-literals
变量是用于在内存中存储数据的命名位置。 将变量视为保存数据的容器是有帮助的,该数据可以在程序中稍后进行更改。 例如,
number = 10
在这里,我们创建了一个名为number
的变量。 我们为变量分配了 10 值。
您可以将变量视为用于存储书籍的袋子,并且可以随时替换该书籍。
number = 10
number = 1.1
最初,number
的值为 10 。 之后,将其更改为 1.1 。
注意:在 Python 中,我们实际上并未为变量分配值。 相反,Python 将对象(值)的引用提供给变量。
从上面的示例中可以看到,可以使用赋值运算符=
将值赋给变量。
website = "apple.com"
print(website)
输出
apple.com
在上述程序中,我们为变量website
分配了一个apple.com
值。 然后,我们打印出分配给website
的值,即apple.com
注意:Python 是类型推断的语言,因此您不必显式定义变量类型。 它自动知道apple.com
是一个字符串,并声明website
变量为字符串。
website = "apple.com"
print(website)
# assigning a new variable to website
website = "programiz.com"
print(website)
输出:
apple.com
programiz.com
在上述程序中,我们最初已将apple.com
分配给website
变量。 然后,将该值更改为programiz.com
。
a, b, c = 5, 3.2, "Hello"
print (a)
print (b)
print (c)
如果我们想一次将相同的值分配给多个变量,我们可以这样做:
x = y = z = "same"
print (x)
print (y)
print (z)
第二个程序将相同的字符串分配给所有三个变量x
,y
和z
。
常量是一种变量,其值无法更改。 将常量视为保存了以后无法更改的信息的容器是有帮助的。
您可以将常量视为一个用于存储一些书籍的袋子,这些书籍一旦放入袋子中就无法替换。
在 Python 中,常量通常在模块中声明和分配。 在这里,模块是一个包含变量,函数等的新文件,该文件将导入到主文件中。 在模块内部,用所有大写字母写的常量和下划线将单词分开。
创建一个constant.py
:
PI = 3.14
GRAVITY = 9.8
创建一个main.py
:
import constant
print(constant.PI)
print(constant.GRAVITY)
输出:
3.14
9.8
在上面的程序中,我们创建一个constant.py
模块文件。 然后,将常量值分配给PI
和GRAVITY
。 之后,我们创建一个main.py
文件并导入constant
模块。 最后,我们打印常数值。
注意:实际上,我们在 Python 中不使用常量。 用大写字母命名它们是将它们与变量分开的约定,但是,实际上并不能阻止重新分配。
-
常数和变量名称应由小写字母(a 至 z)或大写字母(A 至 Z)或数字(0 至 9)或下划线(
_
)。 例如:snake_case MACRO_CASE camelCase CapWords
-
创建一个有意义的名称。 例如,
vowel
比v
更有意义。 -
如果要创建具有两个单词的变量名,请使用下划线将它们分开。 例如:
my_name current_salary
-
尽可能使用大写字母声明一个常数。 例如:
PI G MASS SPEED_OF_LIGHT TEMP
-
切勿使用
!, @, #, $, %
等特殊符号。 -
不要用数字开头的变量名。
字面值是以变量或常量给出的原始数据。 在 Python 中,有以下几种类型的字面值:
数字字面值是不可变的(不可更改)。 数值字面值可以属于 3 种不同的数值类型:Integer
,Float
和Complex
。
a = 0b1010 #Binary Literals
b = 100 #Decimal Literal
c = 0o310 #Octal Literal
d = 0x12c #Hexadecimal Literal
#Float Literal
float_1 = 10.5
float_2 = 1.5e2
#Complex Literal
x = 3.14j
print(a, b, c, d)
print(float_1, float_2)
print(x, x.imag, x.real)
输出:
10 100 200 300
10.5 150.0
3.14j 3.14 0.0
在上面的程序中
- 我们将整数字面值分配给不同的变量。 在此,
a
是二进制字面值,b
是十进制字面值,c
是八进制字面值,d
是十六进制字面值。 - 当我们打印变量时,所有字面值都将转换为十进制值。
- 10.5 和
1.5e2
是浮点字面值。1.5e2
用指数表示,并且等效于1.5 * 10 ^ 2
。 - 我们为变量
x
分配了一个复数字面值,即3.14j
。 然后,我们使用虚数字面值(x.imag
)和实数字面值(x.real
)来创建复数的虚部和实部。
要了解有关数字字面值的更多信息,请参阅 Python Numbers 。
字符串字面值是由引号括起来的一系列字符。 我们可以为字符串使用单引号,双引号或三引号。 并且,字符字面值是由单引号或双引号引起来的单个字符。
strings = "This is Python"
char = "C"
multiline_str = """This is a multiline string with more than one line code."""
unicode = u"\u00dcnic\u00f6de"
raw_str = r"raw \n string"
print(strings)
print(char)
print(multiline_str)
print(unicode)
print(raw_str)
输出:
This is Python
C
This is a multiline string with more than one line code.
Ünicöde
raw \n string
在上述程序中,这是 Python 是字符串字面值, C 是字符字面值。
分配给multiline_str
的三引号"""
中的值是多行字符串字面值。
字符串u"\u00dcnic\u00f6de"
是 Unicode 字面值,支持英语以外的字符。 在这种情况下,\u00dc
代表Ü
,\u00f6
代表ö
。
r"raw \n string"
是原始字符串字面值。
布尔字面值可以具有两个值中的任何一个:True
或False
。
x = (1 == True)
y = (1 == False)
a = True + 4
b = False + 10
print("x is", x)
print("y is", y)
print("a:", a)
print("b:", b)
输出:
x is True
y is False
a: 5
b: 10
在上面的程序中,我们使用布尔字面值True
和False
。 在 Python 中,True
表示为 1 ,False
表示为 0 。x
的值为True
,因为 1 等于True
。 并且,因为 1 不等于False
,所以y
的值为False
。
同样,我们可以在数字表达式中使用True
和False
作为值。a
的值为 5 ,因为我们将 1 的True
与 4 相加。 同样,b
为 10 ,因为我们将 0 的值False
与 10 相加。
Python 包含一个特殊字面值,即None
。 我们使用它来指定尚未创建的字段。
drink = "Available"
food = None
def menu(x):
if x == drink:
print(drink)
else:
print(food)
menu(drink)
menu(food)
输出:
Available
None
在上面的程序中,我们定义了menu
函数。 在menu
内部,当我们将参数设置为drink
时,它将显示Available
。 并且,当参数为food
时,它显示None
。
有四种不同的字面值集合:列表字面值,元组字面值,字典字面值和集合字面值。
fruits = ["apple", "mango", "orange"] #list
numbers = (1, 2, 3) #tuple
alphabets = {'a':'apple', 'b':'ball', 'c':'cat'} #dictionary
vowels = {'a', 'e', 'i' , 'o', 'u'} #set
print(fruits)
print(numbers)
print(alphabets)
print(vowels)
输出:
['apple', 'mango', 'orange']
(1, 2, 3)
{'a': 'apple', 'b': 'ball', 'c': 'cat'}
{'e', 'a', 'o', 'i', 'u'}
在上面的程序中,我们创建了fruits
列表,numbers
的元组,字典dict
的列表,这些字典的值带有为每个值指定的键vowels
。
要了解有关字面值集合的更多信息,请参考 Python 数据类型。