3 流程控制语句

简介: 3 流程控制语句

Python中流程控制语句主要有三种if-else,while,for


1. if-else语句用于控制程序执行


1.1 基本形式:


if 判断条件: 执行语句 else: 执行语句


1.2 if 语句判断条件可以用>,<,==,>=,<=来判断其关系


当判断条件为多个值时,可以采用以下语句:


if 判断条件1: 执行语句1 elif 判断条件2: 执行语句2... elif 判断条件3: 执行语句3... else: 执行语句4...

#判读输入课程名字是否是Financial,如果是就输出欢迎学习Financial,如果不是就输出oops
course = 'Financial'
if course == 'Financial':         # 判断变量是否为 Financial
    print ('Welcome to study Financial course!')     # 并输出欢迎信息
else:
    print ('oops!')               # 条件不成立时输出其他信息
Welcome to study Financial course!
#查询一个日期,688698股票的收盘价,如果是交易日就输出收盘价,如果日期不存在,就输出非交易日
SH688698 = {
'1月4日': 18.5,
'1月5日': 18.61,
'1月6日': 19.24,
}
price_date = '1月4日'
if price_date in SH688698.keys():     #判断变量是否在字典里
    print(price_date,SH688698[price_date])    #在的话输出变量日期以及对应的收盘价
else:
    print('非交易日')
1月4日 18.5
#多条件if-else实现猜发行总数(万股)数字游戏
print ('猜猜通源环境发行总数(万股):')  
num =int(input())       #iinput()Python中控制输入语句,读入字符串,由于要猜数字,所以转化成int类型
if num == 3292:            # 判断num的值
    print ('bingo')    
elif num >3292:           # 值大于3292时提示
    print ('Sorry, change a small one')
elif num < 3292:           # 值小于3292时提示
    print ('Sorry,change a big one')
else:
    print ('wrong input')     # 条件均不成立时输出
猜猜通源环境发行总数(万股):
3292
bingo
num =int(input())
# 输入行业市盈率并判断行业市盈率是否在0~10或者80~100之间
if (num >= 0 and num <= 10) or (num >= 80 and num <= 100):    
    print ('Yes')
else:
    print ('No')
3
Yes


2. while 语句


2.1 基本形式:


while 判断条件: 执行语句…


while中判断条件可以是任何表达式,任何非零、或非空(null)的值均为true


执行语句可以是单个语句或语句块


#用while语句控制打印1-10的数字
a=1
while a<=10:
    print(a)
    a+=1
1
2
3
4
5
6
7
8
9
10


2.2 break和continue的用法:


  • break 用于退出循环,一旦遇到break就直接退出循环
  • continue 用于跳过该次循环,继续执行接下来的语句
a = 1
while a < 13: 
    a += 1
    if a%2 == 0:     # 双数时跳过输出
        continue
    print(a)         # 输出单数3,5,7,9
3
5
7
9
11
13


2.3 "判断条件"是个常值


判断条件"是个常值(0除外)的用法:表示循环必定成立

a = 1
while 1:            # 当循环条件为常数时必定成立(0除外)
    print(a)         # 输出1~10
    a += 1
    if a > 10:     # 当i大于10时跳出循环
        break
1
2
3
4
5
6
7
8
9
10


3. for 语句


在Python中,for语句用的非常频繁,同时for语句变式也很多,需要重点进行实践, for循环可以遍历任何序列的项目,如一个列表或者一个字符串


3.1  基本形式:


for iterating_var in sequence: print(iterating_var)

# 遍历一个 2020-12-01 - 2020-12-04 贵州茅台 (sh.600519)的开盘价 列表 
l=[1726.00 ,1746.00, 1738.01  ,1752.00]
for i in l:
    print(i)
#当你有一个股票列表,要以此获取列表中的每一个开盘价时就可以如上操作啦
1726.0
1746.0
1738.01
1752.0
#遍历一个字符串
s='sh.600519'
for i in s:
    print(i)
s
h
.
6
0
0
5
1
9
#通过序列索引迭代
s = ['Financial', 'data',  'analysis']
for i in range(len(s)):
    print(s[i])
Financial
data
analysis


3.2 拓展知识:用for循环构建list


#构建一个0-50的数组
list1=[x for x in range(50)]
print('list1:')
print(list1)
#筛选0-50的偶数部分
list2=[x for x in range(50) if x%2==0]
print('list2:')
print(list2)
list1:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
list2:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48]


Task


2019年1月2日至1月18日,沪深300指数每日的涨跌幅如下:-1.37%、-0.16%、2.4%、0.61%、-0.22%、1.01%、-0.19%、0.72%、-0.87%、1.96%、0.02%、-0.55%、1.82%。对此,分别完成以下若干个编程任务


HS300 = {
'1月2日': -1.37,
'1月3日': -0.16,
'1月4日': 2.4,
'1月5日': 0.61,
'1月6日': -0.22,
'1月7日': 1.01,
'1月8日': -0.19,
'1月9日': 0.72,
'1月10日': -0.87,
'1月11日': 1.96,
'1月12日': 0.02,
'1月13日': 0.55,
'1月14日': 1.82,
}


1. 在依次访问以上涨跌幅数据时,一旦访问到涨幅大于2%时,就终止这个程序,并输出已访问的数据。


# 方法一
for index in HS300:
    if HS300[index]>2:
        print("HS300 %s 涨幅为 %f"%(index, HS300[index]))
        break
HS300 1月4日 涨幅为 2.400000
# 方法二
for index, item in HS300.items():
    if item>2:
        print("HS300 %s 涨幅为 %f"%(index, item))
        break
HS300 1月4日 涨幅为 2.400000


2. 在依次访问以上涨跌幅数据时,一旦访问到涨跌幅为负数时,就跳过这些负数数据,并且输出全部非负数的数据。


# 方法一
for index in HS300:
    if HS300[index]>0:
        print("HS300 %s 涨幅为 %f"%(index, HS300[index]))
    else:
        pass
HS300 1月4日 涨幅为 2.400000
HS300 1月5日 涨幅为 0.610000
HS300 1月7日 涨幅为 1.010000
HS300 1月9日 涨幅为 0.720000
HS300 1月11日 涨幅为 1.960000
HS300 1月12日 涨幅为 0.020000
HS300 1月13日 涨幅为 0.550000
HS300 1月14日 涨幅为 1.820000
# 方法二
for index, item in HS300.items():
    if item>0:
        print("HS300 %s 涨幅为 %f"%(index, item))
    else:
        pass
HS300 1月4日 涨幅为 2.400000
HS300 1月5日 涨幅为 0.610000
HS300 1月7日 涨幅为 1.010000
HS300 1月9日 涨幅为 0.720000
HS300 1月11日 涨幅为 1.960000
HS300 1月12日 涨幅为 0.020000
HS300 1月13日 涨幅为 0.550000
HS300 1月14日 涨幅为 1.820000


3. 在依次访问以上涨跌幅数据时,按照以下3类标准:a.涨幅超过1%;b.跌幅超过1%;c.涨跌幅处于-1%~1%之间,找出相应的数据并以数列方式输出。


# 方法一
hs1={}
hs2={}
hs3={}
print('a.涨幅超过1%;b.跌幅超过1%;c.涨跌幅处于-1%~1%')
print(50*'*')
for index in HS300:
    if HS300[index]>1:
        hs1[index]=HS300[index]
    elif HS300[index]<-1:
        hs2[index]=HS300[index]
    else:
        hs3[index]=HS300[index]
print('a.涨幅超过1%:')        
print(hs1)
print(50*'*')
print('b.跌幅超过1%:')
print(hs2) 
print(50*'*')
print('c.涨跌幅处于-1%~1%:')
print(hs3)         
a.涨幅超过1%;b.跌幅超过1%;c.涨跌幅处于-1%~1%
**************************************************
a.涨幅超过1%:
{'1月4日': 2.4, '1月7日': 1.01, '1月11日': 1.96, '1月14日': 1.82}
**************************************************
b.跌幅超过1%:
{'1月2日': -1.37}
**************************************************
c.涨跌幅处于-1%~1%:
{'1月3日': -0.16, '1月5日': 0.61, '1月6日': -0.22, '1月8日': -0.19, '1月9日': 0.72, '1月10日': -0.87, '1月12日': 0.02, '1月13日': 0.55}
# 方法二
hs1={}
hs2={}
hs3={}
print('a.涨幅超过1%;b.跌幅超过1%;c.涨跌幅处于-1%~1%')
print(50*'*')
for index, item in HS300.items():
    if item>1:
        hs1[index]=item
    elif item<-1:
        hs2[index]=item
    else:
        hs3[index]=item
print('a.涨幅超过1%:')        
print(hs1)
print(50*'*')
print('b.跌幅超过1%:')
print(hs2) 
print(50*'*')
print('c.涨跌幅处于-1%~1%:')
print(hs3)         
a.涨幅超过1%;b.跌幅超过1%;c.涨跌幅处于-1%~1%
**************************************************
a.涨幅超过1%:
{'1月4日': 2.4, '1月7日': 1.01, '1月11日': 1.96, '1月14日': 1.82}
**************************************************
b.跌幅超过1%:
{'1月2日': -1.37}
**************************************************
c.涨跌幅处于-1%~1%:
{'1月3日': -0.16, '1月5日': 0.61, '1月6日': -0.22, '1月8日': -0.19, '1月9日': 0.72, '1月10日': -0.87, '1月12日': 0.02, '1月13日': 0.55}

END


目录
相关文章
|
6月前
|
C# 开发者
C#条件语句
C#条件语句
63 0
|
6月前
|
Shell Windows Perl
Shell编程中的条件判断与流程控制
Shell编程中的条件判断与流程控制
88 0
|
Java
1.5 流程控制语句
1.5 流程控制语句
54 0
|
1月前
|
算法 程序员
流程控制语句
流程控制语句
35 4
|
1月前
|
编译器 C语言 C++
【C语言】循环语句(语句使用建议)
【C语言】循环语句(语句使用建议)
|
2月前
|
C#
C# 一分钟浅谈:条件语句 if-else 的使用
【9月更文挑战第1天】条件语句是编程中的基础概念,C# 中的 `if-else` 语句允许根据不同条件执行不同代码块。本文详细介绍了 `if-else` 语句的基本语法和使用方法,并提供了多个示例,如根据年龄判断是否可以观看电影、根据成绩评定学生等级等。此外,还探讨了常见问题及其解决方法,例如条件表达式错误、忽略边界条件和条件分支过多等问题,并介绍了如何使用括号明确优先级、避免冗余条件、使用 `switch` 语句和提取公共逻辑等技巧。通过本文的学习,你可以更好地理解和运用 C# 中的条件语句。
100 0
|
程序员
控制语句
一、控制语句 控制语句是编程语言中用于控制程序流程的语句。它们允许程序根据特定条件执行不同的代码块,或者重复执行一段代码,从而实现程序的灵活性和逻辑控制。 常见的控制语句包括: 1. 条件语句(if语句):根据条件的真假来执行不同的代码块。例如: ``` if (条件) { // 如果条件为真,执行这里的代码 } else { // 如果条件为假,执行这里的代码 } ``` 2. 循环语句(for循环、while循环):重复执行一段代码块,直到满足特定条件。例如: ``` for (初始化; 条件; 更新) { // 在条件满足的情况下,重复执行这里的代码 } whil
466 0
|
6月前
|
机器学习/深度学习 算法 搜索推荐
条件语句在Pyth
条件语句在Pyth
30 1
|
6月前
|
C语言
在C语言中,for语句是一种常用的循环结构控制语句
在C语言中,for语句是一种常用的循环结构控制语句
71 0
|
6月前
|
C语言
c语言中选择结构和条件判断
c语言中选择结构和条件判断
74 0