Python
变量是指向各种类型值的名字,以后再用到某个值时,直接引用这个名字即可,不用在写具体的值。在Python中,变量的使用环境非常宽松。没有明显的变量声明,而且类型不是固定的。你可以把一个整数赋值给变量,如果觉得不合适,把字符串赋值给它完全可以。>>> x = 100>>> print x100>>> x = 'China'>>> print xChina
在别的语言中这是不允许的,若把字符串赋值给整数变量是错误的。我觉得这样做是合理的,难道书柜只能放书,搁别的东西就不行吗?字符串必须以引号标记开始,并以之标记结束。如果你不能确定变量或数据的类型,就用解释器内置的函数type确认。如下:>>> type('Hello,World!')(type 'str')>>> type(17)(type 'int')>>> x = 'QHD'>>> type(x)
带有小数点的数字叫做浮点数。检查3.0是否为浮点数。如下:>>> type(3.0)(type 'float')只要是用双引号或单引号括起来的值,都属于字符串。例如:>>> type('31')(type 'str')>>> type('2.5')(type 'str')>>> type('P001')
程序中的变量名要有实际意义。变量名可以是由数字和字符组成的任意长度的字符串,但必须以字母开头。python是区分大小写的。举个例子来说,Name和name是两个不同的变量名。请看下面的例子:>>> Name = 'pi'>>> name = 'da'>>> print name, Nameda pi
符号“_”连接由多个单词组成的变量名。请看下面的例子:>>> my_name = 'pi da qing'>>> print my_namepi da qing
如果定义了一个错误的变量名,解释器显示语法错误。请看下面的例子:>>> 1_first = '第一名'SyntaxError: invalid syntax>>> my$ = 'dollar'SyntaxError: invalid syntax>>> print = 12345SyntaxError: invalid syntax
变量1 ¯rst不应以数字开头;变量my$包含非法的字符;变量名print与python定义的关键字print重名,所以print不能再当作变量名了。python定义了28个关键字:and continue else for import not raise assert def except from in or returnbreak del exec global is pass try class elif finally if lambda print while
语句是Python解释器可以执行的命令。我们已经知道两条语句:打印和赋值。
赋值语句有两个作用:一是建立新的变量,二是将值赋予变量。任何变量在使用时,都必须赋值。否则,被视为不存在的变量。下面例子有三条赋值语句。第一个是将值“How are you?”赋值给字符串变量message;第二个是将18赋值给整数变量n;第三个是将数字3.1415926赋值给浮点变量pi。当打印不存在的变量时,系统给出错误信息。如下:>>> message = 'How are you?'>>> n = 18>>> pi = 3.1415926>>> print abc #错误语句,没有该变量。NameError: name 'i' is not defined
一般的情况下,我们用状态图表示变量的状态。左边是变量的名称,右边是变量值,中间的箭头指向值。状态图显示了赋值语句的最终操作结果(如图 2.1)。
也可以用函数type检查变量的类型。变量的类型就是它所指向的值的类型。>>> type(message)(type 'str')>>> type(n)(type 'int')>>> type(pi)(type 'float')
打印语句print输出表达式的计算结果。单个变量也可以看作是表达式。如果你想在一行打印多个变量,可以用逗号将这些变量隔开,逗号禁止换行。例如:>>> x = 3>>> y = 8.9>>> print x, y, 'hello', 93 8.9 hello 9>>> print x, '\t', y, '\t', 'hello', '\t', 93 8.9 hello 9
第二个print语句用制表符将这些变量隔开。下面是一些特殊符号的打印方法:>>> #打印单引号>>> print ''''''>>> #打印双引号>>> print ''''''>>> #打印换行符>>> print '\n'>>> #打印反斜杠>>> print '\\'\
表达式由值、变量和运算符组成。如果在命令行上输入表达式,解释器惊醒计算,并显示结果:>>> 23.3 + 1.224.5
单一的值或变量也可以当作是表达式:>>> 4545>>> x = 1.2>>> x1.2
计算表达式和打印值是有很大区别的,要注意区分。>>> 'I am free!''I am free!'>>> message = 'I am free!'>>> message'I am free!'>>> print messageI am free!>>> print 'I am free!'I am free!
当Python显示表达式的值时,显示的格式与你输入的格式是相同的。如果是字符串,就意味着包含引号。而打印语句输出的结果不包括引号,只有字符串的内容。在脚本文件中,任何表达式都被认为是合法的语句,但是这个语句不做任何事。你可以试着运行下面的脚本文件。# 表达式在脚本文件不做任何事。1234534.90'I am free!'3 + 5这个脚本根本没有任何输出。
运算符是像加号和减号之类的特殊符号。运算符操作的对象是操作数。符号+, -, / ,()的意义与数学中的意义基本相同。一个星号代表的是乘法,两个星号代表的是乘幂。请看下面的例子:下面的例子都是合法的Python表达式:20 + 32hour - 1hour * 60 + minuteminute / 605 ** 2(5+9) * (15-7)
操作数还可以是变量,当运算执行前,变量被它所指向的值替代。>>> 3 * 412>>> 3 ** 481>>> x = 9>>> y = 6>>> x * y54
需要注意的是除法运算。如果除数和被除数都是整数,那么结果是截调小数部分的整数。解决的办法是将除数和被除数任意之一加小数点,或是加小数点和零。例如:>>> 5 / 22>>> 5.0 / 22.5>>> 5 / 2.02.5>>> 5 / 2.2.5
模数操作符“%”计算两个整数的余数:>>> print 5 \% 32>>> print 123 \% 123Python还支持复数的运算。复数有两种表示方法,一种如:>>> a = 1 + 5j>>> b = 4j另一种是用函数的方法:>>> x =complex(1, 5)>>> print x(1+5j)复数也能够进行数学运算:>>> a = 3 +3j>>> b = 4 + 4j>>> print a + b(7+7j)>>> print a - b(-1-1j)>>> print a * b24j>>> print a / b(0.75+0j)
如果表达式中有不止一个运算符,那么计算的顺序依靠“优先规则”。Python运算符的“优先规则”和算术的相同。以下关于“优先规则”的建议:
小括号有最高的优先级。在表达式中,括号内的首先计算。我们可以利用括号使表达式更容易读懂,而不影响计算结果。
乘幂运算的优先级仅次于小括号。例如:>>> (1 + 3) ** 216>>> 3 * 3 ** 227
乘法和除法的优先级相同,比加减法的优先级高。加减法的优先级也是相同的。例如:>>> 2 + 3 * 3 + 213>>> 4 - 10 / 52>>> 4 * 5 / 210具有相同优先权的运算符从左到右进行计算。
通常情况下,字符串放在双引号或单引号之间。字符串不能进行除法、减法和字符串之间的乘法运算,下面的操作都是非法的:>>> 'hello' / 3TypeError: unsupported operand type(s) for /: 'str' and 'int'>>> string = 'string'>>> string - 1TypeError: unsupported operand type(s) for -: 'str' and 'int'>>> string * 'hello'TypeError: unsupported operand type(s) for *: 'str' and 'str'加法“+”能够连接两个字符串成为一个字符串。例如:>>> string1 = 'Red'>>> string2 = 'Hat'>>> print string1 + string2RedHat
由于“Red”和“Hat”没有空格,所以它们非常亲密的连在一起。如果想让字符串之间有空格,可以建一个空字符变量,插在相应的字符串之间让它们隔开,或是在字符串中加入相应的空格。>>> space = ' '>>> str1 = 'A'>>> str2 = 'B'>>> str3 = 'C'>>> print str1 + space + str2 + space + str3A B C>>> astr = 'Linux '>>> bstr = ' Unix '>>> cstr = 'OS/2'>>> print astr + bstr + cstrLinux Unix OS/2
符号“”也可以操作字符串。只是其中一个操作数必须是字符串,另一个必须是整数。字符串被重复整数遍。例如:>>> 3 * 'Love''LoveLoveLove'>>> string = 'python'>>> string * 2'pythonpython'
到目前为止,我们已经学习了程序的几大元素:变量,表达式和语句。但只是孤立的学习,还没有考虑怎样把他们组合起来,完成一项具体的操作。例如,我们可以把加法操作和打印语句结合起来,显示加法表达式的结果:>>> print 10 + 919
实际上,加法操作发生在打印操作之前,所以这两个动作不是同时发生的。任何涉及到数字,字符串和变量的表达式都可作为Print语句的参数。例如:>>> interest = 0.003>>> saving = 12345.98>>> print 'Total: ', saving + saving * interestTotal: 12383.01794
赋值语句,即等号“=”的右边可以是任意的表达式。表达式的值是什么类型,变量就是什么类型。>>> int = 5>>> str = 'hello'>>> var = int * 7>>> type(var)
有一点要记住,赋值语句的左边不能出现表达式。像下面的语句是非法的:>>> name + 9 = 10 #错误的赋值语句。SyntaxError: can't assign to operator
当程序越来越复杂时,读懂它就变得非常困难。程序的各部分之间紧密衔接,想依靠部分的代码来了解整个程序要做的,是困难的。因此,好的习惯是在程序中加入适当的注释,以解释它要做的事情。注释必须以符号“#”开始:# 打印1+1的结果print 1 + 1注释可以单独占一行,也可以放在语句行的末尾:print 1 + 1 # 打印1+1的结果
从符号“#”开始,到这一行的末尾之间的所有内容都被忽略,这部分对程序没有影响。注释信息主要是方便了程序员,一个新来的程序员通过注释信息,能够较快的了解程序所做的;原来的程序员在经过一段时间后,可能对自己的程序不了解了,利用注释信息就能较快的熟悉。
您的帮助是我们莫大的动力!感谢有您一路相随,记得点击页面右上角的“大拇指”或者“两角箭头”,谢谢了。