python将变量i的值增加1_Python基础教程之第⼆章---变量和
字符串(1)搬运
Python变量及其使⽤
⽆论使⽤什么语⾔编程,其最终⽬的都是对数据进⾏处理。程序在编程过程中,为了处理数据更加⽅便,通常会将其存储在变量中。
形象地看,变量就像⼀个个⼩容器,⽤于“盛装”程序中的数据。除了变量,还有常量,它也能⽤来“盛装”数据,它们的区别是,常量⼀旦保存某个数据之后,该数据就不能发⽣改变;但变量保存的数据则可以多次发⽣改变,只要程序对变量重新赋值即可。
Python 使⽤等号(=)作为赋值运算符,例如 a = 20 就是⼀条赋值语句,这条语句⽤于将 20 装⼊变量 a 中,这个过程就被称为赋值,即将 20 赋值给变量 a。
注意,变量名其实就是标识符,因此在命名时,既要遵守 Python 标识符命名规范,还要避免和 Python 内置函数以及 Python 保留字重名。
如果你接触过 C、C++、Java 这些⾼级编程语⾔会发现,它们在使⽤变量存储数据时,必须指定该变量所能存储的数据类型,以 C 语⾔为例:int a = 20
这⾏ C 语⾔代码的意思是,声明⼀个整形变量 a 来存储整数 20,这就意味着,我们⽆法⽤ a 存储⼩数、字符以及字符串等其他类型数据,这类编程语⾔被称为强类型语⾔。
和强类型语⾔相对应的是弱类型语⾔,Python 就是典型代表之⼀。弱类型语⾔有以下 2 个特征:变量⽆须声明即可直接赋值,对⼀个不存在的变量赋值就相当于定义了⼀个新变量。
变量的数据类型可以动态改变:同⼀个变量可以⼀会⼉被赋值为整数值,⼀会⼉被赋值为字符串。
对于没有编程基础的读者,可以先不编写真正的 Python 程序,⽽是先打开 Python 的交互式解释器,在这个交互式解释器中“试验”Python。⾸先,在 Python 解释器中输⼊如下内容:>>> a = 5
>>>
上⾯代码没有⽣成任何输出,只是向交互式解释器中存⼊了⼀个变量 a,该变量 a 的值为 5。
如果我们想看到某个变量的值,可以直接在交互式解释器中输⼊该变量。例如,此处想看到变量 a 的值,可以直接输⼊ a。>>> a
5
>>>
可以看到,Python 解释器输出变量 a 的值为 5。
接下来,我们尝试改变变量 a 的值,将新的值赋给变量 a,例如:>>>a = 'Hello , Charlie'
>>>
这会导致变量原来的值被新值覆盖掉,换句话说,此时变量 a 的值就不再是 5 了,⽽是字符串“Hello , Charlie”,a 的类型也变成了字符串。现在再输⼊ a,让交互式解释器显⽰ a 的值:>>> a
'Hello , Charlie'
如果想查看此时 a 的类型,可以使⽤ Python 的 type() 内置函数。>>> type(a)
>>>
可以看到,a 的类型是 str(表⽰字符串类型)。
形象地说,函数就相当于⼀个有魔法的“⿊盒⼦”,你可以向这个“⿊盒⼦“提供”⼀些数据,这个“⿊盒⼦”会对这些数据进⾏处理,这种处理包括转换和输出结果。⽐如 print() 也是⼀个函数,它的作⽤就是输出传⼊的数据。此处 type() 函数的作⽤则⽤于输出传⼊数据的类型。
最后,如果想把上⾯的交互过程转换成真正的 Python 程序,只要将过程中输⼊的每⾏代码放在⼀个⽂件中,并使⽤ print() 函数来输出变量,最后将该⽂件保存为以 .py 结尾的源⽂件即可。
在交互式解释器中,只要输⼊变量名,交互式解释器就会输出变量的值,但在 Python 程序中则必须使⽤ print() 函数来输出变量。
上⾯的交互过程对应的程序如下:#定义⼀个数值类型变量
a = 5
print(a)
#重新将字符串赋值给a变量
a = 'Hello , Charlie'
print(a)
print(type(a))
Python变量命名规则(超级详细)
Python 需要使⽤标识符给变量命名,其实标识符就是⽤于给程序中变量、类、⽅法命名的符号(简单来说,标识符就是合法的名字)。
Python 语⾔的标识符必须以字母、下画线(_)开头,后⾯可以跟任意数⽬的字母、数字和下画线(_)。此处的字母并不局限于 26 个英⽂字母,可以包含中⽂字符、⽇⽂字符等。
由于 Python 3 ⽀持 UTF-8 字符集,因此 Python 3 的标识符可以使⽤ UTF-8 所能表⽰的多种语⾔的字符。Python 语⾔是区分⼤⼩写的,因此 abc 和 Abc 是两个不同的标识符。
Python 2.x 对中⽂⽀持较差,如果要在 Python 2.x 程序中使⽤中⽂字符或中⽂变量,则需要在 Python 源程序的第⼀⾏增
加“#coding:utf-8”,当然别忘了将源⽂件保存为 UTF-8 字符集。
在使⽤标识符时,需要注意如下规则:标识符可以由字母、数字、下画线(_)组成,其中数字不能打头。
标识符不能是 Python 关键字,但可以包含关键字。
js字符串split标识符不能包含空格。
例如下⾯变量,有些是合法的,有些是不合法的:abc_xyz:合法。
HelloWorld:合法。
abc:合法。
xyz#abc:不合法,标识符中不允许出现“#”号。
abc1:合法。
1abc:不合法,标识符不允许数字开头。
Python 的关键字和内置函数
Python 还包含⼀系列关键字和内置函数,⼀般也不建议使⽤它们作为变量名:如果开发者尝试使⽤关键字作为变量名,Python 解释器会报错。
如果开发者使⽤内置函数的名字作为变量名,Python 解释器倒不会报错,只是该内置函数就被这个变量覆盖了,该内置函数就不能使⽤了。
Python 包含了如表 1 所⽰的关键字:
表 1 Python 关键字FalseNoneTrueandasassert breakclasscontinuedefdelelifelse exceptfinallyforfromglobalifimportinislambdanonlocalnotorpassraisereturntrywhilewithyield
实际上 Python ⾮常⽅便,开发者可以通过 Python 程序来查看它所包含的关键字。例如,对于如下程序:#导⼊keyword 模块
import keyword
#显⽰所有关键字
keyword.kwlist
从上⾯代码可以看出,程序只要先导⼊ keyword 模块,然后调⽤ keyword.kwlist 即可查看 Python 包含的所有关键字。运⾏上⾯程序,
可以看到如下输出结果:
['False','None','True','and','as','assert','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','
上⾯这些关键字都不能作为变量名。
此外,Python 3 还提供了如表 2 所⽰的内置函数。
表 2 Python内置函数abs()all()any()basestring()bin()bool()bytearray()callable()chr()classmethod()cmp()compile()
complex()delattr()dict()dir()divmod()enumerate() eval()execfile()file()filter()float()
format()frozenset()getattr()globals()hasattr()hash()help()hex()id()input()int()
isinstance()issubclass()iter()len()list()locals()long()map() max()memoryview()min()next() object()oct() open()
ord()pow()print()property()range()raw_input()reduce()reload()repr()reversed()zip()round()
set()setattr()slice()sorted()staticmethod()str()sum()super()tuple()type()unichr()unicode()
vars()xrange()Zip()__import__()apply()buffer()coerce()intern
上⾯这些内置函数的名字也不应该作为标识符,否则 Python 的内置函数会被覆盖。
netstat命令详解带端口注意:在 Python 2.x 中,print 是关键字⽽不是函数。上⾯这些内置函数(如 unicode())只是 Python 2.x 的内置函数,为了保证 Python
程序具有更好的兼容性,程序也不应该使⽤这些内置函数的名字作为标识符。
Python数值类型(整形、浮点型和复数)及其⽤法
实际开发中,我们经常需要使⽤数字记录游戏中⽤户的得分、游戏中⾓⾊的⽣命值、伤害值等信息,Python 语⾔提供了数值类型⽤于保存
这些数值。
需要注意的是,Python 中这些数值类型都是不可改变的,也就是说,如果我们要修改数字类型变量的值,那么其底层实现的过程是,先将
新值存放到内存中,然后修改变量让其指向新的内存地址,换句话说,Python 中修改数值类型变量的值,其实只是修改变量名所表⽰的内
存空间。
数值类型只是⼀个泛泛的统称,Python 中的数值类型主要包括整形、浮点型和复数类型。
Python整型
整形专门⽤来表⽰整数,即没有⼩数部分的数。在 Python 中,整数包括正整数、0 和负整数。
和其他强类型语⾔不同,它们会提供多种整形类型,开发者要根据数值的⼤⼩,分别⽤不同的整形类型存储,以 C 语⾔为例,根据数值的
⼤⼩,开发者要合理选择 short、int、long 整形类型存储,⼤⼤增加了开发难度。
Python 则不同,它的整型⽀持存储各种整数值,⽆论多⼤或者多⼩,Python 都能轻松处理(当所⽤数值超过计算机⾃⾝的计算功能
时,Python 会⾃动转⽤⾼精度计算)。
datagridview获取选中单元格数据例如如下代码:#定义变量a,赋值为56
a = 56
print(a)
#为a赋值⼀个⼤整数
a = 9999999999999999999999
print(a)
#type()函数⽤于返回变量的类型
print(type (a))
对于没有编程基础的读者, 同样可以在交互式解释器中逐⾏“试验”上⾯程序来观看运⾏效果。由于篇幅限制,本教程后⾯的程序不再详细列出在交互式解释器中逐⾏“试验”的过程。
上⾯程序中,将 9999999999999999999999 ⼤整数赋值给变量 a,Python 也不会发⽣溢出等问题,程序运⾏⼀样正常,这⾜以证明 Python 的强⼤。
使⽤ Python 3.x 运⾏上⾯程序,可以看到如下输出结果:56
9999999999999999999999
从上⾯的输出结果可以看出,此时 a 依然是 int 类型。
但如果⽤ Python 2.x 运⾏上⾯程序,由于输⼊的数值⽐较⼤,Python 会⾃动在其后⾯加上字母 L(或
⼩写字母 l),如下输出结果:
56
9999999999999999999999L
对⽐两种输出结果,不难发现:不管是 Python 3.x 还是 Python 2.x,Python 完全可以正常处理很⼤的整数,只是 Python 2.x 底层会将⼤整数当成 long 类型处理,但开发者通常不需要理会这种细节。
除此之外,Python 的整型还⽀持 None 值(空值),例如如下代码:a = None
print(a) #什么都不输出
Python 的整型数值有 4 种表⽰形式:⼗进制形式:最普通的整数就是⼗进制形式的整数,在使⽤⼗进制表⽰整数值时,不能以 0(零)作为⼗进制数的开头(数值是 0 除外)。
⼆进制形式:由 0 和 1 组成,以 0b 或 0B 开头。例如,101 对应⼗进制数是 5;
⼋进制形式:⼋进制整数由 0~7 组成,以 0o 或 0O 开头(第⼀个字母是零,第⼆个字母是⼤写或⼩写的 O)。需要注意的是,在 Python 2.x 中,⼋进制数值还可以直接以 0(零)开头。
⼗六进制形式:由 0~9 以及 A~F(或 a~f)组成,以 0x 或 0X 开头,
下⾯代码⽚段使⽤了其他进制形式的数:#以0x或0X开头的整型数值是⼗六进制形式的整数
hex_value1 = 0x13
hex_value2 = 0xaF
print("hexValue1 的值为:",hex_value1)
print("hexValue2 的值为:",hex_value2)
#以0b或0B开头的整型数值是⼆进制形式的整数
bin_val = 0b111
print('bin_val的值为:',bin_val)
bin_val = 0B101
print('bin_val的值为:',bin_val)
#以0o或0O开头的整型数值是⼋进制形式的整数
oct_val = 0o54
print('oct_val 的值为:',oct_val)
oct_val = 0O17
print('oct_val 的值为:',oct_val)
为了提⾼数值(包括浮点型)的可读性,Python 3.x 允许为数值(包括浮点型)增加下画线作为分隔符。这些下画线并不会影响数值本⾝。例如如下代码:#在数值中使⽤下画线
one_million = 1000000
print(one_million)
price = 234_234_234 #price 实际的值为234234234
android = 1234_1234 #android 实际的值为12341234
Python浮点型
dirty怎么读浮点型数值⽤于保存带⼩数点的数值,Python 的浮点数有两种表⽰形式:⼗进制形式:这种形式就是平常简单的浮点数,例如 5.12、512.0、0.512。浮点数必须包含⼀个⼩数点,否则会被当成整数类型处理。
科学计数形式:例如 5.12e2(即 5.12×102)、5.12E2(也是 5.12 ×102)。
必须指出的是,只有浮点型数值才可以使⽤科学计数形式表⽰。例如 51200 是⼀个整型值,但 512E2 则是浮点型值。
下⾯程序⽰范了上⾯介绍的关于浮点数的各个知识点:af1 = 5.2345556
#输出af1的值
print("af1的值为:",af1)
af2 = 25.2345
print("af2的类型为:",type(af2))
f1=5.12e2
print("f1的值为:",f1)
python入门教程 非常详细 pdff2 = 5e3
print("f2的值为:",f2)
print("f2的类型为:",type(f2))#看到类型为float
通过第 8 ⾏代码可以看出,虽然 5e3 的值是 5000,但它依然是浮点型值,⽽不是整型值,因为 Python 会⾃动将该数值变为 5000.0。
注意,使⽤浮点数进⾏计算时,可能会出现⼩数位数不确定的情况,⽐如说,计算 0.1+0.2,本来应该得到 0.3,但经过测试你会发
现,Python解释器的运⾏结果为 0.30000000000000004。⼏乎所有编程语⾔都存在这个问题,这与浮点数在底层的存储⽅式有关系(后续章节会做详细介绍)。
Python复数
Python 甚⾄可以⽀持复数,复数的虚部⽤ j 或 J 来表⽰。
for语句流程图画法
如果读者对虚数虚部感到困惑,请直接跳过本节,⼤部分编程并不会⽤到复数这么“⾼级”的数学知识。
如果需要在程序中对复数进⾏计算,可导⼊ Python 的 cmath 模块(c 代表 complex),在该模块下包含了各种⽀持复数运算的函数。
模块就是⼀个 Python 程序,Python 正是通过模块提⾼了⾃⾝的可扩展性的;Python 本⾝内置了⼤量模块,此外还有⼤量第三⽅模块,导⼊这些模块即可直接使⽤这些程序中定义的函数。
下⾯程序⽰范了复数的⽤法:
纯⽂本复制ac1 = 3 + 0.2j
print (ac1)
print(type(ac1)) #输出复数类型
ac2 = 4 - 0.1j
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论