前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >回顾|程序的组织结构

回顾|程序的组织结构

作者头像
用户3577892
发布2021-02-23 15:10:43
1.8K0
发布2021-02-23 15:10:43
举报
文章被收录于专栏:数据科学CLUB
  • if条件语句
    • 单分支结构
    • 双分支结构
    • 多分支结构
    • 嵌套if使用
    • 条件表达式
    • assert函数
  • while循环
  • for循环
    • 迭代字典
    • 一些迭代工具
  • 跳出循环
    • break语句
    • continue语句
  • pass语句

if条件语句

单分支结构

if语句能够有条件地执行代码,如果条件为真,就执行后续代码块;如果条件为假,就不执行

代码语言:javascript
复制
money = 1000
s = int(input("请输入取款金额"))

if money >= s:
    money -= s
    print("余额为:",money)
代码语言:javascript
复制
请输入取款金额100
余额为:900

双分支结构

如果条件为假没有执行第一个代码块,将进入第二个代码块

代码语言:javascript
复制
num = int(input("请输入一个整数:"))

if num%2 == 0:
    print(num,"是偶数")
else:
#     else后面不接任何条件
    print(num,"是奇数")
代码语言:javascript
复制
请输入一个整数:3
3 是奇数

多分支结构

要检查多个条件,可使用elif。elif是else if的缩写,由一个if子句和一个else子句组合而 成,也就是包含条件的else子句。

代码语言:javascript
复制
num = int(input("输入一个数字:"))

if num > 0:
    print('是正数')
elif num < 0:
    print('是负数')
else:
    print('是0')
代码语言:javascript
复制
输入一个数字:-2
是负数

嵌套if使用

代码语言:javascript
复制
num = int(input("输入成绩:"))

if num > 70:
    if 90<num<=100:
        print("A")
    elif 80<num<=90:
        print("B")
    else:
        print("C")
else:
    if num < 0:
        print("输入错误!")
    else:
        print("D")
    
代码语言:javascript
复制
输入成绩:71
C

条件表达式

Python中还有一种特殊的条件判断,叫做条件表达式,也称三目运算符的 下面的表达式使用if和else确定其值:

代码语言:javascript
复制
a = 10
b = 11
c =  a if  a>b else  b 
print(c)
# 先执行中间的if,如果返回True,输出左边结果,False则输出右边结果。 
代码语言:javascript
复制
11

assert函数

Python的assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行;反之,Python 解释器会报 AssertionError 错误,经常用作程序初期测试和调试过程中的辅助工具。

代码语言:javascript
复制
num = 0
assert 0 < num < 100,"超出范围"
代码语言:javascript
复制
---------------------------------------------------------------------------

AssertionError                            Traceback (most recent call last)

<ipython-input-16-4f32cf376fde> in <module>()
      1 num = 0
----> 2 assert 0 < num < 100,"超出范围"


AssertionError: 超出范围

while循环

  1. if和while的区别:
  • if是判断一次,条件为True执行一行
  • while是判断N+1次,条件为Ture执行N次
  1. while循环的执行流程
  • 初始化变量
  • 条件判断
  • 条件执行体
  • 改变变量
代码语言:javascript
复制
a = 1

while a<10:
    print(a,end="  ")
    a += 1
代码语言:javascript
复制
1  2  3  4  5  6  7  8  9
代码语言:javascript
复制
# 使用while循环计算1到100之间的偶数和

sum = 0
a = 1

while a<101:
    if a%2 == 0:
        sum += a
    a +=1
print(sum)
代码语言:javascript
复制
2550

for循环

基本上, 可迭代对象都是可使用for循环进行遍历的对象。

代码语言:javascript
复制
for i in "python":
    print(i,end="  ")
代码语言:javascript
复制
p  y  t  h  o  n

如果循环体中不需要使用到自定义变量,可将自定义变量写成"_"

代码语言:javascript
复制
for _ in range(5):
    print("Python",end=",")
代码语言:javascript
复制
Python,Python,Python,Python,Python,
代码语言:javascript
复制
# 使用for循环计算1到100之间的偶数和
sum = 0

for i in range(1,101):
    if i%2 == 0:
        sum += i
print(sum)


代码语言:javascript
复制
2550

相比前面使用的while循环,这些代码要紧凑得多。只要能够使用for循环,就不要使用while循环。能用while循环的不一定都可以用for实现,for循环必须知道循环的次数,而while循环循环的次数可以是不确定的,循环次数不定的循环就只能用while循环实现。

迭代字典

要遍历字典的所有关键字,可像遍历序列那样使用普通的for语句

代码语言:javascript
复制
d = {'x': 1, 'y': 2, 'z': 3}

for i in d:
    print(i, 'corresponds to', d[i])
代码语言:javascript
复制
x corresponds to 1
y corresponds to 2
z corresponds to 3
代码语言:javascript
复制
for i in d.values():
    print(i,end = ',')
代码语言:javascript
复制
1,2,3,
代码语言:javascript
复制
for i in d.keys():
    print(i,end = ',')
代码语言:javascript
复制
x,y,z,
代码语言:javascript
复制
for i,j in d.items():
    print(i, 'corresponds to', j)
代码语言:javascript
复制
x corresponds to 1
y corresponds to 2
z corresponds to 3

一些迭代工具

Python提供了多个可帮助迭代序列(或其他可迭代对象)的函数

  1. 并行迭代 有时候,同时迭代两个序列。
代码语言:javascript
复制
names = ['anne', 'beth', 'george', 'damon']
ages = [12, 45, 32, 102]

for i in range(len(names)):
    print(names[i], 'is', ages[i], 'years old')
代码语言:javascript
复制
anne is 12 years old
beth is 45 years old
george is 32 years old
damon is 102 years old

一个很有用的并行迭代工具是内置函数zip,它将两个 序列“缝合”起来,并返回一个由元组组成的序列。返回值是一个适合迭代的对象,要查看其内 容,可使用list将其转换为列表。

代码语言:javascript
复制
list(zip(names, ages))
代码语言:javascript
复制
[('anne', 12), ('beth', 45), ('george', 32), ('damon', 102)]
代码语言:javascript
复制
# “缝合”后,可在循环中将元组解包。
for name, age in zip(names, ages):
    print(name, 'is', age, 'years old')
代码语言:javascript
复制
anne is 12 years old
beth is 45 years old
george is 32 years old
damon is 102 years old

函数zip可用于“缝合”任意数量的序列。需要指出的是,当序列的长度不同时,函数zip将 在最短的序列用完后停止“缝合”。

代码语言:javascript
复制
list(zip(range(5), range(100000000)))
代码语言:javascript
复制
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
  1. 迭代时获取索引

使用enumerate获取序列迭代的索引和值

代码语言:javascript
复制
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
代码语言:javascript
复制
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
代码语言:javascript
复制
list(enumerate(seasons, start=1))
代码语言:javascript
复制
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
代码语言:javascript
复制
for i,j in enumerate(seasons):
    print(i,j)
代码语言:javascript
复制
0 Spring
1 Summer
2 Fall
3 Winter
代码语言:javascript
复制
# enumerate()等价于
def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1
  1. 反向迭代和排序后再迭代

来看另外两个很有用的函数:reversed和sorted。它们类似于列表方法reverse和sort( sorted 接受的参数也与sort类似),但可用于任何序列或可迭代的对象,且不就地修改对象,而是返回 反转和排序后的版本。

代码语言:javascript
复制
sorted([4, 3, 6, 8, 3],key= )
代码语言:javascript
复制
[3, 3, 4, 6, 8]
代码语言:javascript
复制
sorted('Hello, world!')
代码语言:javascript
复制
[' ', '!', ',', 'H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
代码语言:javascript
复制
list(reversed('Hello, world!'))
代码语言:javascript
复制
['!', 'd', 'l', 'r', 'o', 'w', ' ', ',', 'o', 'l', 'l', 'e', 'H']
代码语言:javascript
复制
','.join(reversed('Hello, world!'))
代码语言:javascript
复制
'!,d,l,r,o,w, ,,,o,l,l,e,H'

请注意, sorted返回一个列表,而reversed像zip那样返回一个可迭代对象。不能 对它执行索引或切片操作,也不能直接对它调用列表的方法。要执行这些操作,可先使用list对 返回的对象进行转换。

跳出循环

通常,循环会不断地执行代码块,直到条件为假或使用完序列中的所有元素。但在有些情况 下,可能想中断循环,开始新的代码块或直接结束循环。

break语句

用于结束循环结构,通常与if一起使用

代码语言:javascript
复制
for i in range(3):
    pwd = input("输入密码:")
    if pwd == "1234":
        print("正确")
        break
    else:
        print("错误")
代码语言:javascript
复制
输入密码:1234
正确
代码语言:javascript
复制
# while做个对比
a = 0
while a<3:
    pwd = input("输入密码:")
    if pwd == "1234":
        print("正确")
        break
    else:
        print("错误")
#     改变变量
    a += 1
    
代码语言:javascript
复制
输入密码:1234
正确

continue语句

用于结束当前循环,进入下一次循环,通常与if一起使用

代码语言:javascript
复制
# 打印100以内的偶数
for i in range(1,101):
    if i%2 != 0:
        continue
    print(i,end = ",")
代码语言:javascript
复制
2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,

pass语句

语句什么都不做,只是一个占位符,用在语法上需要语法的地方,用在先搭建语法结构,还没想好代码怎么写的时候

代码语言:javascript
复制
num = int(input("请输入一个整数:"))

if num > 10:
    pass
else:
    print("比10小")
代码语言:javascript
复制
请输入一个整数:11
代码语言:javascript
复制

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学CLUB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • if条件语句
    • 单分支结构
      • 双分支结构
        • 多分支结构
          • 嵌套if使用
            • 条件表达式
              • assert函数
              • while循环
              • for循环
                • 迭代字典
                  • 一些迭代工具
                  • 跳出循环
                    • break语句
                      • continue语句
                      • pass语句
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档