zoukankan      html  css  js  c++  java
  • python的用户交互和运算符

    python的用户交互和运算符

    1. 用户交互

    1.1 python3中的用户交互

    这里站在程序员 ( 人 ) 与计算机之间的交互, 本质就是你向计算机输入内容, 计算机输出内容, 反馈给你.

    1.1.1 接收用户的输入

    通过input方法

    name = input('请输入你的大名:')
    

    1.1.2 坑

    注意: 在python3中,无论用户输入什么input都会把它放到一对引号中, 就是把原数据类型, 转换成了字符串类型.

    所以如果输入的int类型,想要进行四则运算, 那么就要自己手动进行一下类型转换

    x = input('请输入数字')
    x = int(x)
    print(x + 10)
    

    1.2 python2中的用户交互

    1.2.1 raw_input( )

    python2中raw_input ( ) 等同于python3中的input , 都是会把用户输入的内容转化成字符串类型

    1.2.2 input ( )

    python2中的input ( ), 不会自动更改用户输入内容的数据类型, 你输入什么类型,就返回什么类型的内容

    你是不是突然感觉好方便, 不用做数据转换了, 但是你忽略了一点, 程序是给用户使用的, 虽然我们作为开发用python2中input ( ) 很方便, 但是对用户不是友好的, 因为如果你要使用就必须先了解python的基础数据类型,

    如果是这样, 用户估计会口吐芬芳. 所以这些是在python发展中舍弃这种用户交互.

    2. 格式化输出

    输入是input 输出就是output,在python中输出用print体现出来。

    2.1 什么是格式化输出

    就是字面意思,按照一定的格式输出内容, 如: 输出班级中每个学生的姓名和年龄

    姓名:xxx,年龄:xxx
    

    这个时候我们可以把格式理解成模板, 只需要替换里面的关键内容即可

    姓名:张三,年龄:18
    姓名:张四,年龄:19
    姓名:张五,年龄:20
    姓名:张六,年龄:21
    姓名:张七,年龄:22
    

    2.2 格式化输出的三种方式

    2.2.1 % 格式化

    % 格式化是自从python诞生以来就有的一种格式化方法, 意思就是说python2可以用这种方法,python3也可以

    使用:

    # %s 可以接收任意类型
    name = 'alex'
    
    info = '大家好我叫%s' % name
    print(info) # 大家好我叫alex
    
    # %d 只能接收int类型
    
    print('我的年龄是%d' % 18)
    
    # %f 只能接收float类型
    
    print('我的体重是%fkg' % 55.7)
    

    2.2.2 format ( ) 格式化

    format ( ) 是在python2.6后出现的一种方法, 我们做格式化, 本质上是字符串的格式化, format ( ) 是字符串的一种内置方法, 是python解释器提供好的

    使用:

    1. 一般情况

      res = '我叫{},今年{}岁'.format('tom',18) #通过位置一一对应
      print(res)
      
    2. 通过索引

      res = '我叫{1},今年{0}岁'.format(18,'tom') #通过索引一一对应
      print(res)
      
    3. 通过key=value

      res = '我叫{name},今年{age}岁'.format(name='tom',age=18) #通过key=value一一对应
      print(res)
      

    2.2.3 f 格式化

    f 格式化是python3.5以后才出现的一种更优雅的python格式化方式

    使用:

    name = input('请输入名字:')
    age = input('请输入年龄:')
    res = f'你的名字是{name},年龄是{age}岁'
    print(res)
    

    2.3 三种格式化之间的速度

    • 最快: f 格式化
    • 其次: format( ) 格式化 [ 推荐这种方法 ]
    • 最慢: % 格式化

    运算符

    3. 算术运算符

    3.1 什么是算数运算符

    就是做加减乘除四则运算以及其他的复杂运算的, 让计算机能像人一样可以做计算

    符号 含义
    + 相加
    - 相减
    * 相乘
    / 相除 (有小数部分,结果全是float类型)
    // 地板除 (只保留整数部分)
    % 取余/取模 (只保留余数)
    ** 幂运算
    print(10/2) # 5.0 float类型
    

    4. 比较运算符

    4.1 什么是比较运算符

    就是做比较运算的, 让计算机能像人一样可以做比较

    符号 含义
    > 大于
    < 小于
    >= 大于等于
    <= 小于等于
    == 等于
    != 不等于

    5. 赋值运算符

    5.1 什么是赋值运算符

    就是做赋值操作的, 让计算机能像人一样给一个事物附上一个值, 记录下来

    5.1.1 增量赋值
    符号 含义
    = 变量的赋值
    += 加等于
    -= 减等于
    *= 乘等于
    /= 除等于
    //= 取整等于
    %= 取余等于
    **= 幂等于
    5.1.2 交叉赋值
    x = 10
    y = 20
    x,y = y,x
    
    5.1.3 链式赋值
    x=y=z = 10
    # 把栈区中的10的内存地址分别赋值给x,y,z
    
    5.1.4 解压赋值

    一般适合在取开头前几个或者末尾几个数据的值,不适合取数据量大的容器的中间值。

    *x,y,_,z = [10,20,30,40,50]
    print(x,type(x)) # [10] <clas list>
    x,y,*_,z = [10,20,30,40,50]
    _,_,_*m,_ = [10,20,30,40,50]
    

    6. 逻辑运算符

    6.1 逻辑运算

    所谓的逻辑运算,你可以先简单的认为就是判断,比如今天下不下雨,下雨。这就一个判断。

    6.2 逻辑运算符

    逻辑运算符就是用来把多个条件连在一起做判断的符号

    符号 含义
    not 非(取反)
    and
    or
    6.2.1 not
    # not: 就是把紧跟其后的那个条件结果取反
    # not与紧跟其后的那个条件是一个不可分割的整体
    print(not 16 > 13) # False
    print(not 0) # True
    
    6.2.2 and

    and(逻辑与)用来连接左右两个条件。两个条件同时为真,最终结果才为真。如果连接多个条件, 条件全为真, 最

    终结果才是True.

    print(True and 10 > 1) # True
    
    print(1 > 3 and 4 > 8 and False )
    
    6.2.3 or

    or ( 逻辑或 ) 用来连接左右两个条件, 两个条件但凡有一个为True, 最终结果就为True, 两个条件都为False的情况,

    最终结果才为False。

    如果连接多个条件, 条件全为假, 最终结果才是False。

    print(3 > 2 or False) # True
    
    print(False or 6 < 5 or 7 > 99) #False
    

    6.3 逻辑运算符的优先级

    如果单独的就只是一串and/or连接, 按照从左到右的顺序依次运算即可。如果是混合使用就要考虑优先级了。

    6.3.1 优先级

    括号 ( ) > not > and > or

    print(3 > 4 and not 4 > 3 or 1 == 3 and 'x' == 'x' or 3 > 3) # False
    

    这种混合运算一般不会出现在自己代码里, 只有面试题你会见到

    小练习:

    not 3 > 4 and 5 > 7 or 7 > 9 and not 3 == 3 and x=='x'
    
    3 > 4 and 5 > 7 and 7 > 9 or not 3 == 3 and x=='x'
    

    6.4 短路运算

    短路运算:遵循偷懒原则,偷懒到哪个位置,就把当前位置的值返回。在面试题中,一般和逻辑运算符优先级一起

    考。注意一点,返回的值不一定是显示的布尔值,可能是隐式的布尔值

    10 > 3 and True     # 偷懒到True,所以返回True
    10 < 100 and 0 and True # 偷懒到0,返回0
    10 and 0 or 1 > 3 and 9 == 9 or 80 > 70 # 先看优先级,然后再看每个部分偷懒到哪里,然后再算最后的值 True
    

    7. 成员运算符

    7.1 in

    成员运算符就是判断是否存在, 返回一个布尔值

    # 判断一个小字符串是否在一个大字符串中
    print( 'x' in 'zhenxiang' ) # True
    
    # 判断元素是否存在于列表
    print( 10 in [11,10,12]) # True
    
    # 判断key是否存在于字典
    print('k1' in {'k1':1}) # True
    

    7.2 not in

    判断是否不在,一般判断不存在时,推荐使用这种。

    print( 'mn' not in 'hello word') # True
    

    8. 身份运算符

    8.1 is

    is 就是身份运算符, 判断的是id是否相等, id( ) , 在cpython中返回的是程序运行时, 对象在内存中的地址

    x = 'hello mn'
    y = 'hello mn'
    print(x is y) # True
    # 但记住有的时候值相等未必id相等
    
  • 相关阅读:
    Linux下nginx 的常用命令
    Mybatis generator 自动生成代码(2)
    Android Retrofit2 网路编程
    Android webView输出自定义网页
    Android Studio OkHttpClient使用
    Android Studio SVN使用
    Android Toolbar的使用 顶部标题栏+后退键
    Android DrawLayout + ListView 的使用(一)
    RabbitMQ配置与安装
    Struts2拦截器
  • 原文地址:https://www.cnblogs.com/xcymn/p/13492363.html
Copyright © 2011-2022 走看看