Python_分支结构循环与遍历

分支结构循环与遍历

1、基础函数
1.赋值语句
-由赋值符号构成的一行代码
-即"="连起来的语句

2.输入函数
-input()
-从控制台获取用户输入的函数
-input()函数的使用格式
-<变量> = input(<提示信息字符串>)
-用户输入的信息以字符串类型保存在<变量>中
-例:

  guess = input("请输入:")
  # 运行时控制台无"  "

3.评估函数eval()
-去掉参数数量外侧引号并执行余下的语句的函数
-eval基本使用格式:
eval(<字符串或字符串变量>)

4.输出函数print()
-以字符形式向控制台输出输出结果的函数
-print函数默认任务打印完毕后换行,即自动后面加\n(即end=’\n’),一般不循环用end=" "
-例1:

       c = input("请输入温度值:")
       c = int(c) 
       print("现在的温度是{:}℃".format(c))
          现在的温度是

-例2:

       print(eval('"1+2"'))
        #   1+2
       print(1+2)
        #   3

2、表判断的相关运算符
1.比较运算符
-对两个变量或者值进行比较的运算符
-比较的结果是布尔值,即True/False
-条件判断操作符

    <  小于
    <= 小于等于
    >  大于
    >=  大于等于
    ==  等于
    !=   不等于

2.逻辑运算符

  • x and y 两个条件x和y的逻辑与
  • x or y 两个条件x和y的逻辑或
  • not x 条件x的逻辑非
  • python中逻辑运算没有异或运算

3.身份运算符

  • is: 用来检测两个变量是否是同一个变量
    语法就是 var1 is var2
    • is not: 两个变量不是同一个变量
      -数字类型可以直接判断,字符串类型要求其中不包含空格( )
  1. in
    -<> in <>
    -及判断前者是否在后者里面

3、分支结构
-由判断条件决定程序运行方向的语句
-使用保留字if elif else构成条件判断的分支结构
-每个保留字所在行最后存在一个冒号(:)语法的一部分(冒号及后续缩进用来表示后续语法与条件的所属关系)

  1. 单分支结构:
    if <条件>:
    <语句块>
    -如果条件为Ture则执行冒号后语句,为False则不执行
    例:
i = "a"
if i in "abcdefg":
    print(2)
  1. 二分支结构
    -if <条件>:
    <语句块1>
    else:
    <语句块2>
    例:
         guess = input("请输入一个数字:" )
         guess = int(guess)
         if guess == 99:
           print("猜对了")
         else:     
           print("猜错了")

 3.紧凑形式:使用于简单表达式的二分支结构
-<表达式1> if <条件> else <表达式2>
-同样的判断条件,返回"Ture"执行表达式1,返回"False"执行表达式2
例:

          guess = eval(input("请输入一个数:"))
          print("猜{:}了".format("对" if guess==99 else "错"))
  1. 多分支结构
    -if<条件>:
    <语句块1>
    elif:
    <语句块2>

    else:
    <语句块3>
    例:
            score = input("请输入学生成绩:")
            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("不及格")

4、实例;身体质量指数BMI

  height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]: "))
    bmi = weight / pow(height, 2)
    print("BMI数值为:{:.2f}".format(bmi))
    who, nat = "", ""
    if bmi < 18.5:
       who, nat = "偏瘦", "偏瘦"
    elif 18.5 <= bmi <24:
       who, nat ="正常","正常"
    elif 24 <= bmi <25:
       who, nat ="正常","偏胖"
    elif 25 <= bmi <28:
       who, nat ="偏胖","偏胖"
    elif 28<= bmi <30:
       who, nat ="偏胖","肥胖"
    print("BMI指标为: 国际'{0}',国内'{1}'".format(who,nat))

5、循环
1.while循环

  • 由条件控制的循环运行方式
  • while <条件> :
    <语句块>
  • 另一种形式
    while <条件> :
    <语句块1>
    else:
    <语句块2>
  • 反复执行语句块,直到条件不满足时结束
  • 不知道具体循环次数,但能确定循环的成立条件的时候用while循环
    -else语句块作为"正常"完成循环的奖励

例1:

 # 如果说年利率是6.7%,本利是每年翻滚, 则多少年后本钱会翻倍
    benjin = 100000
    year = 0
    while benjin < 200000:
        benjin = benjin * (1+0.067)
        year += 1 
        print("第 {0} 年: {1}元".format(year, benjin))
          第 1 年: 106700.0元
          第 2 年: 113848.9元
          第 3 年: 121476.77629999998元
          第 4 年: 129615.72031209998元
          第 5 年: 138299.97357301068元
          第 6 年: 147566.07180240238元
          第 7 年: 157452.99861316333元
          第 8 年: 168002.34952024528元
          第 9 年: 179258.5069381017元
          第 10 年: 191268.8269029545元
          第 11 年: 204083.83830545243元

例2:

  benjin = 100000
   year = 0
   while benjin < 200000:
      benjin = benjin * (1+0.067)
      year += 1 
      print("第 {0} 年: {1}元".format(year, benjin))
   else:
       print("你本金已翻倍")
         第 1 年: 106700.0元
         第 2 年: 113848.9元
         第 3 年: 121476.77629999998元
         第 4 年: 129615.72031209998元
         第 5 年: 138299.97357301068元
         第 6 年: 147566.07180240238元
         第 7 年: 157452.99861316333元
         第 8 年: 168002.34952024528元
         第 9 年: 179258.5069381017元
         第 10 年: 191268.8269029545元
         第 11 年: 204083.83830545243元
         你本金已翻倍

2.range()函数
-作用:产生循环计数序列

  • range(N)
    产生0到N-1的整数序列,共N个

  • range(M,N)
    产生M到N-1的整数序列,共N-M个

  • 循环语句是按照一定次数循环执行一组语句
    -for <变量> in range(<函数名>):
    <被循环执行的语句>
    -<变量>表示每一次循环的计数,0到<次数>-1的数
    例:

 for i in range(5):  
      print(i)
           0
           1
           2
           3
           4        #最后一个数字为4,但执行次数为5
for i in range(2,5):
        print(i)
       2
       3
       4
                #从2到5-1,执行次数为后面数减前面数即5-2

3.遍历循环

  • for <循环变量> in <遍历结构>:
    <语句块>
  • 由保留字for 和in组成,完成遍历所有元素结束
  • 每次循环,所获得元素放入循环变量,并执行一次语句块
    -字符串遍历循环
    -for c in s :
    <语句块>
    -s是字符串,遍历字符串每一个字符,产生循环
    例:
            for c in "Python123" :
                print(c,end=",")
            P,y,t,h,o,n,1,2,3,

4、列表遍历循环

  • for item in ls :
    <语句块>
    -ls是一个列表,遍历其每一个元素,产生循环
    例:
               for grade in  [97, 98, 99, 100]:
                   print(grade)
                   if grade == 100:
                       print("这个是最高成绩{0}出现了".format(grade))
                   else:
                       print("不是最高成绩")
               else:
                   print("所有元素遍历完了")    #最后一个else在条件选择之外,相当于最后输出一句的”奖励”
    
    

5、文件遍历循环

  • for line in file:
    <语句块>
    -file是一个文件标识符,遍历其每行,产生循环

  • 其中还有另一种遍历形式
    两种结构:
    S= {<返回值>for <循环变量> in <遍历结构>}
    S= {<返回值>for <循环变量> in <遍历结构> if <条件>} #首先if筛选出满足条件的值,再以<返回值>的形式输出值

6、两端括号可以为大括号{} 方括号[],对应生成或转化为集合类型、列表类型
例1:

a = {1,2,3,4}
s = {i for i in s}
print(s)
ss = {2*i for i in s}
print(ss)
{1, 2, 3, 4}
{8, 2, 4, 6}

例2:

a = [1,2,6,8,9]
s = [i for i in a if i % 2 == 0]
ss = {i for i in a if i % 2 == 0}
sss = [2*i for i in a if i % 2 == 0]
print(s)
print(ss)
print(sss) 
[2, 6, 8]
{8, 2, 6}
[4, 12, 16]

6.两个for嵌套使用

  • 行同C语言,前面的for给定一个值后,执行内层循环(或遍历),当内层循环(或遍历)执行完,再跳到外层循环(或遍历),继续给下一个在值或进行下一次内层循环(或遍历)
    例1:
         for row in range(1,10):
             for col in range(1,row+1):
                 print(row*col,end = "  ")
             print("")
             1  
             2  4  
             3  6  9  
             4  8  12  16  
             5  10  15  20  25  
             6  12  18  24  30  36  
             7  14  21  28  35  42  49  
             8  16  24  32  40  48  56  64
             9  18  27  36  45  54  63  72  81

例2:

s1 = [1,2,3,4]
s2 = ['a','b']
s = [m*n for m in s2 for n in s1]
print(s)
s = [m*n for m in s2 for n in s1 if n% ==2]
print(s)
['a', 'aa', 'aaa', 'aaaa', 'b', 'bb', 'bbb', 'bbbb']
['aa', 'aaaa', 'bb', 'bbbb']

7.循环控制保留字

  • continue 和 break
  • continue结束当次循环,继续执行后续次数循环
  • break跳出并结束当前整个循环,执行循环后的语句
  • continue和break 可以与for 和whille循环搭配使用
    例1:
        for c in "PYTHON":
            if c == "T":
                continue
            print(c, end="")  
                      #注:python一般以4个空格为缩进,或4的倍数的空格为缩进
                P
                Y
                H
                O
                N

例2:

for c in "PYTHON":
            if c == "T":
                break
            print(c,end="")
                P
                Y

例3:

       s = "PYTHON"
       while s != "":
           for c in s :
               if c == "T":
                   break
               print(c, end="")
           s = s[:-1]      #就是将 s 字符串中倒数第一个字符删除
               PYPYPYPYPYP
                          #注:由缩进判断外层与内层(形同c语言中{   })

6.异常处理

  • 你知道程序可能存在问题,希望在错误发生时增加一些语句。
  • 这时try 和except就派上用场了。如果没有出错,这些额外的语句(except语句块)就会被忽略掉。你可以把Python 的try 和except功能看作是程序的保险单。
    -形式:
    try :
    <语句块1>
    except :
    <语句块2>
    例:
       try :
           num = eval(input("请输入一个数:"))
           print(num**2)
      except :
           print("输入不是数")
        #用try语句处理异常的行为称为异常捕获。这个示例中except子句打印了一条错误提示信息。一般来说,捕捉到异常,就是给你一个机会去解决它,或者是再试一次,至少程序能正常结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值