• Python之 交互与运算符


    一 与用户交互

    1.1 输入input

    # 在python3中input功能会等待用户的输入,用户输入任何内容,都存成字符串类型,然后赋值给等号左边的变量名
    >>> username=input('请输入您的用户名:') 
    请输入您的用户名:jack # username = "jack"
    >>> password=input('请输入您的密码:') 
    请输入您的密码:123 # password = "123"
    
    # 了解知识:
    # 1、在python2中存在一个raw_input功能与python3中的input功能一模一样
    # 2、在python2中还存在一个input功能,需要用户输入一个明确的数据类型,输入什么类型就存成什么类型
    >>> l=input('输入什么类型就存成什么类型: ')
    输入什么类型就存成什么类型: [1,2,3]
    >>> type(l)
    <type 'list'>
    

    1.2 输出print

    # 默认print功能有一个end参数,该参数的默认值为"
    "(代表换行),可以将end参数的值改成任意其它字符
    print("aaaa",end='')
    print("bbbb",end='#')
    print("cccc",end='@')
    #整体输出结果为:aaaabbbb#cccc@
    

    二 格式化输出

    ​ 注:这里格式化输出都是指的是字符串的格式化输出。

    1.1 %方式

    1 %s可以接收任意类型,%d只能接收int

    ​ 值按照位置与%s一一对应,少一个不行,多一个也不行

     res="my name is %s my age is %s" %("18",'han')
     print('my age is %d' %18)
    

    2 以字典的形式传值,打破位置的限制

    res="我的名字是 %(name)s 我的年龄是 %(age)s" %{"age":"18","name":'han'}
    

    3 输入出 百分比形式数据 例:97%

    print('成功的概率 %s%%'%(97,)) #97%
    

    1.2 str.format

    1 按位置传值

    	res='我的名字是 {} 我的年龄是 {}'.format('jax',18)	
      res1='我的名字是 {0}{0}{0} 我的年龄是 {1}{1}'.format('ying',18)
    

    2 打破位置的限制,按照key=value传值

    res="我的名字是 {name} 我的年龄是 {age}".format(age=18,name='yinghan')
    

    3 四舍五入

    print('{salary:.3f}'.format(salary=1232.12351))  #精确到小数点后3位,四舍五入,结果为:1232.124
    

    1.3 f " " 方式

    这是python3.5以后才推出的格式化方式。

    x = input('your name: ')
    y = input('your age: ')
    res = f'我的名字是{x} 我的年龄是{y}'  
    print(res)
    

    { }内的字符串可以被当做表达式运行

    res =f'10+3'
    print(res) #13
    

    2 拓展

    2.1 填充与格式化

    ​ 先取到值,然后在冒号后设定填充格式填充自字符,对齐方式,宽度

    # *<10:左对齐,总共10个字符,不够的用*号填充
    print('{0:*<10}'.format('开始执行')) # 开始执行******
    print('{x:=>10}'.format(x = '开始执行'))# ******开始执行
    # *>10:右对齐,总共10个字符,不够的用*号填充
    print('{0:*>10}'.format('开始执行')) # ******开始执行
    print('{x:=<10}'.format(x='开始执行')) # 开始执行******
    # *^10:居中显示,总共10个字符,不够的用*号填充
    print('{0:*^10}'.format('开始执行')) # ***开始执行***
    print('{x:=^10}'.format(x='开始执行')) # ***开始执行***
    		
    

    2.2 精度与进制

    print('{salary:.3f}'.format(salary=1232132.12351))  #精确到小数点后3位,四舍五入,结果为:1232132.124
    print('{0:b}'.format(123))  # 转成二进制,结果为:1111011
    print('{0:o}'.format(9))  # 转成八进制,结果为:11
    print('{0:x}'.format(15))  # 转成十六进制,结果为:f
    print('{0:,}'.format(99812939393931))  # 千分位格式化,结果为:99,812,939,393,931
    

    三 运算符

    1 算数运算符

    print(10 + 3.1)
    print(10 + 3)
    print(10 / 3)  # 结果带小数
    print(10 // 3)  # 只保留整数部分
    print(10 % 3) # 取模、取余数
    print(10 ** 3) #  
    

    2 比较运算符

    ​ 比较运算符有:>、>=、<、<=、==、!=

    print(10 > 3)  #True
    print(10 == 10)	#True
    print(10 >= 10)	#True
    print(10 >= 3)	#True
    print(10 != 10) #False
    

    3 赋值运算符

    3.1直接赋值

      a = 10
      name = 'han'
    

    3.2 增量式赋值

    	a = 10
    	a += 1 
    	print(a) # 11
    

    3.3 链式赋值

    	x=y=z=10
    

    3.4 交叉赋值

    	m = 10
    	n = 20
    	m, n = n, m
    	print(m) #20
    	print(n) #10
    

    3.5 解压赋值

    	num = [1,2,3,4]
    	a,b,c,d = num  #对应的变量名少一个不行
    	print(a,b,c,d) #1 2 3 4  
    

    引入*,可以帮助我们取两头的值,无法取中间的值

    	num = [1,2,3,4]
    	a,b,*_ = num  # *会将没有对应关系的值存成列表然后赋值给紧跟其后的那个变量名,此处为_
    	print(a,b) #1 2 
    	a,*_,d = num 
    	print(a,d) #1 4
    

    解压字典默认解压出来的是字典key

    x,y,z={'a':1,'b':2,'c':3}
    print(x,y,z) #a b c
    

    3.6 逻辑运算符

    not :就是把紧跟其后的那个条件结果取反

    		print(not 18 > 12) #False
      	print(not 10) #False
        print(not None) #True
    

    and:逻辑与,and用来链接左右两个条件,两个条件同时为True,最终结果才为真。

    print(True and 1) # 1 
    print(True and 10>3 and [])#[] 条件全为真,最终结果才为true
    

    or:逻辑或,or用来链接左右两个条件,两个条件但凡是有一个为True最终结果为True;两个条件同时为False,最终结果才为False

    print(3 > 2 or 0) #True
    

    如果单独就只是一串and链接,或者说单独就只是一串or链接,按照从左到右的顺讯依次运算即可(偷懒原则)

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

    可以根据优先级转化为下面,方便观察:

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

    如果是混用,则需要考虑优先级了

    优先级 not > and > or

    扩展:

    print(1 and 10)  #10
    print(1 or 2)   # 1
    print(11 or 2 and 3) # 11
    print(True and 10>3 and 0) #0
    print(1 and True) #True
    print(True and 1) #1
    print(3 > 2 or 0) #True
    print(True and 10>3 and []) #[]
    

    3.7 成员运算符 in

    ​ 判断一个字符串是否存在于一个大字符串中

    print('han' in 'hello han')#True
    print("e" in "hello egon") #True
    

    ​ 判断元素是否存在于列表

    print(11 in [11,22]) #True
    

    ​ 判断key 是否存在于字典

    print("k1" in {"k1":111,'k2':222}) #True
    print(111 in {"k1":111,'k2':222}) #False
    

    3.8 身份运算符 is

    ​ is : 判断的是id是否相等

    a = 11
    b = a
    print(a is b) #True
    

    3.9 短路运算

    ​ 短路运算:偷懒原则,偷懒到哪个位置,就把当前哪个位置的值(显式或隐式)返回

    print(True and 10>3 and 0) #0
    print(1 and True) #True
    print(True and 1) #1
    print(3 > 2 or 0) #True
    print(True and 10>3 and []) #[]
    

  • 相关阅读:
    深入理解Java内存(图解堆栈)
    Python 通过脚本获取Android的apk的部分属性,再通过加密算法生成秘钥。
    Android开发中碰到的一个ANR问题。
    Android 解决通过自定义设置打开热点后手机搜索不到热点的问题。
    Android 反射获取一个方法(方法的参数不一样)
    Android 通过反射获取DatePicker 中的控件,并改变其颜色
    Android 解析标准的点击第三方文件管理器中的视频的intent
    Fragment已经被added了导致的异常。
    FragmentActivity + Fragment + Fragment使用过程中出现的bug
    Android学习笔记之SoftReference软引用,弱引用WeakReference
  • 原文地址:https://www.cnblogs.com/xy-han/p/12426811.html
Copyright © 2020-2023  润新知