zoukankan      html  css  js  c++  java
  • 【2020Python修炼记5】Python语法入门—与用户交互

    一、与用户交互

    1、接收用户的输入

    在Python3中,input会将用户的所有输入内容都存为字符串类型

    >>> 
    >>> username = input("请输入您的账号:")
    请输入您的账号:CC
    >>> print(username, type(username))
    CC <class 'str'>
    >>> 
    >>> age = input("请输入的你的年龄: ")
    请输入的你的年龄: 18
    >>> 
    >>> print(age, type(age))
    18 <class 'str'>
    >>> age=int(age)
    >>> print(age > 16)
    True
    >>> 
    >>> int("12345")   # int只能将纯数字的字符串转成整型
    12345
    >>> 
    >>> int("1234.5")
    Traceback (most recent call last):
      File "<pyshell#177>", line 1, in <module>
        int("1234.5")
    ValueError: invalid literal for int() with base 10: '1234.5'
    >>> int("1234abc5")
    Traceback (most recent call last):
      File "<pyshell#178>", line 1, in <module>
        int("1234abc5")
    ValueError: invalid literal for int() with base 10: '1234abc5'
    >>> 

    在Python2中,用户输入什么类型,就保存为什么类型

    # raw_input():用法与python3的input一模一样
    # input(): 要求用户必须输入一个明确的数据类型,输入的是什么类型,就存成什么类型 

    >>> age=input(">>>>>>>>>>>>>>>>>>>>>: ")
    >>>>>>>>>>>>>>>>>>>>>: 18
     >>> age,type(age)
    (18, <type 'int'>)
    >>>
    >>> x=input(">>>>>>>>>>>>>>>>>>>>>: ")
    >>>>>>>>>>>>>>>>>>>>>: 1.3
    >>> x,type(x)
    (1.3, <type 'float'>)
    >>>
    >>> x=input(">>>>>>>>>>>>>>>>>>>>>: ")
    >>>>>>>>>>>>>>>>>>>>>: [1,2,3]
    >>> x,type(x)
     ([1, 2, 3], <type 'list'>)
    >>>

     2、格式化输出

     2.1—— %


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

    >>> res="my name is %s my age is %s" %('egon',"18")
    >>> print(res)
    my name is egon my age is 18
    >>> res="my name is %s my age is %s" %("18",'egon')
    >>> print(res)
    my name is 18 my age is egon
    >>> res="my name is %s" %"egon"
    >>> print(res)
    my name is egon

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

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

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

    >>> 
    >>> print('my age is %s' %18)
    my age is 18
    >>> 
    >>> print('my age is %s' %[1,23])
    my age is [1, 23]
    >>> 
    >>> print('my age is %s' %{'a':333})
    my age is {'a': 333}
    >>> print('my age is %d' %18) # %d只能接收int
    my age is 18
    >>> 
    >>> print('my age is %d' %"18")
    Traceback (most recent call last):
      File "<pyshell#202>", line 1, in <module>
        print('my age is %d' %"18")
    TypeError: %d format: a number is required, not str
    >>> 

    2.2 ——str.format:兼容性好

    按照位置传值

    >>> 
    >>> res='我的名字是 {} 我的年龄是 {}'.format('egon',18)
    >>> print(res)
    我的名字是 egon 我的年龄是 18
    >>> 
    >>> res='我的名字是 {0}{0}{0} 我的年龄是 {1}{1}'.format('egon',18)
    >>> print(res)
    我的名字是 egonegonegon 我的年龄是 1818
    >>> 

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

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

    了解知识——

    【填充与格式化】
    # 先取到值,然后在冒号后设定填充格式:[填充字符][对齐方式][宽度] # *<10:左对齐,总共10个字符,不够的用*号填充 print('{0:*<10}'.format('开始执行')) # 开始执行****** # *>10:右对齐,总共10个字符,不够的用*号填充 print('{0:*>10}'.format('开始执行')) # ******开始执行 # *^10:居中显示,总共10个字符,不够的用*号填充 print('{0:*^10}'.format('开始执行')) # ***开始执行***
    【精度与进制】
    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

    2.3—— f:python3.5以后才推出

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

    二、运算符

    1、算数运算符

    >>> print(10 + 3.1)
    13.1
    >>> print(10 + 3)
    13
    >>> print(10 / 3)  # 结果带小数
    3.3333333333333335
    >>> 
    >>> print(10 // 3)  # 只保留整数部分
    3
    >>> print(10 % 3) # 取模、取余数
    1
    >>> print(10 ** 3) # 10的三次方
    1000
    >>> 

    2、比较运算符: >、>=、<、<=、==、!=

    >>> 
    >>> print(10 > 3)
    True
    >>> print(10 == 10)
    True
    >>> 
    >>> print(10 >= 10)
    True
    >>> print(10 >= 3)
    True
    >>> 
    >>> 
    >>> name=input('your name: ')
    your name: cc
    >>> print(name == 'egon')
    False
    >>> 

    3、赋值运算符

    # 3.1 =:变量的赋值
    # 3.2 增量赋值:

    >>> 
    >>> egonAge=18
    >>> egonAge+=3
    >>> print(egonAge)
    21
    >>> 

    #3.3 链式赋值

    # x=10
    # y=x
    # z=y
    # z = y = x = 10 # 链式赋值
    # print(x, y, z)
    # print(id(x), id(y), id(z))

    # 3.4 交叉赋值

    m=10
    n=20
    # print(m,n)
    # 交换值
    # temp=m
    # m=n
    # n=temp
    # print(m,n)
    
    # m,n=n,m # 交叉赋值
    # print(m,n)

    # 3.5 解压赋值

    salaries=[111,222,333,444,555]
    # 把五个月的工资取出来分别赋值给不同的变量名

    # mon0=salaries[0]
    # mon1=salaries[1]
    # mon2=salaries[2]
    # mon3=salaries[3]
    # mon4=salaries[4]

    # 解压赋值

    # mon0,mon1,mon2,mon3,mon4=salaries
    # print(mon0)
    # print(mon1)
    # print(mon2)
    # print(mon3)
    # print(mon4)

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

    # x,y,z,*_=salaries=[111,222,333,444,555] # *会将没有对应关系的值存成列表然后赋值给紧跟其后的那个变量名,此处为_
    # print(x,y,z)
    # print(_)

    # 取后三个值

    # *_,x,y,z=salaries=[111,222,333,444,555]
    # print(x,y,z)
    
    # x,*_,y,z=salaries=[111,222,333,444,555]
    # print(x,y,z)
    
    # salaries=[111,222,333,444,555]
    # _,*middle,_=salaries
    # print(middle)

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

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


     

  • 相关阅读:
    2020.9.21
    企业应用架构模式003——对象-关系结构模式
    企业应用架构模式002
    企业应用架构模式001
    代码大全003/
    代码大全002/
    每日总结
    数论必刷题
    Tarjan求割点(割顶) 割边(桥)
    Luogu 2018 秋令营 Test 2
  • 原文地址:https://www.cnblogs.com/bigorangecc/p/12419139.html
Copyright © 2011-2022 走看看