• 零基础学python-11.3 代码分隔符


    程序代码的块结构

    >>> def testIf(param):#测试if语句
    	'这个函数测试if语句'
    	print('函数开始')
    	if param<1 :
    		print("输入的数字小于1")
    	elif 1<param<3 :
    		print("输入的数字在1和3之间")
    	else :
    		print("输入的数字大于3")
    
    	print('函数结束')
    
    	
    >>> testIf(0)
    函数开始
    输入的数字小于1
    函数结束
    >>> 

    我们下面引入图形来解释上面的代码


    嵌套块代码:一个嵌套块以再往右缩进的语句开始,碰到缩进量较少的语句或文件末尾时就结束

    这个的函数包含3个模块,最顶层是函数名,跟着是跟随print和if,最后就是if里面的执行模块

    >>> def testIf(param):#测试if语句
    	'这个函数测试if语句'
    	print('函数开始')
    	if param<1 :
    		print("输入的数字小于1")
    	elif 1<param<3 :
    		print("输入的数字在1和3之间")
    	else :
    		print("输入的数字大于3")
    
    print('函数结束')
    SyntaxError: invalid syntax
    >>> 
    当程序缩进错误的时候,一般都会有提示,就像上面的,但是,有些时候却不会,而且会造成逻辑上面的问题

    请认真对比下面两个例子:(主要差别在于param大于3的时候)

    >>> def testIf(param):#测试if语句
    	'这个函数测试if语句'
    	print('函数开始')
    	if param<1 :
    		print("输入的数字小于1")
    	elif 1<param<3 :
    		print("输入的数字在1和3之间")
    	else :
    		print("输入的数字大于3")
    		print(param)#我们原来的函数是这样的
    	print('函数结束')
    
    	
    >>> testIf(4)
    函数开始
    输入的数字大于3
    4
    函数结束
    >>> 

    上面的例子我举出正确逻辑,当大于3的时候打印输入数字,我们下面举一个由于缩进而造成的逻辑错误,而且是不报错的

    >>> def testIf(param):#测试if语句
    	'这个函数测试if语句'
    	print('函数开始')
    	if param<1 :
    		print("输入的数字小于1")
    	elif 1<param<3 :
    		print("输入的数字在1和3之间")
    	else :
    		print("输入的数字大于3")
    	print(param)#这里由于手误,没有缩进
    	print('函数结束')
    
    	
    >>> testIf(4)
    函数开始
    输入的数字大于3
    4
    函数结束
    >>> testIf(1)
    函数开始
    输入的数字大于3
    1
    函数结束
    >>> 

    由于手误,没有缩进,所以造成函数的逻辑错误,而且是不报错的逻辑错误

    本来我们想着的是大于3的情况才打印,但是现在无论输入什么都打印出来,所以大家对于缩进一定需要认真注意


    最后,就是需要主要制表符与空格,我们需要避免同时使用,在python3.x里面就加上了这样的报错

    >>> def testIf(param):#测试if语句
    	'这个函数测试if语句'
            print('函数开始')#print的前面全是空格
    	if param<1 :
    		print("输入的数字小于1")
    	elif 1<param<3 :
    		print("输入的数字在1和3之间")
    	else :
    		print("输入的数字大于3")
    	print(param)
    	print('函数结束')
    	
    SyntaxError: inconsistent use of tabs and spaces in indentation
    >>> 

    就说到这里,谢谢大家

    ------------------------------------------------------------------

    点击跳转零基础学python-目录



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    可能是全网最详细的express--middleware
    带你学Node系列之express-CRUD
    简单聊聊ES6-Promise和Async
    Node学习图文教程之express重写留言本案例
    Node.js学习(第四章:初见express)
    彻底弄懂ES6中的Map和Set
    全网最easy的better-scroll实现上拉加载和下拉刷新
    Node中require第三方模块的规则
    canvas实现酷炫气泡效果
    Node.js实现用户评论社区(体验前后端开发的乐趣)
  • 原文地址:https://www.cnblogs.com/raylee2007/p/4896762.html
Copyright © 2020-2023  润新知