python笔记05: 程序结构

程序结构 三大结构

  • 顺序
  • 分支
  • 循环

分支

单路分支

  • 分支的基本语法

      if 条件表达式:
          语句1
          语句2
          语句3
          ......
    
  • 条件表达式就是计算结果必须为布尔值的表达式

  • 表达式后面的冒号不能少

  • 注意if后面的出现的语句,如果属于if语句块,则必须同一个锁紧等级

  • 条件表达式结果为True执行if后面的缩进的语句块

# if语句练习
# 如果age小于18岁,则打印信息“去叫家长”
age = 17
if  age < 18:
    print("去叫家长")
去叫家长
# if语句练习
# 如果age小于18岁,则打印信息“去叫家长”
age = 19
if  age < 18:
    print("未满18岁不能饮酒")
    print("也不能进网吧")
    print("回家找妈妈吧")
print("开始上车喽,老司机们")
开始上车喽,老司机们
# if语句练习
# 如果age小于18岁,则打印信息“去叫家长”
age = 19
if  age < 18:
    print("未满18岁不能饮酒")
print("也不能进网吧")
print("回家找妈妈吧")
    
print("开始上车喽,老司机们")
也不能进网吧
回家找妈妈吧
开始上车喽,老司机们
print("你是GG还是MM?")
gender = "man"
if gender == "woman":
    print("美女微信多少?")

print("886")
你是GG还是MM?
886

双向分支

  • if…else…语句

      if 条件表达式:
          语句1
          语句2
          ...
      else:
          语句1
          语句2
          .....
    
  • 双向分支有两个分支,当程序执行到if … else…语句的时候,一定会执行if或else中的一个,也仅执行一个

  • 缩进问题,if和else一个层级,其余语句一个层级

# input的作用是
# 1. 在屏幕上输出括号内的字符串
# 2. 接受用户输入的内容并返回到程序
# 3. input返回的内容一定是字符串类型
gender = input("请输入性别:")
print("你输入的性别是:{0}".format(gender))

if  gender == "男":
    print("886")

else:
    print("美女你好")
        
print("开始上课喽")
请输入性别:女
你输入的性别是:女
美女你好
开始上课喽
# 考试成绩判断
# 90以上: 输出优秀
# 80-90:良
# 70-80:中
# 60-70:平
# 60以下:
# score  存放学生成绩
# 注意input的返回值类型
inputScore = input("请输入学生成绩(0~100):")
# 需要把str转换成int
score = int(inputScore)
if score == 100:
    print("你的成绩为{0}分,你考了100分,牛匹,等级为SSS".format(score))
elif score <100 and score>=90:
    print("你的成绩为{0}分,等级为A,请保持下去!".format(score))
elif score>= 80  and score<90:
    print("你的成绩为{0}分,等级为B,请再接再厉!".format(score))
elif score >= 70 and score<80:
    print("你的成绩为{0}分,等级为C,请好好加油!".format(score))
elif score >=60 and score<70:
    print("你的成绩为{0}分,等级为D,请好好学习!".format(score))
elif score < 60 and score>=0:
    print("你才考了{0}分,等级为E,你在干嘛?".format(score))
else:
    print("你说你考了{0}分,怎么可能,重输一遍吧".format(score))
请输入学生成绩(0~100):66
你的成绩为66分,等级为D,请好好学习!

多路分支

  • 很多分支的情况,简称多路分支

      if  条件表达式:
          语句1
          ....
      elif 条件表达式:
          语句1
          ...
      elif 条件表达式:
          语句1
          ...
          
      .....
      else:
          语句1
          ....
    
  • elif 可以由很多歌

  • else可选

  • 多路分支只会选一个执行

# score  存放学生成绩
# 注意input的返回值类型
score = input("请输入学生成绩:")
# 需要把str转换成int
score = int(score)

if score>=90:
    print("A")
elif score>= 80:
    print("B")
elif score >= 70:
    print("C")
elif score >=60 :
    print("D")
else:
    print("都考不及格???")
    
请输入学生成绩:55
都考不及格???

if语句其他:

  • if语句可以嵌套使用,但不推荐
  • python没有switch-case语句

循环语句

  • 重复执行某些固定动作或者处理基本固定的事物
  • 分类
    • for循环
    • while循环

for循环

  • for循环

      for 变量 in 序列:
          语句1
          语句2
          ...
    
# 列表就是一列数字或者其他值,一般用中括号表示
#[1, 2, 3, 4, 5, 6, 7]
# 例如  ['zhangsan', 'lisi', 'wangwu','jingjing']

list_one = [1, 2, 3, 4, 5, 6, 7]
for number in list_one:
    print("原数字为{0}".format(number))
    print("原数字加10为{0}".format(number + 10))
    print("原数字加100为{0}".format(number + 100))

原数字为1
原数字加10为11
原数字加100为101
原数字为2
原数字加10为12
原数字加100为102
原数字为3
原数字加10为13
原数字加100为103
原数字为4
原数字加10为14
原数字加100为104
原数字为5
原数字加10为15
原数字加100为105
原数字为6
原数字加10为16
原数字加100为106
原数字为7
原数字加10为17
原数字加100为107
name_list = ['zhangdama', 'wangxiaoming', 'liunengneng', 'zhangsan', 'lisi', 'wangwu','maluyuan']
# 打印学生列表姓名
for name in  name_list:
    print("to {0}:".format(name))
    if name=="maluyuan":
        print("I love you".format(name))
    else:
        print("你不是我要找的人,谢谢。".format(name))
to zhangdama:
你不是我要找的人,谢谢。
to wangxiaoming:
你不是我要找的人,谢谢。
to liunengneng:
你不是我要找的人,谢谢。
to zhangsan:
你不是我要找的人,谢谢。
to lisi:
你不是我要找的人,谢谢。
to wangwu:
你不是我要找的人,谢谢。
to maluyuan:
I love you

range介绍

  • 生成一个数字序列
  • 具体范围可以设定
  • 注意,一般在python中,如果由表示数字范围的两个数,一般是包含左边数字不包含右边数字
  • range函数在python2 和 python3中有严重区别
# range练习
# 打印从1-10的数字
# 注意包含左 不包含右
for i in range(0,5):
    print(i) 
0
1
2
3
4
# randint是特例,他左右都包含
import random
for i in range(0,5):
    print(random.randint(0,5))
4
2
2
5
4

for-else语句

  • 当for循环结束的时候,会执行else语句
  • else语句是可选语句
# for-else语句
# 打印列表中的名字,
# 如果马露源没有在列表中,或者列表结束了,打印提示语句,表示很难受
# 如果是马露源,表白。
# 如果是别的学生,那886
for name in  ['zhangsan', 'lisi', 'wangwu','lunengneng', 'lixiaoming', 'wangcuihua', 'maluyuan']:
    print(name)
    if name == "maluyuan":
        print("我的最爱{0}出现了,不需要再找了".format(name))
        break
    else:
        print("我的电量只剩98%了,再见,有空再聊。")
else:
    print("很难受,列表里面没有马露源小可爱")
    print("很难受,列表里面没有马露源小可爱")
    print("很难受,列表里面没有马露源小可爱")
zhangsan
我的电量只剩98%了,再见,有空再聊。
lisi
我的电量只剩98%了,再见,有空再聊。
wangwu
我的电量只剩98%了,再见,有空再聊。
lunengneng
我的电量只剩98%了,再见,有空再聊。
lixiaoming
我的电量只剩98%了,再见,有空再聊。
wangcuihua
我的电量只剩98%了,再见,有空再聊。
maluyuan
我的最爱maluyuan出现了,不需要再找了
# for-else语句
# 打印列表中的名字,
# 如果马露源没有在列表中,或者列表结束了,打印提示语句,表示很难受
# 如果是马露源,表白。
# 如果是别的学生,那886
for name in  ['zhangsan', 'lisi', 'wangwu','lunengneng', 'lixiaoming', 'wangcuihua']:
    print(name)
    if name == "maluyuan":
        print("我的最爱{0}出现了,不需要再找了".format(name))
        break
    else:
        print("我的电量只剩98%了,再见,有空再聊。")
else:
    print("很难受,列表里面没有马露源小可爱")
    print("很难受,列表里面没有马露源小可爱")
    print("很难受,列表里面没有马露源小可爱")
zhangsan
我的电量只剩98%了,再见,有空再聊。
lisi
我的电量只剩98%了,再见,有空再聊。
wangwu
我的电量只剩98%了,再见,有空再聊。
lunengneng
我的电量只剩98%了,再见,有空再聊。
lixiaoming
我的电量只剩98%了,再见,有空再聊。
wangcuihua
我的电量只剩98%了,再见,有空再聊。
很难受,列表里面没有马露源小可爱
很难受,列表里面没有马露源小可爱
很难受,列表里面没有马露源小可爱

循环之break,contineu,pass

  • break: 无条件结束整个循环,简称循环猝死
  • continue:无条件结束本次循环,重新进入下一轮循环
  • pass:通常用于占位,没有跳过功能
# break
# 在数字1-10中,寻找数字7,一旦找到,打印出来,其余则什么都不做
# for 循环中的变量表示,一般用i,k,m,n,或者indx,idx,item之类
# 在python中,如果循环变量名称不重要,可以用下划线(_)代替

for i in range(1,11):
    if i == 7:
        print("找到7了,可以退出循环了")
        break
    else:
        print(i)
1
2
3
4
5
6
找到7了,可以退出循环了
# continue语句联系
# 在数字1-10中,寻找所有偶数,找到偶数后打印偶数

for i in range(1,11):
    if i % 2 == 1:
        continue
    else:
        print("{0} 是偶数".format(i))
    
2 是偶数
4 是偶数
6 是偶数
8 是偶数
10 是偶数
# continue语句 版本 2
# 在数字1-10中,寻找所有偶数,找到偶数后打印偶数

for i in range(1,11):
    if i % 2 == 0:
        print("{0} 是偶数".format(i))
    
2 是偶数
4 是偶数
6 是偶数
8 是偶数
10 是偶数
# continue语句 版本 2
# 在数字1-10中,寻找所有偶数,找到偶数后打印偶数
# 本案例完整显示continue的用法和作用
for i in range(1,11):
    if i % 2 == 1:
        continue
        
    print("{0} 是偶数".format(i))
    
2 是偶数
4 是偶数
6 是偶数
8 是偶数
10 是偶数
# pass例子
age = 19
if age >19:
    pass
else:
    print("你还小")
你还小
# pass例子,一般用于占位
# pass没有跳过功能

for i in range(1,3):
    pass
    print("wo zai zheli")
    
wo zai zheli
wo zai zheli

while循环

  • 一个循环语句

  • 表示当某条件成立的时候,就循环

  • 不知道具体循环次数,但能确定循环的成立条件的时候用while循环

  • while语法:

      while 条件表达式:
          语句块
          
      #另外一种表达方法
      while  条件表达式:
          语句块1
      else:
          语句块2
    
#年利率6.7%,本利每年翻滚,多少年后本钱会翻倍?
captial = 10000
year = 0
while(captial <20000):
    captial *= (1 + 0.067)
    year += 1
print("{0}年后本金翻倍到{1}元".format(year,captial))
11年后本金翻倍到20408.383830545245元
#年利率案例2
#年利率6.7%,本利每年翻滚,多少年后本钱会翻倍?
captial = 10000
year = 0
while(captial <20000):
    captial *= (1 + 0.067)
    year += 1
    print("{0}年时本金翻滚到了{1}元".format(year,captial))
    
else:
    print("{0}年时本金翻滚到了{1}元".format(year,captial))
    
1年时本金翻滚到了10670.0元
2年时本金翻滚到了11384.89元
3年时本金翻滚到了12147.677629999998元
4年时本金翻滚到了12961.572031209998元
5年时本金翻滚到了13829.997357301068元
6年时本金翻滚到了14756.607180240238元
7年时本金翻滚到了15745.299861316334元
8年时本金翻滚到了16800.23495202453元
9年时本金翻滚到了17925.85069381017元
10年时本金翻滚到了19126.88269029545元
11年时本金翻滚到了20408.383830545245元
11年时本金翻滚到了20408.383830545245元
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值