Python基础 缩进和选择

2019-03-19 01:07|来源: 网络

python最具特色的就是用缩进来写模块。我们下面以if选择结构来举例。

先看C语言的表达方式(注意,这是C,不是Python!

if ( i > 0 ){    

   x = 1;    

   y = 2;

}

这个语句是说,如果i>0的话,我们将进行括号中所包括的两个赋值操作。

括号中包含的就是块操作,它表明了其中的语句隶属于 if

在python中,同样的目的,这段话是这样的

if i > 0:    

   x = 1    

   y = 2

在python中, 去除了i > 0周围的括号,去除了每个语句句尾的分号,还去除了表示块的花括号。

多出来了if ...之后的:(冒号), 还有就是x = 1 和 y =2前面有四个空格的缩进。通过这些缩进,python可以识别这两个语句是隶属于if的。

(python这样设计的理由是:程序会看起来很好看)

我们写一个完整的程序,命名为ifDemo.py

i = 1

x = 1

if i > 0:    

   x = x+1

print x

$python ifDemo.py  # 运行

这个程序在顺序运行到if的时候,检测到真值(True),执行x = x+1, 在此之后,print x语句没有缩进,那么就是if之外。

如果将第一句改成i = -1,那么if遇到假值 (False), 由于x = x+1隶属于if, 这一句就跳过。 print x没有缩进,所以是if之外,不会跳过,继续执行。

这种以四个空格的缩进来表示隶属关系的书写方式,我们以后还会经常看到。Python很强调程序的可读性,这种强制的缩进要求实际上是在帮程序员写出整洁的程序。

复杂一些的选择的例子:

i = 1

if i > 0:

   print 'positive i'    

   i = i + 1

elif i == 0:

   print 'i is 0'    

   i = i * 10

else:

   print 'negative i'    

   i = i - 1

print 'new i:',i

这里有三个块,分别以if, elif, else引领。
python顺序检测所跟随的条件,如果发现为假,那么跳过后面紧跟的块,检测下一个条件; 如果发现为真,那么执行后面紧跟的块,跳过剩下的块
(else等同于elif True)


整个if可以做为一句语句放在另一个if语句的块中

i  = 5

if i > 1:    

   print'i bigger than 1'

   print'good'

   if i > 2:        

       print'i bigger than 2'

       print'even better'

我们可以看到, if i > 2 后面的块相对于该if缩进了四个空格,以表明其隶属于该if

总结:

if语句之后的冒号

以四个空格的缩进来表示隶属关系, python中不能随意缩进

if  <条件1>:

   statement

elif <条件2>:

   statement

elif <条件3>:

   statement

else:

   statement


本文链接:Python基础 缩进和选择作者:Vamei 出处:http://www.cnblogs.com/vamei

相关问答

更多
  • 这样就可以啦 你去下载pythonwin,它会告诉你错误在哪一行, 缩进技巧最好是每块代码以4个空格为佳
  • 交互模式在使用块语句(if, while, try)时,在结束块语句时,要输入额外的回车的。交互模式只会一个命令一个命令地执行,块语句视为一个语句。 >>> if true: ... print "hahahahahaha" (回车) print "hehe" 想要一次执行,必须写成一个脚本,以.py后缀命名(其实用什么后缀都可以)。然后在命令行执行: python mytest.py 望采纳!
  • 应该是255行的try, 没有对应的except的缘故.
  • 我那边已经答你了,这边再补充几句,免得你的分儿浪费了可惜,呵呵。 缩进可以用两种字符:空格/Tab符。 但在Python,两种不能混用,必须统一。 设置:首选项:Tab Settings:python(或改[Default],然后在python中勾选"Use default value"): 如果你习惯用空格,就勾选"Replace by space"。 如果你习惯用Tab,就取消"Replace by space"。 你最好让Notepad++"显示所有字符",以看清区别。
  • 你学过编程吗?一般语言都是通过{}来标识代码块的,而在python中,是通过缩进来识别代码块的。我一个一个的回答你的问题。 缩进几个空格或者tab都是可以的,只要你保持一致就可以。不过为了别人阅读方便,还是用tab或者4个空格比较好。 行开头的空格才算缩进。 当需要书写子代码块时,用缩进。 你要知道缩进的用途,它是用来标识不同的代码块的,通过不同的缩进来判断代码行之间的关系。 if,while,for,def行之后的行首的空格都是缩进。
  • Python 缩进[2021-11-24]

    你在IDLE中每次只能输入一个代码块,比如一个def,for,if,while代码块。 你最后的block0是和if平级还是if内部的? 如果是平级,那你这种写法就是错的,因为if已经是一个代码块了,block0是第二个代码块,这么写是不对的。 如果是内部的,那你应该让它和block1的缩进相同。 从你的意思看,你是想让它和if平级吧?那你需要把if和block0写到一个函数中,或者写到py文件中再运行
  • python的缩进问题[2024-01-29]

    你用什么编辑器?如果是IDLE的话,选中需要缩进的行,按菜单Edit->Indent Region就可以了。 大多数代码编辑器也有类似的功能。如果找不到,可以先用IDLE编辑好了保存一下。
  • python缩进问题[2021-09-07]

    可能是TAB跟空格的问题,解决方案: 1. 把缩进都删除; 2. 每级缩进只用一个空格,这样问题是解决了; 3. 最好的建议是File--New Window,新建一个py文件,在这个里面输入代码。
  • def find_the_atom(filename,r,n): with open(filename) as file: sery=atom_generator(file) atom=next(sery,None) while atom and atom.Model!=r: atom=next(sery,None) if atom: while atom and atom.number!=n: atom=next(sery,None) if atom: return atom else: print('该 ...
  • 报错在第三句,print 'End!'处出现,if语句块写完后,ctrl+d可以看到if语句的打印结果,然后再写print ‘End!',否则像你这么写的话,默认最后一句print也在语句块内,但是没有做缩进,所以报错了。