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


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

    #一、与用户交互

    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 运算符的优先级

    • 不推荐记忆
  • 相关阅读:
    第三次作业
    第二次作业
    10.30 非确定的自动机NFA确定化为DFA
    10.23 正规式、正规文法与自动机
    10.16 正规文法与正规式
    10.9 词法分析程序的设计与实现
    9.25 文法和语言总结与梳理
    9.18 语法树,短语,直接短语,句柄
    9.11 理解文法和语言
    9.4 了解编译原理
  • 原文地址:https://www.cnblogs.com/itboy-newking/p/10830682.html
Copyright © 2020-2023  润新知