复习Python第三节

第三节学习内容

目录

1.控制结构

1).顺序结构

2).选择结构(分支结构,判断结构)

3).循环结构

4).break 和continue

5).无限循环

2.round()函数 


1.控制结构

1).顺序结构

代码逐行执行(每行代码执行且执行一次)

2).选择结构(分支结构,判断结构)

通过条件判断决定哪些代码执行,哪些不执行。if---else,if---elif----else。

    ①if---else型 判断条件为真(True)的时候才执行冒号后下面的语句。比如现在我们判断密码输入正确,就执行进入个人中心的命名。

  

②if---elif----else型

      #  if在开头,只有一个,不可省略

      #  elif可以有任意个

      #  else只有末尾一个,可以省略

      #  elif多条件判断中,只执行第一个满足条件的语句

通过实例来展示:

大宝想要买车,于是他做了以下计划:

1.如果年底存款大于100万,买宝马!

2.如果年底存款大于50万,买丰田!

3.如果年底存款大于20万,买二手车!

4.否则,手里的自行车再修修!

def kongzhi():
    money=70
    if money >=100:
        print(("恭喜你!可以买宝马了!"))
        print("真开心!")
    elif money>=50 and money<100:
        print("恭喜你!可以买丰田了!")
    elif money>=20 and money <50:
        print("恭喜你!可以买二手了")
    else:
        print("还不够,手里的车再修修!")
    print("程序结束!")
if __name__=='__main__':
    kongzhi()

③多层嵌套

money=int(input("请输入存款金额(万)?"))
    day=int(input("今天星期几(1-7)?"))
    if money >= 100:
        print(("恭喜你!可以买宝马了!"))
        print("真开心!")
        if day<=5:
            print("周末去提车!")
        else:
            print("今天下午就去提车!")
    elif money >= 50 and money < 100:
        print("恭喜你!可以买丰田了!")
    elif money >= 20 and money < 50:
        print("恭喜你!可以买二手了")
    else:
        print("还不够,手里的车再修修!")
    print("程序结束!")

注意事项:

      #条件后的冒号不要掉

      #else后面不要写条件 

      #缩进必须一致

案例测试(自检很简单):

      为一家超市开发一个简易的收银系统(以3-5种商品为例):使用变量保存︰商品编号、商品价格、商品名字。           ( 商品价格严格一点都是小数,可以改为小数。)

    1.提示用户输入商品编号和数量,然后显示总价多少钱。

    2.提示用户输入付款金额,然后显示找零金额。

spbh01="1001"
    spjg01=23.1
    spmz01="苹果"
    spbh02 = "1002"
    spjg02 = 12
    spmz02 = "香蕉"
    spbh03 = "1003"
    spjg03 = 33
    spmz03 = "橙子"
    money=0.0
    name=""
    input1=input("请用户输入商品编号:")
    if input1==spbh01:
        input2 = int (input("请用户输入商品数量:"))
        money=float(input2*spjg01)
        name=spmz01
    elif input1==spbh02:
        input2 = int (input("请用户输入商品数量:"))
        money = float(input2 * spjg02)
        name = spmz02
    elif input1 == spbh03:
        input2 = int (input("请用户输入商品数量:"))
        money = float(input2 * spjg03)
        name = spmz03
    else:
        print("没有此商品")
    zhifu=float(input("用户支付钱:"))
    sheng=float(zhifu-money)
    if sheng>=0:
        print("你购买的是{0}找零{1}块钱:".format(name,sheng))
    else:
        print("你购买的是{0}还需要付款{1}块钱:".format(name,(-1)*sheng))

小数产生的误差,所以引用round()函数。

3).循环结构

 ①认识循环

          就是循环体中的数据,进行循环限定的次数。

 for x in range(0,10):   #循环10次
        print("你好")

②for循环 

    格式:for 变量名 in 序列:

                       循环语句

 for x in range(0,10):   #循环10次
        print("第{0}次打印".format(x),"你好")   # x 是第几次

   注意:range()函数 几种形式:1.range(开始值,结束值),2.range(开始值,结束值,步长)。

    也可以不使用range()函数,可以是序列  ['a','b','c'] 。

  for循环遍历容器:将容器中的数据一个一个获取出来。

   直接遍历测试:

names=["张三","李四","王五","钱柳"]
    for name in names:   #将names列表赋值给name,之后打印出来。
        if name=="王五":
           print("有这个人",name)

   针对于列表、元组、字典、集合set:(可以使用索引)

names=["张三","李四","王五","钱柳"]
    for i in range(0,len(names)):
        print(names[i])
total=0
    scores=(86,87,78,90,76,99,100) #元组使用
    for score in scores:
        total=total+score
    print(total)
 #循环遍历字典,只获得键
    dicta={ "name":"zhangsan","age": 18,"hobby" :"playball"}
    for x in dicta:
        print(x,dicta[x])  #通过键获得值
#集合的用法和元组差不多的   
    seta={1,23,4,5,6,4}
    for x in seta:
        print(x)

 测试最大最小值:

#第一种方式求值,直接调用函数 
   scores=[23,46,68,89,90,34,89]
   print(max(scores))
   print(min(scores))
#第二种方式求值
   scores=[23,46,68,89,90,34,89]
   max1=scores[0]
   min1=scores[0]
   for x in scores:
        if max1<x:
            max1=x
        if min1>x:
            min1=x
   print(max1)
   print(min1)

③while循环

      while循环表示通过判断条件来控制循环语句的执行。

      在你确定循环条件而不确定循环次数时,那么while是最好的选择。

i=0
    while i<10:
        print("第",i,"年","还款1.2W")
        i+=1

④嵌套循环

    for year in range(1,11):
        for month in range(1,13):
            print("第{0}年,第{1}个月还款1k".format(year,month))
        print("第",year,"年")

   嵌套之遍历多维容器

lista=[1,2,3,4,5]
    listb=[3,4,5,2,1]
    listc=[16,74,3,2,1]
    listx=[lista,listb,listc]
    for x in listx:
        for i in x:
            print(i)

⑤循环练习1

 解答1:

count=0
    n=10
    for x in range(1,n+1):
        input1=int(input("用户输入第{0}个数据:".format(x)))
        count+=input1
    avg=float(round(count/n))
    print(avg)

解答2:

   high=884400.0
    paper=0.08
    count=0
    while paper<=high:
        paper=paper*2   #对折
        count+=1        #对折次数
    print(count)

解答3:

   #穷举法,鸡 0-36,兔 35-鸡
     for j in range(0,36):
        t=35-j
        if j*2+t*4==94:
            print(j,t)

解答4:

    for i in range(0,21):
        for j in range(0,34):
            z=100-5*i-3*j    #凑百千
            chu=z*3      #雏鸡个数
            if  j+i+chu==100 :  #凑白只
                print("公鸡:{0},母鸡:{1},雏鸡:{2}".format(i,j,chu))

4).break 和continue

      break:结束整个循环操作
      continue:结束本次循环,继续下次循环

 #承接上一题,输出多个答案,我只输出一个答案,不要含有0只的,使用break与contiune。
    flag=0
    for i in range(0,21):
        for j in range(0,34):
            z=100-5*i-3*j    #凑百千
            chu=z*3      #雏鸡个数
            if  j+i+chu==100 :  #凑白只
                if i==0 or j==0 or chu==0:
                    continue
                else:
                    flag+=1
                    if flag==1:
                        print("公鸡:{0},母鸡:{1},雏鸡:{2}".format(i,j,chu))
                    else:
                        break

5).无限循环

        如果循环中的循环条件永远为真,且没有break关键字进行终止,那么就形成了一个无限循环.也被成为死循环。

2.round()函数 

      消除float型带来的误差,保留指定的小数位。  round(小数,个数) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值