十四.Python中的循环与选择结构

数据类型(整形,浮点数,布尔),序列(字符串,列表,元组,字典,集合),可以看作是数据的组织方式.数据可以看做是"砖块"

流程控制语句是代码的组织方式,可以看作是"混凝土"

一个完整的程序离不开,砖块,也离不开混凝土.他们的组合,才能让我们搭建从小到"一个方法",大到"操作系统",这样各种各样的软件

 

Pycharm下载与激活

http://www.jetbrains.com/pycharm-edu/

 

1.激活的方式

购买正版

试用30天

网上寻找激活码

 

个人之前使用的第三种方式

激活方式参考下面链接

http://idea.lanyus.com/

 

创建项目和初始化配置

1.选择:create new Project

 

选择路径(尽量不适用中文路径)

 

修改默认字体大小

file ->setting 搜索font

 

 

运行项目

右键找到run即可

 

 

 

选择结构

选择结构通过判断条件是否成立,来决定执行哪个分支.选择结构有多种形式,分为:单分支,双分支,多分支.流程如下:

 

 

单分支选择结构

if 语句单分支结构的语法形式如下:

if 条件表达式:

    语句/语句块

其中:

条件表达式:可以是逻辑表达式,关系表达式,算术表达式等等.

语句/语句块:可以是一条语句,也可以是多条语句.多条语句,缩进必须对齐一致.

 

 

条件表达式详解

在选择和循环结构中,条件表达式的值为False的情况下:

False ,0,0.0,控制None,空序列对象(空列表,空元祖,空集合,空字典,空字符串),空range对象,空迭代对象.

 

其它清空,均为True.这么看来,Python所有的合法表达式都可以看做条件表达式,甚至包括函数调用的表达式

 

 

注意:

条件表达式中,不能有赋值的操作符"="

 

在Python中,条件表达式不能出现赋值操作符"+",避免了其它语言中经常将关系元素安抚"=="与赋值运算符"="弄混的困扰

直接编译报错

 

双分支选择结构

双分支结构的预付格式如下

if 条件表达式:

    语句1/语句块1

else:

    语句2/语句块2

 

 

 

三元条条件运算符

Python提供了三元运算符,用来在某些简单的双分支赋值情况,三元条件元素安抚语法格式如下;

条件为真时的值 if (条件表达式) esle 条件为假时的值

上面的例子可以写成下面的样子

 

 

多分支选择结构

多分支选择结构的语法格式如下:


if 条件表达式1:

    语句1/语句块1

elif 条件表达式2:
    
    语句2/语句块2


elif 条件表达式n:

    语句块n/语句n

[

else:

    语句n+1/语句块n+1

]

注:

计算机行业,描述语法格式时,使用中括号[]通常表示可选,非必选

多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序.

 

 

 

选择结构嵌套

选择结构可以嵌套,使用时候一定要注意控制好不同级别代码块的缩进量,因为缩进量决定了代码的从属关系.语法格式如下:

if 表达式1:

    语句块1

    if 表达式2:
    
        语句块2

    else:

        语句块3

else:

    if 表达式4:

    语句块4

score = int(input("请输入一个分数:"))

degree = "ABCDE"

num = 0

if score>100 or score <0:

    print("请输入一个0-100的分数")

else:

    num = score//10

if num>6:

        num=5

    print(degree[9-num])

 

循环结构

 

循环结构是用来重复执行一条或者多条语句.表达这样的逻辑:如果符合条件,则反复之心循环体里的语句.在每次执行完成都会判断一次条件是否为True,如果为True则重复执行循环体里的语句.图示如下:

循环体里面的语句至少应该包含改变条件表达式的语句,以使循环趋于结束;否则,就会变成死循环.

 

while 循环

while循环你的语法格式如下:

while 条件表达式:
    
    循环体语句

 

 

 

for 循环和可迭代对象遍历

for循环通常用于可迭代对相关的遍历.for循环的语法格式如下:

for 变量 in 可迭代对象:

    循环体语句

 

可迭代对象

Python包含以下几种可迭代对象:

  • 1.序列,包含:字符串,列表,元组
  • 2.字典
  • 3.迭代器对象(iterator)
  • 4.生成器函数(generator)

 

 

rang对象

 

range对象是一个迭代器对象,用来产生指定范围的数字序列.格式为:

range(start,end[,stop]

生成的数值序列从start开始到end结束(不包含end).若没有写start,则默认从0开始.step是可选步长,默认为1.如下面几种典型事例:

 

循环嵌套:

 

一个循环体内可以嵌套另一个循环,一般称为"循环嵌套","或者"多重循环"

for i in range(1,10):
    
    for j in range(1,10):

        if i>=j:

            print("{0}*{1}={2}".format(j,i,i*j),end="\t")

            print("\n")

或者

for i in range(1,10):

    for j in range(1,i+1):

        print("{0}*{1}={2}".format(i,j,i*j),end="\t")

        print("\n")

 

 

break语句

break语句可用于while和for循环,

用来结束整个循环.当有嵌套循环时候,break语句只能跳出最近的一层循环.

continue语句

continue语句用于结束本次循环,继续下一次,多个嵌套玄幻的时候,continue也是用于最近的一层循环.

 

else 语句

while,for 循环可以附带一个else语句(可选),如果,for,while语句没有被break语句结束,则会执行else子句,否则不执行.语法格式如下:

while 条件表达式:

    循环体

else:

    语句块

 

或者:

for 变量 in 可迭代对象:

    循环体

else:

    语句块

循环代码优化

 

虽然计算机越来越快,空间也越来越大,我们仍然要在性能的问题上"斤斤计较".编写循环时,遵守下面三个原则可以大大提高运行效率,避免笔不要的低效计算;

 

1.尽量减少循环内部不必要的算法

2.嵌套循环中,尽量减少内层循环的计算,尽可能提到外面

3.局部变量查询较快,尽量使用局部变量

 

其它优化手段:

  • 1.链接多个字符串,使用join()而不适用+
  • 2.列表进行元素插入和删除,尽量在列表尾部操作.

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值