python的基础语法(if,while,for,break,continue 特殊缩进) |
您所在的位置:网站首页 › python程序的缩进原则 › python的基础语法(if,while,for,break,continue 特殊缩进) |
习惯了java,c++之类的宽容,初学python,被它摆了道下马威,写if else,竟然必须要我正确用缩进格式,原来在python里不能用括号来表示语句块,也不能用开始/结束标志符来表示,而是靠缩进来表示,好吧,我以后多注意 空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。 这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。我们将在后面的章节中看到有关块的用处的例子。 你需要记住的一样东西是错误的缩进会引发错误。例如: i = 5 print 'Value is', i # Error! Notice a single space at the start of the line print 'I repeat, the value is', i 当你运行这个程序的时候,你会得到下面的错误: File "whitespace.py", line 4 print 'Value is', i # Error! Notice a single space at the start of the line ^ SyntaxError: invalid syntax 注意,在第二行的行首有一个空格。Python指示的这个错误告诉我们程序的语法是无效的,即程序没有正确地编写。它告诉你, 你不能随意地开始新的语句块 (当然除了你一直在使用的主块)。何时你能够使用新块,将会在后面的章节,如控制流中详细介绍。 如何缩进 不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。我 强烈建议 你在每个缩进层次使用 单个制表符 或 两个或四个空格 。 选择这三种缩进风格之一。更加重要的是,选择一种风格,然后一贯地使用它,即 只 使用这一种风格。 Python的缩进应该是一个优点,刚开始可能不是非常的习惯,慢慢就行了! 当你看别人的Python代码的时候,你就会深切感受到缩进的好处。 另外,Python的缩进可以在一定程度上防止大量的代码堆积在一起,客观上促使形成良好的代码风格 Py的哲学同Perl/ruby的不同。它不会给你很多功能,然后警告你说,这个这个最好别用,那个那个得注意了。它认为凡是它提供给你的,都是给你用的,只要符合它的语法规范,随便怎么用都可以。如果你能写出烂代码,那说明这个设计有问题。这是一种负责任的态度。 {} 可以允许程序员写出很烂的代码,而这与Py的哲学不符。所以Py在设计之处就规定,用缩进而不是{}表示程序块。 这并没有什么不好的,在绝大多数情况下,缩进比{}更清楚。 但是Py的缩进也不是无往不利的。个人感觉有两个地方不方便。 第一,粘贴代码的时候修改缩进不方便。但好在我有vi。 第二,html嵌套py代码的时候,要同时维护两套缩进,html的和py的。这个太困难了。我觉得这是妨碍PSP流行的最重要的原因。 不可否认,python的代码一旦缩进乱了,是无法重新格式化的。
2. python的if判断 if 判断条件的时候,如果是多个条件一起进行判断,那么就需要逻辑运算符 并且-----------and 或者-----------or 非(取反)----not if 条件1 and 条件2: 条件1和条件2都满足时,做的事情1 。。。。。。。。。。,做的事情2 。。。。。。。。。。,做的事情3 等等 if 条件1 or tiaojian2: 条件1和条件2有一个满足时,做的事情1 。。。。。。。。。。。。,做的事情2 。。。。。。。。。。。。,做的事情3 等等 if not (条件1 and 条件2): 满足条件1和条件2的取反时,做的事情1 。。。。。。。。。。。。,做的事情2 。。。。。。。。。。。。,做的事情3 等等 总结: 方式1: if 条件: 条件满足时做的事情1 条件满足时做的事情2 条件满足时做的事情3 。。。。。。等等 方式2: if 条件: 条件满足时做的事情1 条件满足时做的事情2 条件满足时做的事情3 。。。。。。等等 else: 条件不满足时做的事情1 条件不满足时做的事情2 条件不满足时做的事情3 。。。。。。等等 方式3: if 条件: 条件满足时做的事情1 条件满足时做的事情2 条件满足时做的事情3 。。。。。。等等 elif 条件2: 条件2不满足时做的事情1 条件2不满足时做的事情2 条件2不满足时做的事情3 。。。。。。等等 elif 条件3: 条件3不满足时做的事情1 条件3不满足时做的事情2 条件3不满足时做的事情3 。。。。。。等等 else: 条件1、2、3都不满足的情况下,默认执行的事情,(注意:else可有可无,根据实际的功能来确定) 如果条件1满足,那么就执行条件1满足时做的事情,做完后,下面的条件2、3都不会被执行,而是直接结束整个if语句 如果条件1不满足,那么就判断条件2是否满足,如果条件2满足,那么就执行条件2满足时的代码,然后结束整个if语句 如果条件1、2都不满足,那么就判断条件3,如果条件3满足,那么就执行条件3满足时执行的事情,然后结束整个if语句 周一至周日练习 #!/bin/bash env python #1.获取用户输入的数字 num = input("请输入一个数字,1:周一 2:周二 。。。") #2.根据用户的数据,显示相应的信息 if num=="1": print("周一") elif num=="2": print("周二") elif num=="3": print("周三") elif num=="4": print("周四") elif num=="5": print("周五") elif num=="6": print("周六") elif num=="7": print("周日") else: print("请输入正确数字") if嵌套: if 条件1: 条件1满足时做的事情1 if 条件2: 条件2满足时做的事情2 3. while循环语法结构 当需要语句不断的重复执行时,可以使用while循环 while expression: while_suite 语句while_suite会连续不断的循环执行,直到表达式的值变成0或false![]() xrange 函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。 xrange示例: >>> xrange(5)xrange(5)>>> list(xrange(5))[0, 1, 2, 3, 4]>>> xrange(1,5)xrange(1, 5)>>> list(xrange(1,5))[1, 2, 3, 4]>>> xrange(0,6,2)xrange(0, 6, 2)>>> list(xrange(0,6,2))[0, 2, 4]由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,这两个基本上都是在循环的时候用: for i in range(0, 100): print i for i in xrange(0, 100): print i这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象: a = range(0,100) print type(a) print a print a[0], a[1]输出结果: [0, 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, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]0 1而xrange则不会直接生成一个list,而是每次调用返回其中的一个值: a = xrange(0,100) print type(a) print a print a[0], a[1]输出结果: xrange(100)0 1所以xrange做循环的性能比range好,尤其是返回很大的时候,尽量用xrange吧,除非你是要返回一个列表。 6.break语句 break语句可以结束当前循环然后跳转到下条语句 写程序的时候,应尽量避免重复的代码,在这种情况下可以使用while-break结构![]() ![]() ![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |