第二篇 输入与输出以及基础运算符

第二篇 输入与输出以及基础运算符

#一、与用户交互

1 什么是交互

  • 交互即是与计算机交流,通过输入数据来让计算机执行任务

2 为什么需要交互

  • 计算机的发明是为了奴役计算机,解放劳动力
  • 假设我们现在写了一个ATM系统取代了柜员,如果我们要在这台ATM上取款,那么这个ATM是不是会要求我们输入姓名、密码?是不是需要我们输入我们需要取款金额?这就可以理解为一种交互

3 如何交互

  • 格式:input()

  •   name = input('请输入你的姓名:')
      pwd = input('请输入你的密码:')
      print(type(name))
      print(type(pwd))
    

    结果是 请输入你的姓名:king 请输入你的密码:123 <class 'str'> <class 'str'>

  • 通过上面的打印结果,我们可以发现input()方法的作用只是接收值,并且无论我们输入的值是数字类型、字符串类型、列表类型,input的接收值都是字符串类型。由于我们目前基础知识不够,我们暂时使用input()交互,之后会使用Web/可视化界面的形式交互

#二、格式化输出

*** 由于python简洁的风格,我们在进行编写输出时很容易和以前C语言的printf()搞混,python中不需要输出控制符(%d、%s等等)也可以进行打印

*** 在python中,print()里面可以直接写输出对象,它会将输出对象的值打印出来,但是必须明确它的类型

##       *** ==特别要注意区分输出占位符 {} 里面是放变量名的,可以是任何数据类型,在print()不能把它看作字典定义符号 {} 来使用==

1 占位符

  •   name = 'king'
      gender = 'male'
      age = 26
      print('my name is %s my gender is %s my age is %d'%(name,gender,age))
      #输入层年龄是也可以写成: print('my age is %s'%age)
    

    结果是 my name is king my gender is male my age is 26

  • %s(针对所有数据类型)、%d(仅仅针对数字类型)

2 f-string格式化(推荐)

  •   name = 'king'
      gender = 'male'
      age = 26
      salary = 6.6666 
      print(f'my name is {name} my gender is {gender} my age is {age}')
      print(f'{age/2}')
      print(f'{salary:.2f}') #表示向前移动两位小数点
    

    结果是 my name is king my gender is male my age is 26

    ​ 13

    ​ 6.67

  • f 大小写都可以

3 format格式化(不推荐)

  •   name = 'king'
      sex = man
      print("Hello, {}! You are a good {}.".format(name, sex))
    

    结果是Hello, king! You are a good man.

#三、基本运算符

重点1——解压缩

  • 假如有个列表,我们一次性取出多个值,一般可以做如下操作

    name_list = ['king', 'tom', 'bob']
    x = name_list[0]
    y = name_list[1]
    z = name_list[2]
    print(f'{x}, {y},{z}')
    

    结果是 king,tom,bob

  • 而如果我们用解压缩,则更简单

    name_list = ['king', 'tom', 'bob', ]
    x, y, z = name_list
    print(f'{x},{y},{z}')
    

    结果和上面一样

  • 有时候我们解压缩的值可能是我们不想要的,那么可以使用下划线,但是下划线不能放在开头或结尾

    name_list = ['king', 'tom', 'bob', ]
    x, _, z = name_list '''相当于告诉计算机我们不要中间的数据了,但是不能将*_放在开头或者结尾'''
    print(f'{x},{z}')
    

    输出结果是 king,bob

  • 有时我们可以用 *_ 把中间的全部省略,同样不能放在开头或结尾

    name_list = ['king','queen','tom','bob']
    a,*_,d = name_list #相当于不取出queen和tom
    print(f'a,d')
    

    输出结果是king,bob

  • 解压缩也可以用于字典,不过字典解压缩的是key

    user_info = {'name':'king','age':26}
    x,y = user_info
    print(x,y)
    

    输出结果是 name , age

重点2——交叉赋值

  • 将两个变量的值互换

  • 在C中可以利用临时变量来实现

    #include <stdio.h>
    int main(void)
    {
        int a = 12;
        int b = 6;
        int temporary;
        printf("a = %d, b = %d",a,b);
        
        temporary = a;
        a = b;
        b = temporary;
        printf("a = %d, b = %d",a,b);
        
        return 0;
    }
    

    输出结果是a = 12, b = 6

    ​ a = 6, b = 12

  • 用python来交换两个变量的值,可以有更简单的方法(交叉赋值)

    a = 12 
    b = 6
    a,b = b,a
    print(a,b)
    

    输出结果是 6,12

重点3——链式赋值

  • 给多个变量赋相同的值

  • 一般方法

    a = 3
    b = 3
    c = 3
    d = 3
    
  • python有更简单的方法(链式赋值)

    a = b = c = d = 3
    

1 算术运算符

  • 加( + )、减( - )、乘( * )、除( / )、取整( // )、取余( % )、指数幂( ** )

2 比较运算符

  • 等于 ==、小于 <、小于等于 <=、大于 >、大于等于 >=

  •   i_list = [1, 'a', 3]
      j_list = [3]
      print(i_list < j_list)
    

    结果是True

  •   k_list = [1, 3]
      print(i_list < k_list)  # 报错,列表比较大小仅限于同一位置的对应的值是相同的数据类型
    

    结果是——————————————————————————————

    TypeError Traceback (most recent call last)
    in
    1
    2 k_list = [1, 3]
    ----> 3 print(i_list < k_list) # 报错,列表比较大小仅限于同一位置的对应的值是相同的类型
    TypeError: '<' not supported between instances of 'str' and 'int'

    ————————————————————————————————

3 赋值运算符

  • =、+=、-= 、*=、/=等等

4 逻辑运算符

  • and(且、与) 、or (或)、not(非)

5 身份运算符

  • is(判断id是否相同)、is not(判断id是否不同)

  • is和==的区别:is用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中,类似于比较变量的地址), ==用于判断引用变量的值是否相等。

  •   x = 257
      y = x
      z = 257
      print(f'x is y:{x is y}')
      print(f'x == y:{x == y}')
      print(f'x is z:{x is z}') #由于已经超出了小整数池,所以地址一般不同
      print(f'x == z:{x == z}')                  
    

​ 结果是:

​ x is y:True
​ x == y:True
​ x is z:False
​ x == z:True

6 运算符的优先级

  • 不推荐记忆
原文地址:https://www.cnblogs.com/itboy-newking/p/10830682.html