zoukankan      html  css  js  c++  java
  • python用户交互、基本数据类型、运算符

    用户交互

           在实际应用中,我们经常需要用户输入相应信息,根据用户输入信息进行反馈,此时我们需要input/output信息

           python中提供了便捷的输入方法input()和print()

           在python3中

    name = input("请输入")
    print(name)
    print(type(name))

    >>>

       请输入123
       123
        <class 'str'>

        Process finished with exit code 0

        >>>

        意味着在python3中用户输入的内容都以字符串的形式保存下来了

        python2中:

       C:UsersDELL>python2

       Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
       Type "help", "copyright", "credits" or "license" for more information.
        >>> name = input("请输入")
       请输入123
        >>> print(name)
        123
         >>>
         >>> print(type(name))
         <type 'int'>
         >>>

         >>> age = raw_input("请输入")
         请输入123
         >>> print(type(age))
         <type 'str'>
         >>>

        输入123时是以int类型保存下来的

        总结:在python3和python2中,input()方法的区别是py3将用户输入的内容全部以字符串的形式保存下来,而在py2是将用户输入的内容以原格式保存下来,而在python2中,raw_input()的用法和python3中的input()用法一样

    格式化输出

    name = input("name = ")
    age = input("age = ")
    hobby = input("hobby = ")
    print("name is %s age is %s hobby is %s"%(name, age,hobby))

    >>>
    输出结果
    >>>

    C:UsersDELLAppDataLocalProgramsPythonPython37python3.exe C:/Users/DELL/PycharmProjects/untitled1/day02/day03总结.py
    name = 李静
    age = 16
    hobby = Swimming
    name is 李静
    age is 16
    hobby is Swimming

    >>>

    >>>

    python中%s为字符串占位符,实际上%s可以为任何数据类型占位,输出时双引号后面用%变量名来格式化输出

    数据类型

    1、数字类型:①整数型:age = 18

                                          >>>type(age)

                                          >>>(class 'int')

                            ②浮点型:height = 176.5

                                         >>>type(height)

                                         >>>(class 'float')

    2、字符串类型:变量值用单引号双引号或者三引号引起来都可以

         >>> name = "heillo"
         >>> type(name)
         <class 'str'>
         >>>

    3、列表类型:可以表示一系列元素,用中括号括起来,元素间用逗号分隔

         >>>val = ["Alex",18,[12,33,"egon"],20]

         >>>type(val)

         <class ‘list’>

         >>>

         列表中的元素可以是各种类型,自然也可以是列表和字典

    4、字典类型:可以表示一对一对的元素,元素用花括号括起来:{“键”:值,“键”:值},元素被称为键值对

        >>>val = {"name":"Alex","age":18}

        >>>type(val)

        <class 'dict'>

        >>>

    5、布尔类型:bool,用作判断条件用。布尔类型只有两种状态,True和False,所有数据类型都对应布尔值,其中 0,none,空字符串、空列表、空字典等为空的数据是False,其余都是True

         >>> type(10>3)

         <class 'bool'>
         >>>

    例:if 10>3:

                 print("you are right")

    >>>

    you are right

    >>>

    运算符

    1、数字运算符:+,-,*,/,**,%,//

    >>> print(10 + 2)
    12
    >>> print(10 - 2)
    8
    >>> print(10 * 2)
    20
    >>> print(10 / 2)
    5.0
    >>>
    >>> print(10 ** 2)
    100
    >>> print(10 % 2)
    0
    >>> print(10 // 2)
    5
    >>>

    2、比较运算符

    >>> print(10 != 10)
    False
    >>> print(10>10)
    False
    >>> print(10>=10)
    True
    >>> print(10<=10)
    True
    >>> print(10<10)
    False
    >>> print(10 == 10)
    True
    >>> print(10 > "a")    #数字类型不能与字符串类型比较
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: '>' not supported between instances of 'int' and 'str'


    >>> print("abcd" > "abce") 

    False

    总结  #字符串类型的比较根据字符串字符从左到右开始比较,如果第一个字符谁对应的ASCII码值大则那个字符串大,第一个字符相同则判断第二个字符,以此类推

    >>> print(["123",12]>["abc",12])   

    False

    总结:#列表类型的比较是从第一个元素开始比较,第一个元素谁大则哪个列表大,如果第一个元素相等则比较第二个元素,以此类推,注意,如果比较的元素不是同一类型则报错,如下:

    >>> print(["123",12]>[123,12])   #
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: '>' not supported between instances of 'str' and 'int'
    >>>

    3、赋值运算符:“=”,age = 19

    交叉赋值:

    >>> x = 10

    >>> y = 20
    >>> x,y = y,x
    >>> print(x,y)
    20 10
    >>>

    等同于:

    >>> x = 10
    >>> y = 20
    >>> z = x
    >>> x = y
    >>> y = z
    >>> print(x,y)
    20 10
    >>>

    增量赋值:

    a = a + 1   <==> a += 1

    a = a - 1  <==> a -= 1

    a = a * 2 <==> a *= 2

    a = a / 2 <==> a /= 2

    a = a%2  <==> a %= 2

    a = a // 2 <==> a //= 2

    a = a ** 3 <==> a **= 3

    解压赋值:将列表中的每个元素分别赋值给变量

    >>> L1 = [1,2,3,4]
    >>> a,b,c,d = L1  
    >>> print(a,b,c,d)
    1 2 3 4
    >>>

    接收元素变量必须与元素个数一致,否则报错,如下:

    >>> val = [1,2,3,4,5]
    >>> a,b,c = val
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ValueError: too many values to unpack (expected 3)
    >>>

    当列表元素比较多,这时候只想取前两个值和后两个值怎么办呢,看下面代码

    >>> L2 = [1,2,3,4,5,6,7,8]
    >>> a,b,*_,c,d = L2    #   *_表示将中间不想取的值赋值给"_",此时“_”是个列表
    >>> print(a,b,*_,c,d)     #打印*_时即将列表“_”中的元素打印出来
    1 2 3 4 5 6 7 8
    >>> print(a,b,_,c,d)
    1 2 [3, 4, 5, 6] 7 8
    >>> print(a,b,c,d)
    1 2 7 8
    >>>

    总结:*_这种方式可以帮我们解决解压赋值必须所有元素都取的困扰,_作为变量来使用,也可以用其他字符替代。但这种方式只在python3中有效

    4、逻辑运算符: and 、 or 、not,判断条件使用

    and :逻辑与,判断左右两个条件,当两个条件任意一个为假时,整体结果为假

    >>> print(10 > 2 and "a" > "b")
    False
    >>>

    or:逻辑或,判断左右两个条件,当两个条件任意一个为真时,整体结果为真

    >>> print(10 > 2 or "a" > "b")
    True
    >>>

    not:逻辑取反,取条件真假相反的结果

    >>> print("a" > "b")
    False

    >>> print(not "a" > "b")

    True
    >>>

    6、身份运算:is   比较内存地址是否相同   而“”==“”是比较值

    >>> x = 10
    >>> y = 10
    >>> print(x is y)
    True
    >>> id(x)
    140714018137200
    >>> id(y)
    140714018137200
    >>>

    注意:变量值相等,内存地址不一定相同,内存地址相同,值一定相等

  • 相关阅读:
    在UpdatePanel上使用FileUpload上传文件
    Android配置开发环境
    文件服务器共享目录设置(一)
    win2008R2的Hyperv安装Ubuntu
    Comodo Time Machine导致系统进不去
    sql2005生成sql2000脚本的时候出现“User.UserType: NoLogin 不是SQL Server 2005 的有效选项“ 的解决方案
    迅雷7偷偷上传文件导致机器变卡
    文件服务器共享目录设置(二)
    再谈Javascript原型继承
    a和a:link的区别
  • 原文地址:https://www.cnblogs.com/dongxixi/p/10567420.html
Copyright © 2011-2022 走看看