Python基础分享之缩进和选择

2023-09-18 10:33:12

 缩进

Python最具特色的是用缩进来标明成块的代码。我下面以if选择结构来举例。if后面跟随条件,如果条件成立,则执行归属于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这样设计的理由纯粹是为了程序好看。

if语句

写一个完整的程序,命名为ifDemo.py。这个程序用于实现if结构。

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之外,不跳过,继续执行。

这种以四个空格的缩进来表示隶属关系的书写方式,以后还会看到。强制缩进增强了程序的可读性。

复杂一些的if选择:

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检测条件,如果发现if的条件为假,那么跳过后面紧跟的块,检测下一个elif的条件; 如果还是假,那么执行else块。
通过上面的结构将程序分出三个分支。程序根据条件,只执行三个分支中的一个。

整个if可以放在另一个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。

 
小结

if语句之后的冒号

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

if  <条件1>:

    statement

elif <条件2>:

    statement

elif <条件3>:

    statement

else:

    statement

 

更多推荐

递归学习——记忆化搜索

目录​编辑一,概念和效果二,题目1.斐波那契数1.题目2.题目接口3.解题思路2.不同的路径1.题目2.题目接口3.解题思路3.最长增长子序列1.题目2.题目接口3.解题思路4.猜数字游戏II1.题目2.题目接口3.解题思路总结:一,概念和效果记忆化搜索可以说是带备忘录的递归,实现这个算法的目的便是减少递归时对同一个节

JS【filter过滤器】的用法

在JavaScript中,filter()是一个高阶函数,它是数组(Array)的一部分,可用于创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。filter()函数的语法如下:letnewArray=arr.filter(callback(element[,index,[array]])[,thisArg]

用tkinter+selenium做一个CSDN热榜爬虫

文章目录UI设计函数封装功能实现自从学会了分析热榜,就是CSDN热榜分析,每天都要爬下来分析一下热榜都在干什么。但脚本运行到底还是不方便,所以接下来就想办法将其做成一个带有界面的热榜爬虫UI设计做一个热榜爬虫的交互式界面,只需要两个按钮外加两个信息框就足够了,所以布局极其简单classTestSTL:def__init

数据融合的并行计算

1、数据融合的算法数据融合的算法当中,需要对每一个格点i进行逐个计算,公式如下2、出现的问题但是随着背景场的空间分辨率的提高,格点数急剧增加。如空间分辨率为0.01°的话,那么15°✖15°的空间范围内就有1500✖1500个格点。那么在进行逐个格点计算的过程中,就非常耗时间。3、编程我先按照逐点计算并赋值给DataA

布隆过滤器(Bloom Filter)

一,布隆过滤器介绍布隆过滤器(BloomFilter)是一个很长的二进制向量(位图BitMap)和一系列随机映射函数(Hash函数)。它是一种数据结构,可以判断一个元素一定不在集合中或可能存在于集合中。优点:相比于传统的list、set、map等数据结构,它更高效、占用空间更少。缺点:存在误判率二,布隆过滤器原理布隆过

如何保护人工智能隐私?

本文旨在帮助这些消费者建立有关人工智能隐私功能的更深入的知识库。此外,它还为企业主和领导者提供了指南,帮助他们更好地了解客户的担忧,以及如何在不牺牲功能的情况下保护隐私的方式使用人工智能。尽管企业和消费者都对人工智能改变日常生活的潜力感到兴奋,但人工智能的广泛使用所带来的隐私问题仍是一个主要问题。显然,随着越来越多的个

2023上海工博会,正运动展位现场直击(二)

9月21日,上海工博会已经成功开展了2天,热度仍旧不减,正运动技术展位6.1H-E261不仅吸引了大量工业自动化专业人士,而且也为他们呈现了一系列令人印象深刻的产品和运动控制解决方案。其中,高性能软硬件产品引发了广泛关注。一、活动现场产品宣讲活动也成为展位上的一大亮点,正运动技术的产品工程师团队分享了最新的运动控制解决

制作游戏demo的心得

制作这个游戏demo出来的心得制作游戏demo的心得制作游戏demo,主要是为了表现自己的技术,那就一门心思想着如何提高表现力就行了,在整体的画面渲染风格方面或许没有什么可选择的,市面上资料最多最成熟的只有卡通渲染,shader自己写要写的东西太多,不如不写,写了也没别人的好看,用什么模型就用什么模型的shader,地

【从0学习Solidity】 16. 函数重载

【从0学习Solidity】16.函数重载博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代码没饭吃的学习汇报系列,大家有兴趣

android AudioRecord

AudioRecord是Android中用于音频录制的类,它的主要作用是捕获来自设备麦克风或其他音频源的音频数据,并将其保存为PCM格式的音频流,以供后续处理或存储。以下是关于AudioRecord的一些常见用途和基本使用方法:作用和用途:音频录制:AudioRecord可以用于录制来自麦克风、耳机麦克风或其他音频输入

安卓机型-MTK芯片掉串码 掉基带 如何用工具进行修复 改写参数

在早期MTK芯片机型中较多使用APBP方式来修复mtk芯片机型的串码。目前MTK机型对于丢基带掉串码问题大都使用MODEMMETA工具来进行修复串码或者改写参数。今天以一款mtk芯片机型来做个演示,高通芯片类的可以参考;高通改串相关工具仅支持在联发科芯片组上运行的设备,无论是智能手机还是平板电脑。它不适用于联发科以外的

热文推荐