day03流程控制

day3 分支和循环

流程控制

# 流程控制  - 代码的执行数据
"""
根据控制代码执行方式的不同,将流程控制分为三种:
1) 顺序结构(默认)- 代码按顺序执行 从上往下按顺序执行,并且每条语句只执行一次
2)分析结构  - 根据条件选择执行代码
3)循环结构(for while) 代码重复执行 代码只写一遍  执行多次
"""

顺序结构代码

#顺序结构代码
a = 10
print(a)
print('111')
print("222")
# 执行结果
# 10

分支结构

# 分支结构
age = 34
print("成年")
print("未成年")
if age >=18:
    print("成年")
else:
    print("未成你")

循环结构

# 循环体
print("hello world")
for x in range(10):
    print("hello world!")

分支结构

# 1.if单分支结构  - 如果xxx就xxx
"""
语法:
if 条件语句:
    代码段

说明:
1)if   关键字:固定写法
2)条件语句  可以是任何有结果得表达式 《例如 :具体数据,已经赋值过得变量,有结果得某种
运算。
3) 固定写法: 必须是英文输入法下面得冒号:
4) 代码段 - 结构上就是和if保持一个缩进1条或者多条语法(至少1条)
# 1)条件语句可以式任何有结果的表达式
if 19:
    print("满足条件才执行的代码")
if 'abc':
    print("满足条件才执行的代码")
if 10 + 20:
    print("满足条件才执行的代码")

# if  a=10: XXXX
# if age >= 18:  X
# print("")
1)条件语句可以是任何结果的表达式 记得缩进
age = 15
if age > 18:
    print("abc0")
    print("----")
print(1023)
# 练习1:根据年龄值打印’‘成年
age = 25
if age >= 18:
    print("成年")
if age < 18:
    print("未成年")
# 根据num能被4整除就打印“4的倍数”
num = 24
if (num % 4 == 0):
    print("4的倍数")
# num = eval(input("请输入一个整数"))
# T = type(num)
# print(T)
2).if双支结构 - 如果xxx就xxx否则就xxx
if 条件语句:
    代码段1
else:
    代码段2
# 练习1:根据num的奇偶性打印“奇数” 或者 “偶数”
num = 31
if num % 2 == 0:
    print("偶数")
else:
    print("奇数")
#  练习2:根据year对应的年份打印“平年“或者”闰年“
year = 2000
if ((year % 4 == 0 and year % 100 != 0) or year % 400 == 0):
    print("闰年")
else:
    print("平年")

# 补充:当条件类型不是布尔值,条件成立还是不成立看条件语句的结果转换成布尔后市True 还是False
# 布尔类型转换 -  所有的类型的数据都可以转换程布尔, 转换的时候所有的零值和空值
# 会转换程False ,其他都是True
print(bool(0), bool(0.0), bool(None), bool(''), bool([]), bool({}))
#   数列 列表      字典  集合 元组
print(bool(23), bool(-231), bool("sdf"))
# 练习3:如果字符串str1 是空串就打印"空字符串"否则打印"非空字符串"
str1 = ""
# 方法1:
if str1 == "":
    print("空字符串")
else:
    print("非空字符串")
# 方法2:
if str1:
    print("非空字符串")
else:
    print("空字符串")
if not str1:
    print("空字符串")
else:
    print("非空字符串")
3)if多分支结构 - 根据不同条件做不同的事情,如果xxx就xxx,
# 方式1:
# if条件语句1:
# 代码段1
# if条件语句2:
# 代码段2:
# if条件语句3:
# 代码段3:
# 方法1
# 如果考试100分 -买车,如果90多分 - 买电脑,如果80多分,买鞋,如果低于80分打死
score = 82
if score == 100:
    print("买车")
if 90 <= score <= 100:
    print("买电脑")
if 80 <= score <= 90:
    print("买鞋")
if score < 80:
    print("打死")
    # 这种一直会执行判断 效率会变慢
# 方法2
"""
if 条件语句1:
    代码段1
elif 条件语句2:
    代码段2
elif 条件语句3:
    代码段3
...
else:
代码段N

"""
if score == 100:
    print("买车")
elif 90 <= score < 100:
    print("买电脑")
elif 80 <= score < 90:
    print("买鞋")
elif score < 80:
    print("打死")
    
    # 这种一符合条件就马上退出

# 练习:根据年龄范围打印:儿童,少年,青年,中年,老年
# 幼年 0-3岁, 少年4017岁,青年18-38岁,中年39069 -老年 70岁以上

age = 56
if 0 <= age <= 3:
    print("幼年")
elif 3 < age <= 17:
    print("少年")
elif 17 < age <= 38:
    print("青年")
elif 38 < age <= 69:
    print("中年")
else:
    print("老年")
#优化结构
age = 56
if age <= 3:
    print("幼儿")
elif age <= 17:
    print("少年")
elif age <= 38:
    print("青年")
elif age <= 69:
    print("中年")
else:
    print("老年")
4)if嵌套
# 练习:根据num的值打印"偶数","奇数"和4的倍数:
# 例如 1-> "奇数"   2->"偶数"  16->"偶数","4的倍数"
num = 23
if num % 2 == 1:  # if num % 2
    print("奇数")
else:
    print("偶数")
    if num % 4 == 0:
        print("4的倍数")

循环结构

1)for循环 - 让代码重复执行
"""
print("hello world!")

# 1.for循环 - 让代码重复执行
"""
for 变量 i 序列:
    循环体
    
说明:
1) for , in  -  关键字: 固定写
2) 变量       - 变量名
3) 序列       - 容器型数据类型的数据,
例如:字符串,列表,字典,元组,集合,迭代器,生成器,range
4) :      -固定写法
5) 循环体    -  结构上,循环体就是和for保持一个缩进的一条或者多条语句(至少1);
            逻辑上,循环体中的代码就是需要重复执行的代码
            
            
执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环任务.
for循环次数和序 列中元素的个数有关

"""
#   变量   序列
for x in 'abc':
    print(x, "hello world!")
# 结果
# a hello world!
# b hello world!
# c hello world!
2)
"range 是等差数列"
"1,2,3,4,5;" "2,4,6,8,10"
"""
1)rang(N) - 产生[0,n)的等差数列,差是1:例如:range(3
- 0 1,2, range(10) - 0,1,2,3,4,5,6,7,8,9
2)range(M,N) ,差是1  :例如:range(2,8) - 2,3,4,5,6,7

3)range (M,N,step) - 产生[M,N)的等差序列,差事step;例如 ;range(1,10,3) - 1 ,4 ,7

""
print("=======")

for i in range(5):
    print(i)

for x in range(9):
    print("x1:", x)

for x in range(2, 8):
    print("x2", x)

for x in range(-5, 5):
    print("x3", x)

for x in range(1, 10, 3):
    print("x4", x)
# 练习 :利用range函数产生一个数字序列: -1,1,3,5,7
for i in range(-1, 8, 2):
    print(i)

# 练习:利用range函数产生一个数字序列:0,1,2,3,4,5,6,7,8,9,10
for i in range(11):
    print(i)

# 练习:利用range函数产生一个数字序列:0,3,6,9,12,15
for i in range(0, 16, 3):
    print(i)

# 产生: 15,13,11,9,7,
# M:15 N:6 step:-2
for x in range(15, 6, -2):
    print("x9", x)

实战

# 实战
# 1)求和问题
# 练习1:用代码计算:1+2+3+ ...+ 100
# 第一步:定义一个变量保存最后的和,初始值是0
num = 0
# 通过for循环获取到需要求和的每个数据:1,2,3,4,5,...,100
for i in range(1, 101):
    # 第三步:每取到一个需要求和的数据,就往保存最后的和的变量中加一个
    num += i
print(num)
# 2)练习2:求nums种所有元素的和
nums = [10, 29, 30, 40]
# for x in [10, 29, 30, 40]:
#     print(x)
num = 0
for i in nums:
    num += i
print(num)
# 3)练习:求100以内所有奇数的和
# 1+3+5+7+9+11+...+99
num = 0
for i in range(1, 100, 2):
    num += i
print(num)
# 4)练习:求nums中所有的奇数的和
s = 0
# 29+25+1
nums = [10, 29, 30, 25, 40, 8, 1]
for i in nums:
    if i % 2:
        s += i
print(s)
# 5)计算100以为能被3整除或者能被5整数的数的和
s = 0
for i in range(100):
    if i % 3 == 0 or i % 5 == 0:
        s += i
print(s)
2)统计个数
# 练习1:统计100以内偶数的个数
# 第一步:定义变量保存最后的个数,初始值是0

count = 0
# 第二部:用for循环获取所有的统计对象
for i in range(2, 99, 2):
    # 渠道一个统计对象,保存个数的变量就在原来基础上加1
    count += 1
print(count)

# 练习2 统计100以内能被3整除或者能被4整除的数的个数
# 3,4,6,8,9,12,15,16,...
count = 0
for i in range(1, 100):
    if i % 3 == 0 or x % 4 == 0:
        count += 1
print(count)
#
# a = int(input())
# b = int(input())
# if (a - b) % 2:
#     print(a - b)
# else:
#     print("a-b的结果不是奇数")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值