文档章节

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

raylee2015
 raylee2015
发布于 2015/09/17 16:40
字数 837
阅读 9
收藏 0

程序代码的块结构

>>> 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-目录



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

本文转载自:http://blog.csdn.net/raylee2007/article/details/48223675

raylee2015
粉丝 6
博文 265
码字总数 44224
作品 0
江门
私信 提问
Python猫荐书系列之七:Python入门书籍有哪些?

本文原创并首发于公众号【Python猫】,未经授权,请勿转载。 原文地址:https://mp.weixin.qq.com/s/ArN-6mLPzPT8Zoq0Na_tsg 最近,猫哥的 Python 技术学习群里进来了几位比较特殊的同学:一...

豌豆花下猫
05/26
61
0
新手学python,如何才能更快升职加薪,迎娶白富美,走上人生巅峰

最近在问答里发现好多咨询怎么学习python,或者学习难不难的问题,这里给大家提几点建议: 了解自己的目标 我开始学编程的时候,连基础的知识都不知道,小白的很!记得我开始看教材,就是输入...

python教程
2018/05/31
0
0
扎心!“我学了半年 Python,还是找不到工作”

Python到底能做什么? Python易学,编译速度又超快。因为其拥有大量第三方库,所以开发人员不必重复造轮子,就像搭积木一样,只要擅于利用这些库就可以完成绝大部分工作。 它可以做网络爬虫。...

CSDN资讯
02/18
0
0
我是如何零基础自学转行人工智能的(附十问十答)

每个字都是经验所得,都是站在一个零基础的人的角度写的,纯手打+网上优秀资源整合,希望大家能每个字都认真看。 接下来文章会侧重在以下几方面 1、零基础如何进行人工智能的自学(以找工作为...

经济与编程
2018/08/01
0
0
扎心!“我学了半年Python,还是找不到工作”

Python到底能做什么? Python易学,编译速度又超快。因为其拥有大量第三方库,所以开发人员不必重复造轮子,就像搭积木一样,只要擅于利用这些库就可以完成绝大部分工作。 它可以做网络爬虫。...

AI科技大本营
02/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

学习记录 java面试题(一)

1. JDK和JRE的区别 JDK是整个JAVA的核心,包括了Java运行环境JRE,一堆Java工具和Java基础的类库。通过JDK开发人员将源码 文件(java文件)编译成字节码文件(class文件)。 JRE是Java运行环境,...

Pole丶逐
23分钟前
5
0
springboot 部署到外部tomcat

入口类继承SpringBootServletInitializer 并重写protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)方法 如下 import org.springframework.boot.SpringApplic......

雷开你的门
29分钟前
3
0
hashCode和equals方法的关系

equals相等,hashcode必相等; hashCode()在哈希表中起作用,如HashSet、HashMap等。 当我们向哈希表(如HashSet、HashMap等)中添加对象object时,首先调用hashCode()方法计算object的哈希码,...

无名氏的程序员
33分钟前
2
0
技术分享 | MySQL 慢查询记录原理和内容解析

作者:高鹏 文章末尾有他著作的《深入理解 MySQL 主从原理 32 讲》,深入透彻理解 MySQL 主从,GTID 相关技术知识。 源码版本:percona 5.7.14 本文为学习记录,可能有误请谅解,也提供了一些...

爱可生
42分钟前
3
0
elementui 树型节点

节点选择时,勾选节点。 提交给后端时,传递 this.$refs.menuTree.getCheckedKeys(); 半选父节点 getHalfCheckedKeys() 不需要提交。...

东东笔记
42分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部