zoukankan      html  css  js  c++  java
  • python基础总结

    一、数据类型基础

    数据类型就是不同种类的变量值用不同的数据类型来描述

    1.1 数字类型

    整型(int)

    • 定义方式:

      age=18  # age=int(18)
      
      print(type(age))
      print(age)
      

      <class 'int'>
      18

    • 作用:例如表示人的年龄、号码、级别等的整数

    • 使用方法:可以加减乘除、逻辑判断(大于、小于)

    浮点型(fioat)

    • 定义方式:

      salary=2.3  # salary=float(2.3)
      
      print(type(salary))
      print(salary)
      

      <class 'float'>
      2.3

    • 作用:例如表示身高、体重、薪资等的数值

    • 使用方法:可以加减乘除、逻辑判断(大于、小于)

    1.2 字符串类型(str)

    • 定义方式:

      字符串就是一串被串起来的字符,在单引号、双引号或三引号内包裹的一串字符。需要注意的是:三引号内的字符可以换行,而单双引号内的字符不行

      name1='zyl'
      name2="cx"
      
      print(id(name1))
      print(type(name1))
      print(name1)
      

      2693201174912
      <class 'str'>
      zyl

      name3="""zyl
      egon"""
      
      print(name3)
      

      zyl
      egon

    • 作用:例如表示名字、爱好

    • 使用方法:字符串只能用+,*和逻辑比较,字符串的拼接,即重新申请一个小空间把两个字符串都拷贝一份后再拼接,而不是你YY的把一个小空间内的变量值复制到另一个变量的小空间内,然后拼接

    注意:如果字符串内有引号,则包裹字符串的引号和字符串内部的引号不能相同

    字符串的乘法只能乘以数字
    字符串的比较是字母的顺序

    1.3 列表类型(list)

    • 定义方式:

      hobby='read'
      hobby_list=[hobby,'run','girl']
      
      print(type(hobby_list))
      print(hobby_list)
      

      <class 'list'>
      ['read', 'run', 'girl']

    • 作用:存放多个值

    • 使用方法:在[ ]内用逗号分隔开任意类型的值,列表索引取值序号从0开始

      hobby_list=['read','run','girl']
      # 索引序号    0      1      2
      print(hobby_list[1] ) # 取出第二个爱好
      

      run

      hobby_list=['read','run',['girl_name',18,'shanghai']]
      print(hobby_list[2][1])    # 取出girl的年龄
      

      18

    1.4 字典类型(dict)

    • 定义方式:

      在{}内用逗号分隔开多个元素,每一个元素都是key: value的格式,其中value是任意格式的数据类型,key由于具有描述性的作用,所以key通常是字符串类型

      user_info={'name':'zyl','gender':'male','age':18,
                 'company_info':['oldboy','shanghai',40]}
      
      print(id(user_info))
      print(type(user_info))
      print(user_info)
      

      2178070637592
      <class 'dict'>
      {'name': 'zyl', 'gender': 'male', 'age': 18, 'company_info': ['oldboy', 'shanghai', 40]}

    • 作用:用来存取多个值,按照key:value的方式存值,取值的时候通过key而非索引去取值,key对value具有描述性的作用。存放数据的种类各种各样并且数据较多的时候可以使用字典

    • 使用方法:字典取值方式不再依赖于索引,而是依赖于key,通过[key]即可获取key对应的value值

      # 字典套列表
      user_info={'name':'zyl','gender':'male','age':18,
                 'company_info':['oldboy','shanghai',40]}
      print(user_info['name'])
      print(user_info['company_info'][0])
      

      zyl
      oldboy

      # 字典套字典
      user_info={'name':'zyl','gender':'male','age':18,
                 'company_info':{'c_name':'oldboy','c_addr':'shanghai','c_num_of_employee':40}}
      
      print(user_info['name'])
      print(user_info['company_info']['c_name'])
      

      zyl
      oldboy

    1.5 布尔类型(bool)

    • 定义方式:

      True、False通常情况不会直接引用,需要使用逻辑运算得到结果

    • 作用:用于判断条件结果

    • 使用方法:

      print(type(True))
      print(True)
      

      <class 'bool'>
      True

      print(bool(0))
      print(bool('nick'))
      print(bool(1 > 2))
      print(bool(1 == 1))
      

      False
      True
      False
      True

    注意:python中所有数据类型的值都自带布尔值。如此多的数据类型中只有0、None、空、False的布尔值为False,其余的都为True。

    print(bool(0))
    print(bool(None))
    print(bool(''))
    print(bool([]))
    print(bool({}))
    print(bool(False))
    

    False
    False
    False
    False
    False
    False

    二、解压缩

    • 解压缩可以这样理解:超市打包是把多个商品放在一起,解压缩其实就是解包把多个商品一次性拿出来

      name_list=['yujin','xuchu','dianwei','xiahoudun']
      x,y,z,a=name_list
      print(f'x:{x}, y:{y}, z:{z}, a:{a}')
      

      x:yujin, y:xuchu, z:dianwei, a:xiahoudun

    • 有时候我们解压缩的值可能是我们不想要的,那么可以使用下划线,万能的下划线

      lis=[1,2,3]
      x1,_,x3=lis  # 不需要2,_表示不需要,约定俗成的
      print(x1)
      print(x3)
      

      1
      3

      lis=[1,2,3]
      _, _, x3 = lis  # 只要第三个元素
      print(x3)
      

      3

      lis=[1,2,3,4,5,6,7]
      x1,x2,*_,x3=lis  # *_ 会把前面所有的都省略掉,都不要
      print(x1)
      print(x2)
      print(x3)
      print(_)
      

      1
      2
      7
      [3, 4, 5, 6]

    • python追求的是简洁性,代码不要写的太长了。因此用字典类型解压缩也是可以的,但是字典解压缩得到的是key。

      info = {'name': 'nick', 'age': 18}
      x, y = info
      print(x, y)
      

      name age

    三、Python与用户交互

    计算机的发明是为了奴役计算机,解放劳动力.写了一个程序系统来取代人类,那就需要这个程序能与人交互

    如何交互

    # 用户名和密码的交互
    username_db='zyl'
    pwd_db='123'
    
    username=input('请输入你的用户名:')  # input让用户输入,与用户交互
    pwd=input('请输入你的密码:')
    if username == username_db and pwd == pwd_db:
        print('登陆成功')
    else:
        print('登陆失败')
    
    
    

    请输入你的用户名:zyl
    请输入你的密码:123
    登陆成功

    注意无论我们输入的值是数字类型、字符串类型、列表类型,input的接收值都是字符串类型

    四、格式化输出的三种方式

    1、占位符

    程序中经常会要求用户输入信息,然后打印成固定的格式,占位符能很方便的把用户信息放到指定的位置

    name='zyl'
    age=25
    print('my name is %s my age is %s'% (name,age))
    

    my name is zyl my age is 25

    age = 25
    print('my age is %d' % age)
    

    my age is 25

    %s(针对所有数据类型),%d(只针对数字类型)

    2、format格式化

    很鸡肋的方法,基本不会去用

    name = 'zyl'
    age = 25
    print("Hello, {}. You are {}.".format(name, age))
    

    Hello, zyl. You are 25.

    3、f-String格式化

    该方法相对于上面两种更加简单易懂,print(f'{key}')的格式

    name='zyl'
    age=25
    print(f"Hello,{name}. You are {age}.")
    

    Hello,zyl. You are 25.

    大写的F和小写y都可以

    https://www.cnblogs.com/nickchen121/p/10728289.html

    五、基本运算符

    1、算术运算符

    运算符 描述 实例
    + a+b
    - a-b
    * a*b
    / a/b
    // 除以取整 a//b
    % 除以取余 a%b
    ** 幂(次方) a**b为a的b次方

    2、比较运算符

    偷个懒,直接盗图吧!

    029-基本运算符-比较运算符.jpg?x-oss-process=style/watermark

    3、赋值运算符

    贴图不可耻,理解记住就行

    029-基本运算符-赋值运算符.jpg?x-oss-process=style/watermark

    4、逻辑运算符(返回True或False)

    029-基本运算符-逻辑运算符.jpg?x-oss-process=style/watermark

    # and(和),两个条件都为真就为真,否则都为False
    print(1>1 and 2>3)  # False
    print(10>1 and False)  # False
    
    # or(或),只要有一个为真就为真,否则都为False
    age = 18
    inp_age= input('age:')
    print(age==inp_age or True)  # True
    print(True or False)  # True
    print(False or False)  # False
    
    # not(不是)
    print(not True)   # False
    print(not False)  # True
    

    5、身份运算符(通过比较两者id返回布尔值)

    029-基本运算符-身份运算符.jpg?x-oss-process=style/watermark

    is和==的区别:is用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中), ==用于判断引用变量的值是否相等。

    x = 257
    y = x
    z = 257
    
    print(f'x is y:{x is y}')
    print(f'x == y:{x == y}')
    
    print(f'x is z:{x is z}')
    print(f'x == z:{x == z}')
    

    x is y:True
    x == y:True
    x is z:False
    x == z:True

    6、Python运算符优先级

    只做了解就行,优先级高的括号括起来就行了

    029-基本运算符-python运算符优先级.jpg?x-oss-process=style/watermark

    https://www.cnblogs.com/nickchen121/p/10728299.html

    六、流程控制之if判断

    1、语法

    if主要就是模拟我们人类做判断。就是说如果这样干什么,如果那样干什么。

    1.1 if(单分支结构)

    表示if成立代码成立会干什么

    
    <代码块1>
    if <条件>:
    	<代码块2>  # 当条件为True的时候执行代码块2然后执行代码块3,否则不执行代码块2直接执行代码块3  
    <代码块3>  # 当条件不成立时直接运行代码块3
    
    cls = 'human'
    gender = 'female'
    age = 18
    
    if cls == 'human' and gender == 'female' and age > 16 and age < 22:
        print('开始表白')
    
    print('end...')
    

    开始表白
    end...

    1.2 if...else (双分支结构)

    <代码块1>
    if <条件>:
        <代码块2>  # 当条件为True的时候执行代码块2然后执行代码块3 
    else:
        <代码块4>  # 当条件不成立时,运行代码块4,然后再运行代码块3
    <代码块3>  # 当条件不成立时首先运行代码块4,然后运行代码块3
    

    表示if成立代码成立会干什么,else不成立会干什么。

    cls = 'human'
    gender = 'female'
    age = 38
    
    if cls == 'human' and gender == 'female' and age > 16 and age < 22:
        print('开始表白')
    else:
        print('阿姨好')
    

    阿姨好

    1.3 if...elif...else (多分支结构)

    <代码块1>
    if <条件1>:
        <代码块2>  # 当条件1为True的时候执行代码块2然后执行代码块3  
    elif <条件2>:
        <代码块5>  # 当条件1不成立条件2成立,执行代码块5,然后执行代码块3
    elif <条件n>:
        <代码块n>
    else:
        <代码块4>  # 当if和elif的所有条件都不成立时,执行代码块4,然后执行代码块3
    <代码块3>
    

    if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么。

    cls = 'human'
    gender = 'female'
    age = 28
    
    if cls == 'human' and gender == 'female' and age > 16 and age < 22:
        print('开始表白')
    elif cls == 'human' and gender == 'female' and age > 22 and age < 30:
        print('考虑下')
    else:
        print('阿姨好')
    

    考虑下

    2、if的嵌套

    age = 18
    
    inp_age = int(input('age:'))  # 17
    
    if age >= inp_age:   # a
        if age > inp_age:  # b
            if 'e':
                print('猜小了') #  a成立b也成立e也成立我才做
        else: # c
            print('猜中了') # a成立 c成立我才做
    else: # d  # a不成立我就做
        print('猜大了')
    
    

    https://www.cnblogs.com/nickchen121/p/10737326.html

    七、流程控制之while循环

    1、语法

    while循环又称为条件循环,while就是当的意思,指当后面的条件成立,就执行while下面的代码,循环就是重复做一件事。

    while 条件:
    	代码块  # 当条件成立时会进行运行,结束完代码块后会再一次判断条件,成立再运行代码块,运行完再判断条件
    

    2、while+break

    在循环的过程中,因为某些原因,不想继续循环了,要把它终止,就要用到break和continue语句。

    break用于完全结束一个循环,跳出循环体执行循环后面的语句。

    while(当) <条件>:
        <需要进行重复的代码块>  # 当条件成立时会进行运行,结束完代码块后会再一次判断条件,成立再运行,运行完再判断条件,%
        break  # 遇到break后终止while循环
    

    3、while+continue

    continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,而break则完全终止循环。

    while 条件:
        代码块
        if 条件:
            代码块
            cotinue  # 不执行下面代码,然后继续循环,即跳出本次循环
        代码块
    

    4、while循环的嵌套

    ​ 也就是第一个while循环要执行的代码块中再加入一个while循环,例如ATM密码输入成功还需要进行一系列的命令操作,比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。

    5、tag控制循环退出

    也就是让tag=True或False

    6、while+else (仅做了解即可)

    n = 1
    while n < 3:
        print(n)
        n += 1
    else:
        print('else会在while没有被break时才会执行else中的代码')
    1
    

    1
    2
    else会在while没有被break时才会执行else中的代码

    八、流程控制之for循环

    for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值。

    1、语法

    for i in range/str/list/tuple/dict/set(可迭代对象):
        print(i)
    

    2、for+break

    for循环跳出结束本层循环

    for i in range/str/list/tuple/dict/set(可迭代对象):
        print(i)
        break  # 结束本层循环
    

    3、for+continue

    for循环结束本次循环,进入下一次循环

    for i in range/str/list/tuple/dict/set(可迭代对象):
        print(i)
        if 条件:
            continue  # 结束本次循环,即不执行下面代码,继续循环
        代码块
    

    4、for循环的嵌套

    外层循环循环一次,内层循环循环所有的。

    for i in range(3):
        print(f'-----:{i}')
        for j in range(2):
            print(f'*****:{j}')
    

    5、for+else

    for循环没有break的时候触发else内部代码块

    for i in range/str/list/tuple/dict/set(可迭代对象):
        print(i)
    else:
        print('如果我没有被break,我就会被打印出来')
    
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        print(name)
    else:
        print('for循环没有被break中断掉')
    

    在往后的python编程中,还是经常用for循环比较好。

    九、Python基础小结

    https://www.cnblogs.com/nickchen121/p/11069987.html

  • 相关阅读:
    Office转SWF的一些感想(Office2007和Office2010)
    数据库字段为日期类型时
    C#实现office文档转换为PDF格式
    C#.net word excel powerpoint (ppt) 转换成 pdf 文件
    Servlet基础
    Android加速度传感器实现“摇一摇”,带手机振动
    android完全退出应用程序
    【安卓笔记】作为内部类的广播接收者
    Android中使用广播机制退出多个Activity
    [Android] ImageView.ScaleType设置图解
  • 原文地址:https://www.cnblogs.com/zhuangyl23/p/11285176.html
Copyright © 2011-2022 走看看