python语句与语法
1.python简单语句的基本介绍
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
>>> while True : #简单的while循环 ... reply = input ( 'Enter text:' ) #调用了Input,将输入传参给reply ... if reply = = 'stop' : break #如果输入的是stop就退出循环 ... print (reply.upper()) #如果输入的不是stop就一直将输入的转换为大写字母 ... Enter text:abc #这是第一个输入abc,看到下面转换成大写的ABC了 ABC Enter text:nihao123da NIHAO123DA Enter text:stop #这里输入了一个stop,然后循环就退出了 >>> |
上面的代码利用了Python的while循环,它是Python最通用的循环语句。简单的说,它的组成为:while这个单词,之后跟一个其结果为真或假的表达式,再接一个当顶端测试为真(这时的True看做是永远为真)时不停的迭代的嵌套代码块。
这个Input内置函数,在这里用于通过控制台输出,它打印可选的参数字符串作为提示,并返回用户输入的回复字符串。
利用嵌套代码块特殊规则的单行if语句也在这里出现:if语句体出现在冒号之后的首行,而并不是在首行的下一行缩进。
最后,Python的break语句用于立即退出循环。也就是完全跳出循环语句而程序会继续循环之后的部分。如果没有这个退出语句,while循环会因为测试总是真值而永远循环下去。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
>>> while True : ... reply = input ( 'Enter text:' ) ... if reply = = 'stop' : #如果是stop就退出 ... break ... elif not reply.isdigit(): #如果输入的不是数字类型就打印Bad1 8次 ... print ( 'Bad!' * 8 ) ... else : #否则就打印输入数字的2次方 ... print ( int (reply) * * 2 ) ... #按回车下面是测试结果 Enter text:abc Bad!Bad!Bad!Bad!Bad!Bad!Bad!Bad! Enter text:a Bad!Bad!Bad!Bad!Bad!Bad!Bad!Bad! Enter text: 2 4 Enter text:stop >>> |
Python会执行首次测试为真所想匹的代码块,按照由上至下的顺序,如果所有测试都是假,就执行else部分。
2.赋值、表达式和打印
赋值语句有些特性要专门记住,如下所示
赋值语句建立对象引用值,Python赋值语句会把对象引用值存储在变量名或数据结构的元素内。赋值语句总是建立对象的引用值,而不是赋值对象。因此,Python变量更像是指针,而不是数据存储区域。
变量名在首次赋值时会被创建。Python会在首次将(即对象引用值)赋值给变量时创建其变量名。有些(并非全部)数据结构元素也会在赋值时创建(例如,字典中的元素,一些对象属性)。一旦赋值了,每当这个变量名出线在表达式时,就会被其所引用的值取代。
变量名在引用前必须先赋值。使用尚未进行赋值的变量名是一种错误,如果你视图这么做,Python会引发异常,而不是返回某种模糊的默认值;如果返回默认值,就很难再程序中找出输入错误的地方。
执行隐式赋值的一些操作,在Python中,赋值语句会在许多情况下使用。例如,模块导入、函数和类的定义、for循环变量以及函数参数全都是隐式赋值运算。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
>>> seq = [ 1 , 2 , 3 , 4 ] >>> a,b,c, * d = seq >>> print (a,b,c,d) 1 2 3 [ 4 ] >>> L = [ 1 , 2 , 3 , 4 ] >>> while L: ... front, * L = L ... print (front,L) ... 1 [ 2 , 3 , 4 ] 2 [ 3 , 4 ] 3 [ 4 ] 4 [] |
当使用一个带星号的名称的时候,左边的目标中的项数不需要与主题序列的长度匹配。实际上,带星号的名称可以出现在目标中的任何地方
打印操作
在python中,print语句可以实现打印--只是对程序员友好的标准输出流的接口而已。从技术角度来讲,这是把一个或多个对象转换为其文本表达形式,然后发送给标准输出或另一个类似文件的流。
文件对象方法:例如file.write(str).打印操作是类似的,但更加专注--文件写入方法是把字符串写入到任意的文件,print默认地把对象打印到stdout流,添加了一些自动的格式化。和文件方法不同,在使用打印操作的时候,不需要把对象转换为字符串。
标准输出流:标准输出流(通常叫做stdout)只是发送一个程序的文本输出的默认的地方。加上标准输入流和错误流,它只是脚本启动时所创建的3种数据连接中的一种。标准输出通常映射到启动Python程序的窗口,除非它已经在操作系统的shell中重定向到一个文件或管道。
if测试和语法规则
Python语法规则
Python语法有些特性是我们需要知道的: 语句是逐个运行的:python一般都会按照次序从头到尾执行文件中嵌套块中的语句,但是像if(还有循环)这种语句会使得解释器在程序内跳跃。因为Python经过一个程序的路径叫做控制流程,像if这类会对其产生影响的语句,通常叫做控制流程语句。 块和语句的边界会自动检测。Python的程序块中没有大括号或“begin/end”等分隔字符;反之,Python使用首行下的语句缩进把嵌套块内的语句组合起来。同样地,Python语句一般是不以分号终止的,一行的末尾通常就是该行所写语句的结尾。
复合语句=首行+“: ” + 缩进语句。Python中所有复合语句都遵循相同格式:首行会以冒号终止,再接一个或多个嵌套语句,而且通常都是在首行下缩进的。缩进语句叫做块(有时叫做组)。在If语句中,elif和else分句是if的一部分,也是其本身嵌套块的首行。 空白行、空格以及注释通常都会忽略。文件中空白行将忽略(但在交互模式提示符下不会)。语句和表达式中的空格几乎都忽略(除了在字符串常量内,以及用在缩进时)。注释总是忽略:它们以#字符开头(不是在字符串常量内),而且延伸至该行的末尾。 文档字符串(docstring)会忽略,但会保存并由工具显示。Python支持的另一种注释,叫做文档字符串(简称docsting)。和#注释不同的是,文档字符串会在运行时保留下来以便查看。文档字符串只是出现在程序文件和一些语句顶端的字符串中。Python会忽略这些内容,但是,在运行时会自动将其附加在对象上,而且能由 文档工具显示。
while和for循环
while语句是Python语言中最通用的迭代结构。
1
2
3
4
5
6
7
8
9
10
11
|
>>> x = 'spam' >>> while x: ... print (x,end = '') ... x = x[ 1 :] ... spampamamm>>> |
注意,这里使用end= ‘'关键字参数,使所有输出都出现在同一行,之间用空格隔开;
在python中:
break : 跳出最近所在的循环(跳过整个循环语句)
continue : 跳到最近所在循环的开头处(来到循环的首行)
pass:什么事也不做,只是空占位语句
循环else块:只有当循环正常离开时才会执行(也就是没有碰到break语句)