Python缩进规则「建议收藏」

传统的c、c++、Java都是使用花括号{}来决定作用域的范围,并且会在编程过程中自动对缩进进行管理,但是在python中,则是使用缩进来决定代码的范围,有时候缩进需要根据代码来手动调控,此时如果完全依赖python自动缩进,可能会出现问题。例如://计算数组和,正确格式defsum_list(alist):sum_temp=0foriinalist:sum_temp+=ireturnsum_temp#此处需要手动调节缩进print(s

大家好,又见面了,我是你们的朋友全栈君。

传统的c、c++、Java都是使用花括号{}来决定作用域的范围,并且会在编程过程中自动对缩进进行管理,但是在python中,则是使用缩进来决定代码的范围,有时候缩进需要根据代码来手动调控,此时如果完全依赖python自动缩进,可能会出现问题。例如:
//计算数组和,正确格式

def sum_list(alist):
    sum_temp=0
    for i in alist:
        sum_temp+=i
    return sum_temp    #此处需要手动调节缩进
print(sum_list)        #此处需要手动调节缩进
my_list=[23,45,67,89,100]
my_sum=sum_list(my_list)
print("sum of my list:%d"%(my_sum,))

运行结果:
在这里插入图片描述

//计算数组和,按照自动缩进

def sum_list(alist):
    sum_temp=0
    for i in alist:
        sum_temp+=i
        return sum_temp
    print(sum_list)
    my_list=[23,45,67,89,100]
    my_sum = sum_list(my_list)
    print("sum of my list:%d"%(my_sum,))

运行结果:
在这里插入图片描述
如果完全依赖于自动缩进,代码会出现问题。

python中利用缩进表示控制结构如下
此图片来源于中国MOOC《python语言基础与应用》-北京大学
此图片来源于中国MOOC《python语言基础与应用》-北京大学
注意:
缩进的空白数量可变,但是所有代码块语句必须包含相同的缩进空白数量,此外,采用的缩进方式不同,有的空格缩进,有的tab键缩进,也会造成错误。
在python中,空行也是程序代码的一部分,作用是分隔两断不同功能或含义的代码,例如:函数之间、类的方法之间用空行分隔,以表示一段新代码的开始。
总而言之,在python中,缩进对程序结构起着重大作用,在程序开发时应当摒弃c/c++时的惯性思维,对此多加小心和注意。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126701.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何使用matlab实现分段函数「建议收藏」

    如何使用matlab实现分段函数「建议收藏」实现如下的分段函数:m={t0≤t<1−t+21<t≤20.1其他m=\left\{\begin{array}{rcl}t&&{0\leqt<1}\\-t+2&&{1&am

    2022年4月20日
    407
  • Jsp中EL表达式不解析问题

    Jsp中EL表达式不解析问题记一次很郁闷的Bug         前一天晚上写好的JSP页面,然后发布在Tomcat上面之后,一切正常。第二天早上打开之后,发现css样式始终加载不出来,刚开始以为网速问题(前一天晚上测试一切正常,因此排除代码问题),测试网络一切正常,这就跟尴尬了,那css加载不出来是什么意思,难不成遇见鬼了?于是在发布后的页面检查代码,发现页面没有解析EL表达式,找到问题就想办法解决,于是开始折腾,最终还是…

    2022年6月13日
    30
  • javascript中caller和callee区别以及使用场景

    javascript中caller和callee区别以及使用场景英文翻译 caller nbsp n 访客 通信 呼叫者 打电话者 召集员 calleen 被召者 caller 理解为指的是调用当前函数的函数 也就是调用者 如果没有其他函数调用的话就是 null 举个栗子如果 callerTest 是直接执行的函数 那么 callerTest caller null 如果 test 去调用 callerTest 那么 callerTest caller test 具

    2025年10月6日
    3
  • 用户画像总结

    用户画像总结        最近在工作之余,结合自己的理解和论坛上的一些帖子,整理了份用户画像的文章,个人觉得这篇文章在宏观上很好地描述了用户画像的主要内容。(文章内的图片来源于不同帖子,权当分享,侵删)一、什么是用户画像        用户画像是指根据用户的属性、用户偏好、生活习惯、用户行为等信息而抽象出来的标签化用户模型。通俗说就是给用户打标签,而标签是通过对用户信息分析而来的高度精炼的特征标识。通过打…

    2022年7月18日
    22
  • android 测试用例模板下载,app测试用例模板.doc

    android 测试用例模板下载,app测试用例模板.docapp测试用例模板APP基本测试用例个人首页1.我的页面2.个人信息页面3.个性标签页面4.TA的页面消息页面消息页面发布商品和图片发布商品分享图片买买买页面买买买页面一级分类页面买手热荐品类二级分类页面侧边栏页面购物车页面我的钱包页面一、编号条件步骤预期结果实际结果1打开我的页面?出现我的信息(头像、昵称、签名、关注数、粉丝数、入手、出手)、中部出现切换我发表的与我喜欢的tab、下部列表出现内容…

    2022年7月17日
    12
  • 较完整的 bean生命周期[通俗易懂]

    较完整的 bean生命周期[通俗易懂]首先需要说明的是,Bean的生命周期主要指的是singletonbean,标签的scope默认就是singleton。对prototypebean来说,当用户getBean获得prototypebean的实例后,IOC容器就不再对当前实例进行管理,而是把管理权交由用户,此后再getBean生成的是新的实例。普通JavaBean和SpringBean普通java对象就是new出来,然后不再使用的时候通过垃圾回收机制进行回收; 而springBean是由spring容器来控制的,并且..

    2022年9月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号