zoukankan      html  css  js  c++  java
  • for循环,列表和格式化输出

    一:for 循环

    1.          简单的说如果让你输出1到100之间的整数,用while该怎么实现呢?

    i=0
    
    while i<100:
    
      print(i)
    
      i+=1

      

                 看着是不是只有4行,但是有没有更加简单的办法,不妨我们使用for循环来试一下

    for i in range(1,101,):
      print(i)          
             是不是更加简单,所以说我们总会选择最简单的方法去达到我们的目的
    九九乘法表:使用while
    while i <= 9:
        j = 1
        while j <= i:
            print(str(j) + "*" + str(i) + "=" + str(j * i), end="	")
            j += 1
        print()
        i += 1

    结果:

    1*1=1    
    1*2=2    2*2=4    
    1*3=3    2*3=6    3*3=9    
    1*4=4    2*4=8    3*4=12    4*4=16    
    1*5=5    2*5=10    3*5=15    4*5=20    5*5=25    
    1*6=6    2*6=12    3*6=18    4*6=24    5*6=30    6*6=36    
    1*7=7    2*7=14    3*7=21    4*7=28    5*7=35    6*7=42    7*7=49    
    1*8=8    2*8=16    3*8=24    4*8=32    5*8=40    6*8=48    7*8=56    8*8=64    
    1*9=9    2*9=18    3*9=27    4*9=36    5*9=45    6*9=54    7*9=63    8*9=72    9*9=81    

    如果使用for循环

     


    2. 输出1到100之间的偶数
    for i in range(1,101,):
        if i%2==0:
      print(i)

    输出

    for i in range(1,101,2): print("loop:",i)


    3. break的双重用法
    exit_flag=False
    for i in range(10):
        if i<5:
            continue
            print(i)
        for j in range(10):
            print(j)
            if j==6:
                exit_flag=True
                break
        if exit_flag:
            break
    4...
    for循环中,如果执行break,则下面的就不执行
    (1)            程序: 三次登录
    # _user="sang"
    # _password="123"
    # for i in range(0,3):
    #     username=input("Username:")
    #     password=input("Password")
    #     if username==_user and password==_password:
    #         print("Welcome %s to login"% _user)
    #         break#跳出,中断
    #     else:
    #         print("Invilid username or password")


    比较:
    #for循环更加简单的比较
    # _user="sang"
    # _password="123"
    # for i in range(0,3):
    #     username=input("Username:")
    #     password=input("Password")
    #     if username==_user and password==_password:
    #         print("Welcome %s to login"% _user)
    #         break#跳出,中断
    #     else:
    #         print("Invilid username or password")
    # else:
    #     print("执行次数太多!")_user="sang"
    

      


    再次比较:
    _user="sang"
    _password="123"
    passed_anthentication=False                #anthentication认证
    for i in range(0,3):
        username=input("Username:")
        password=input("Password")
        if username==_user and password==_password:
            print("Welcome %s to login"% _user)
            passed_anthentication=True
            break#跳出,中断
        else:
            print("Invilid username or password")
    if not passed_anthentication:
        print("输入次数太多!")
    

      


    二:格式化输出 基本的格式化,语法为: 格式化符号 % 格式化对象
    ctrl d 直接粘贴到下一行 ctrl ?    注释多行
    name = input("Name:")
    age = input("Age:")
    job = input("Job:")
    salary = input("Salary:")
    msg = '''
    ------------- info of %s  -----------------
    Name: %s
    Age : %s
    Job : %s
    Salary: %s
    ------------ end ----------------
    ''' % (name,name,age,job,salary)
    print(msg)    

    加深比较:
    name = input("Name:")
    age = int(input("Age:"))
    job = input("Job:")
    salary = input("Salary:")
    if salary.isdigit():
        salary=int(salary)
    else:
        print("must input digit")
        exit()#退出程序
    msg ='''
    -------------info of %s -----------------
    name: %s
    age: %d
    job: %s
    salary: %f
    you will be retired in %s years
    ------------end----------------
     '''% (name,name,age,job,salary,100-age)
    print(msg)


    三: 列表 list
    (1) a=("aaa","bbb","ccc","ddd","eee") 元组里进行的 切片:取多个元素
    print(a[1:])   取到最后面
    a[1:4]取下标一到下标4的数字,包括1但是不包括4
    print(a[1:-1])取到倒数第二位
    print(a[1:-1:1])从左到右一个一个取
    print(a[1::2])从左到右隔一个去取
    (2)以下这些操作只能在列表里进行: 列表的一些操作命令
    #a=["aaa","bbb","ccc","ddd","eee"]
    #删除
    #a.remove("ccc") remove("内容")
    #a.pop(2) pop(index)默认尾部删除,可指定索引值
    #del a[2] del a del a[index]
    #a.clear()清空
    #增加
    #a.append("zzz")追加一个数
    #a.insert(1,"ccc") a.insert(index,"内容")
    #a.extend("h") 扩展
    #修改
    #a[2]="mmm" a[index]="新的值"
    #a[1:3]=[111,222,333] a[start:end]=[a,b,c]
    a=[2,5,3,9,2,7]
    #a.sort() 排序,默认升序
    #a.reverse() 反序
    #b=a.count("2") 查找元素的个数
    # b=["f","g","h"]
    # b.extend(a) 连接列表
    print(b)

    (3)以下是一个简单的购物车程序,

    goods_list=[("iphone",6000),("book",500),("watch",2000),("coffee",100),("icecream",50)]#定义商品列表
    salary=input("Your salary is:")   #定义你的工资
    shop_list=[]  #定义购物车列表
    if salary.isdigit():
        salary=int(salary)
        while True:
    
            for i,j in enumerate(goods_list,1):
                print (i,">>>>>>>>>>>",j)
            choice=input("选择需要购买商品的编号[退出: q]:")
            if choice.isdigit():
                choice=int(choice)
                if choice>0 and choice<=len(goods_list):
                    p_item=goods_list[choice-1]
                    if p_item[1]<salary:
                        salary-=p_item[1]
                        shop_list.append(p_item)
                    else:
                        print("余额不足,还剩%s"%salary)
                    print(p_item)
                else :
                    print("编码不存在")
            elif choice=="q":
                print("--------已购买如下-----------商品")
                for i in shop_list:
                    print(i)
                print("您还有余额为:%s"%salary)
                break
    else:
        print("invalid input")


     
  • 相关阅读:
    Using Resource File on DotNet
    C++/CLI VS CSharp
    JIT VS NGen
    [Tip: disable vc intellisense]VS2008 VC Intelisense issue
    UVa 10891 Game of Sum(经典博弈区间DP)
    UVa 10723 Cyborg Genes(LCS变种)
    UVa 607 Scheduling Lectures(简单DP)
    UVa 10401 Injured Queen Problem(简单DP)
    UVa 10313 Pay the Price(类似数字分解DP)
    UVa 10635 Prince and Princess(LCS N*logN)
  • 原文地址:https://www.cnblogs.com/mars527/p/5801182.html
Copyright © 2011-2022 走看看