• 4 运算符 流程控制


     1.格式化输出

    现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式

    name = input("Name:")
    age = input("age:")
    job = input("job:")
    hometown = input("hometown:")
    
    print("-----info of", name , "-----")
    print("Name:",name)
    print("age:",age)
    print("job:",job)
    print("hometown:",hometown)
    print("-----end-----")

      1.1 占位符版本

    你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势

    只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦

    name = input("Name:")
    age = input("Age:")
    job = input("Job:")
    hobbie = input("Hobbie:")
    
    info = '''
    ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name 
    Name  : %s  #代表 name 
    Age   : %s  #代表 age  
    job   : %s  #代表 job 
    Hobbie: %s  #代表 hobbie 
    ------------- end -----------------
    ''' %(name,name,age,job,hobbie)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 
    # %s string
    # %d int
    # %f float
    print(info)

    %s就是代表字符串占位符,除此之外,还有%d,是数字占位符,

      1.2 %d版本报错

    如果把上面的age后面的换成%d,就代表你必须只能输入数字啦

    age     : %d  

    我们运行一下,但是发现出错了。。。

    让我大声告诉你,input接收的所有输入默认都是字符串格式!

    要想程序不出错,那怎么办呢?简单,你可以把str转成int

    age = int(  input("Age:")  )
    print(type(age))

    肯定没问题了。相反,能不能把字符串转成数字呢?必然可以,str( yourStr )

      1.2 版本 int转换版本

    name = input("Name:")
    age = int(input("age:"))
    job = input("job:")
    hometown = input("hometown:")
    
    info = '''
    ----------info of %s-------
    Name:       %s
    age:        %d
    job:        %s
    hometown:   %s
    ---------end----------------
    '''%(name, name, age, job, hometown)
    print(info)
    Name:alex
    age:22
    job:it
    hometown:xian
    
    ----------info of alex-------
    Name:       alex
    age:        22
    job:        it
    hometown:   xian
    ---------end----------------

       1.3 %f版本

    name = input("Name:")
    age = int(input("age:"))
    job = input("job:")
    hometown = input("hometown:")
    
    info = '''
    ----------info of %s-------
    Name:       %s
    age:        %f
    job:        %s
    hometown:   %s
    ---------end----------------
    '''%(name, name, age, job, hometown)
    print(info)
    
    # 执行结果
    Name:alex
    age:22
    job:it
    hometown:xian
    
    ----------info of alex-------
    Name:       alex
    age:        22.000000
    job:        it
    hometown:   xian
    ---------end----------------

       1.4 %s版本:%s是万能的,一般都用%s就可以了

    name = input("Name:")
    age = int(input("age:"))
    job = input("job:")
    hometown = input("hometown:")
    print(type(name),type(age))
    
    info = '''
    ----------info of %s-------
    Name:       %s
    age:        %s
    job:        %s
    hometown:   %s
    ---------end----------------
    '''%(name, name, age, job, hometown)
    print(info)
    
    
    # 执行结果
    Name:alex
    age:22
    job:it
    hometown:xian
    <class 'str'> <class 'int'>
    
    ----------info of alex-------
    Name:       alex
    age:        22
    job:        it
    hometown:   xian
    ---------end----------------

    2.运算符

    计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算

      2.1 算数运算

    以下假设变量:a=10,b=20

    # 取模运算
    >>> 10%2
    0
    >>> 10%3
    1
    >>> 10%5
    0
    
    # 判断奇偶数
    >>> 9%2
    1
    >>> 10%2
    0
    >>> 11%2
    1
    >>> 12%2
    0
    # 除法
    >>> 10/2
    5.0
    >>> 10/3
    3.3333333333333335
    
    
    # 取整除
    >>> 10//2
    5
    >>> 10//3
    3

      2.2 比较运算

    以下假设变量:a=10,b=20

    >>> a
    10
    >>> b
    15
    >>> a == b
    False
    >>> a != b
    True
    >>> a <> b     # python3 没有这个方法了
      File "<stdin>", line 1
        a <> b
           ^
    SyntaxError: invalid syntax

      2.3 赋值运算

    以下假设变量:a=10,b=20

    >>> a,b,c
    (15, 10, 3)
    >>>
    >>> c + a
    18
    >>> c = c+a
    >>> c
    18
    >>> c += a
    >>> c
    33
    >>> c -= a
    >>> c
    18
    >>> c = c - a
    >>>

      2.3 逻辑运算

    3.流程控制

      3.1 单分支 

    if 条件:
        满足条件后要执行的代码

        

        

      3.2 双分支

    if 条件:
        满足条件执行代码
    else:
        if条件不满足就走这段

     

    name = input("name:")
    gender = input("gender:")
    age = int(input("age:"))
    
    if gender == "" and age < 28 :
        print("i like the girl")
    else:
        print("姐弟恋也很好")
    
    # 运行结果1
    name:alex
    gender:男
    age:22
    姐弟恋也很好
    
    # 运行结果2
    name:syhanshan
    gender:女
    age:22
    i like the girl

          

    # 运行结果
    name:a;ex
    gender:男
    age:43
    let us go cs
    ---haha----
    
    # 运行结果
    name:alex
    gender:女
    age:29
    姐弟恋也很好
    ---haha----

      3.3 多分支

      回到流程控制上来,if...else ...可以有多个分支条件

    if 条件:
        满足条件执行代码
    elif 条件:
        上面的条件不满足就走这个
    elif 条件:
        上面的条件不满足就走这个
    elif 条件:
        上面的条件不满足就走这个    
    else:
        上面所有的条件不满足就走这段
    •  猜年龄的游戏

    # 运行结果
    Guess age is :22
    it is too small,please be bigger
    
    Guess age is :44
    it is too big,please be smaller
    
    Guess age is :27
    you got it
    • 匹配成绩的小程序吧,成绩有ABCDE5个等级,与分数的对应关系如下
    A    90-100
    B    80-89
    C    60-79
    D    40-59
    E    0-39

          要求用户输入0-100的数字后,你能正确打印他的对应成绩 

       

    # 运行结果
    please your score:80
    you get B
    
    please your score:44
    you get D

         

  • 相关阅读:
    pymoo: Multi-objective Optimization in Python
    读代码——NSGAII
    读论文——A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II
    神经网络入门00
    梯度下降pthon实现
    在线加解密工具
    安恒杯-一张谍报
    漏洞挖掘学习记录
    安恒杯-元数据存储
    安恒杯-babysql
  • 原文地址:https://www.cnblogs.com/venicid/p/8340901.html
Copyright © 2020-2023  润新知