• Day 03 注释 数据类型


    1.注释

      注释是对代码的解释与评论,给人看的,python解释器不识别

      python有2种注释方式:(1)#  单行注释   (2)'''    '''   多行注释    三引号

    2.用户交互

      input()  在python3.x中使用方法如下 

    name = input("what is your name?")
    print(name)

      在python 2.x 中2种使用方法为:

      (1)必须认为的告诉input输入的是什么数据类型

    name = input("what is your name?")
    print(name)
    D:python2.7python.exe D:/py/11.py
    what is your name?yanglingyao      # 输入交互信息
    Traceback (most recent call last):      
      File "D:/py/11.py", line 1, in <module>
        name = input("what is your name?")
      File "<string>", line 1, in <module>
    NameError: name 'yanglingyao' is not defined   # 报错
    D:python2.7python.exe D:/py/11.py
    what is your name?  'yanglingyao'    # 声明输入的信息是字符串类型
    yanglingyao
    
    Process finished with exit code 0

      (2)raw_input()

    name = raw_input("what is your name?")
    print(name)

                       PS: Python3.x中的input() 和 Python2.x中的raw_input() 使用方法是一样的,输入的信息自动保存为字符串类型

    3. 格式化输出

      (1)%s : 可以接收任意类型的值

    name = 'yang'
    age = 18
    print('my name is %s,my age is %s' % (name, age))
    D:python3python.exe D:/py/11.py
    my name is yang,my age is 18

     (2)%d:值可以接收数字

    name = 'yang'
    age = 18
    print('my name is %d,my age is %d' % (name, age))
    D:python3python.exe D:/py/11.py
    Traceback (most recent call last):
      File "D:/py/11.py", line 3, in <module>
        print('my name is %d,my age is %d' % (name, age))
    TypeError: %d format: a number is required, not str  # 报错,%d 只能接收数字类型

    正确的方法如下:

    name = 'yang'
    age = 18
    print('my name is %s,my age is %d' % (name, age))
    
    D:python3python.exe D:/py/11.py
    my name is yang,my age is 18
    a = 123
    print("%08d" % a)  # 整数是8位,传入的数不够八位的话默认用0补全,超出8位,是多少就是多少
    
    
    D:python3python.exe D:/py/11.py
    00000123

    4.数据类型

      1.整形(int)

      作用:qq号,手机号等

      定义方法:

    a = 11

      本质:

    a = int(11)

      2.浮点型 (float)  也就是俗称小数

      作用: 纪录体重。薪资等

      定义方法:

    b = 1.1

      本质:

    b = float(1.1)

      3.字符串(str)

      作用:记录一些描述性信息

      定义方法:

    c = '我是字符串'  # 单引号定义
    d = "我是'字符串'"   # 双引号定义,多用于嵌套,字符串本申含有单引号或双引号
    e = '''
    我是字符串
    可以存多行
    '''

      本质:

    a = str('我是字符')

      python中的字符串支持加和乘操作:   字符串相加是新申请内存空间然后拷贝相加的字符串到新的空间中,效率不高

    a = 'yang'
    b = 'lingyao'
    c = a + b
    d = a * 3
    print(c)
    print(d)
    
    
    
    D:python3python.exe D:/py/11.py
    yanglingyao
    yangyangyang

      4.列表(list)、

      作用:记录多个值,可以方便的取出来指定位置一条或多条的值

      定义方法:在[ ] 内用逗号分隔开多个任意类型的值

    l = ['q', 1, 1.2, ['q', 'w']]  # 根据索引取值,第一个索引为0
    l1 = l[0]   # 取出l 列表第一元素
    l2 = l[3][1]  # 取出第4个元素中的第2个元素
    print(l1, l2)   # q w

      5.字典(dict)

      作用:存取多组数据,存储的数据有对应的描述

      定义方法:用{ }来定义,元素的格式为key:value ,也称作键值对,每个键值对中间用,隔开   其中key必须是不可变类型,value可以是任意类型 如:

    d1 = {
        'name': 'yanglingyao',  # 一对键值对
        'age': 18,
        'addr': '山西',
        'hobby': ['听歌', '旅游']
    }

      注:字典是无序的,所以不能根据索引取值,,只能通过键(key)来访问值(value)  如:

    print(d1['age'])  # 取出字典中key为 age 的值
    print(d1['hobby'][1])  # 取出字典中key 为hobby 的值中第二个元素
    18
    旅游

      6.布尔值(bool)

      作用:表示事物的对错,真假,  True(真)  False(假)

      定义方式:

    t = False
    t1 = True

    5. 运算符

      1:基本运算符:

        "+"(加)  “-”(减)“*”(乘)“/”(除) “//”(地板除,也就是值保留整数位,与四舍五入无关) ‘**’(幂运算)"%"取模运算,也就是取余数

    print(4 + 5)  # 9
    print(5 - 4)  # 1
    print(4 * 5)  # 20
    print(6 / 3)  # 2.0 不管操作数有没有浮点数,都是浮点数除法 在python2.x中相当于3 的地板除
    print(6 // 4)  # 1  向下取整,与四舍五入无关  地板除
    print(6 ** 2)  # 36 6的2次方
    print(6 % 4)  # 2 取模运算,也就是取余数

      2. 比较运算符:

        “>”(大于) “<”(小于)"<="(小于等于) ">="(大于等于) "=="(判断值是否相等) "!="(不等于) 结果都为True或False

    print(1 > 3)  # False
    print(1 < 3)  # True
    print(1 >= 3)  # False
    print(1 <= 3)  # True
    print(1 == 3)  # False
    print(1 != 3)  # True
        关于 == 与is 的区别  == 比较的是值是否相等,is 比较的是内存地址是否相同
    a = 17
    b = 17
    print(a == b, a is b)  # True True  因为涉及小整数池概念,-5~256都是固定的内存地址所以都为True
    c = 1000
    d = 1000
    print(c == d, c is b )  # True False 

        由此可见:内存地址相同,值一定相同,值相同,内存地址不一定相同

      3.逻辑运算符:

        "and"  (与:有一个条件为False,则为False,条件都为True,才为True)

        "or"       (或:任意一个条件为True,则为True,条件都为False,才为False)

        “not”      (非:取反)

    print(1 > 3 and 4 > 3)  # False
    print(4 > 3 and 5 > 3)  # True
    print(1 < 3 or 4 < 3)  # True
    print(1 > 3 or 2 > 3)  # False
    print(not 1 < 3)  # False
    print(not 1 > 3)  # True

      4.赋值运算符:

    1. 增量赋值:
      age = 18
      age += 1  # 相当于 age = age + 1
      print(age)  # 19 
      age *= 1  # 相当于 age = age * 1
      print(age)  # 19
      age -= 1  # 相当于 age = age - 1
      print(age)  # 18
      age /= 1  # 相当于 age = age / 1
      print(age) # 18.0
    2.  链式赋值:
      x = y = z = 18
      '''
      相当于
      x = 18
      y = x
      z = x
      '''
      print(x, y, z)  # 18 18 18
          
    3. 交叉赋值:
      x = 18
      y = 19
      x, y = y, x  # Python 提供的一种语法
      print(x, y)  # 19,18 

      同样可达到此目的的方法有:

      x = 18
      y = 19
      z = x
      x = y
      y = z
      print(x, y)
    4. 解压赋值:
      list1 = [1, 2, 3, 4, 5]
      l1, l2, l3, l4, l5 = list1   # 等号右边值的个数必须与左边的变量名个数一致
      print(l1, l2, l3, l4, l5)   # 1 2 3 4 5

      当其中有些值不需要使用的话,用‘_’ (下划线)充当变量名

      list1 = [1, 2, 3, 4, 5]
      l1, _, _, _, l5 = list1   # 等号右边值的个数必须与左边的变量名个数一致  用下划线来储存不需要取出的值
      print(l1, l5)   # 1,5

      当需要取出头尾而不知道右边值有多少个的时候用“*_”来代替

      list1 = [1, 2, 3, 4, 5]
      l1, *_, l5 = list1  # 等号右边值的个数必须与左边的变量名个数一致  用下划线来储存不需要取出的值
      print(l1, l5)  # 1,5
      print(*_)  # 2,3,4
  • 相关阅读:
    BZOJ3149 CTSC2013 复原 搜索
    BZOJ5016 SNOI2017 一个简单的询问 莫队、前缀和、容斥
    THUWC2019-1:Reach out
    Luogu4630 APIO2018 Duathlon 圆方树、树形DP
    Luogu4606 SDOI2018 战略游戏 圆方树、虚树、链并
    BZOJ3720 Gty的妹子树 询问分块、主席树
    CF809E Surprise me! 莫比乌斯反演、虚树
    LOJ2542 PKUWC2018 随机游走 min-max容斥、树上高斯消元、高维前缀和、期望
    LOJ2541 PKUWC2018 猎人杀 期望、容斥、生成函数、分治FFT
    CF797F Mice and Holes 贪心、栈维护DP
  • 原文地址:https://www.cnblogs.com/yanglingyao/p/11115946.html
Copyright © 2020-2023  润新知