zoukankan      html  css  js  c++  java
  • python基础知识

    Python基本知识点

    1:数据类型

    什么是数据?

    name     =     "Lx"
    变量名 赋值符号 值(值就是数据)
    

    为什么要有不同的数据类型?

    因为事物有多种状态,所以需要多种数据类型来描述出事物的状态。

    1:整数数据类型(int)
    作用:记录年龄,等级,号码,快递单号,门牌号 QQ号码等状态
    定义与使用
    
    >>> age = 25
    >>> age
    25
    >>> level = 14
    >>> level
    14
    >>> qq = 282828
    >>> qq
    282828
    >>> res = age * 1
    >>> res
    25
    >>> print(age !=100)
    True
    
    2:浮点数类型(float)
    作用:记录薪资、身高、体重等状态
    定义与使用
    
    >>> salary = 3.2
    >>> salary
    3.2
    >>> print(salary,type(salary))
    3.2 <class 'float'>
    
    >>>print(3.3 + 1)
    4.3
    >>>print(3.3 >= 1)
    True
    
    # print("abc" > 1) # 不能混用
    
    
    
    3:字符串类型(str)
    字符串str
    作用:记录一些描述性的状态,比如名字、性别、消息等等
    定义与使用:在双引号内或者单引号内或三引号内('''content'''、"""content""")定义的一组字符称之为字符串
    
    >>> msg = '小白兔白又白,两只耳朵竖起来了'
    >>> msg
    '小白兔白又白,两只耳朵竖起来了'
    >>> msg1 = '爱吃萝卜和青菜'
    >>> msg2 = '蹦蹦跳跳真可爱'
    >>> msg3 = '爱吃'
    >>> print(msg3,type(msg3))
    爱吃 <class 'str'>
    >>> msg_total = '''
    ... 小白兔白又白,
    ... 两只耳朵竖起来,
    ... 爱吃萝卜和青菜,
    ... 蹦蹦跳跳真可爱。'''
    >>> msg_total
    '小白兔白又白,两只耳朵竖起来,爱吃萝卜和青菜,蹦蹦跳跳真可爱。'
    
    >>> simple_talk="My name is '小白兔'" 
    >>> simple_talk
    "My name is '小白兔'"
    >>> print(simple_talk)
    My name is '小白兔'
    >>> gender = 'male'
    
    警告字符串类型(仅限本身)可以"+" "*"
    不建议字符串进行拼接(消耗内存空间)
    
    >>> 'abc'+'dcd' (拼接字符串)
    'abcdcd'
    >>> print('aabc'*10)
    aabcaabcaabcaabcaabcaabcaabcaabcaabcaabc
    
    
    4:列表类型(list)
    列表list(类似于一个容器,可以存放好多东西): 索引对应值,索引从0开始
    作用:按顺序存放多个值,并且能够按顺序取出来单独的一个值
    定义与使用:在[]内用逗号分隔开多个任意类型的值
    	从左到右	0	1	2
    >>> hobbies = ['撸猫', '喝酒', '睡觉']
    	从右到左 -3	-2	-1
    >>> peopel_info = ['egon', 18, ['play','movie']]
    
    list可以嵌套list
    >>> peopel_info
    ['egon', 18, ['play', 'movie']]
    >>> info = [
    ... ['engo' ,18 ,['play','xvideos']],
    ... ['engo' , 25, ['play football', 'sing'],]
    ... ]
    
    取habbies第一个值
    >>>hobbies[0] or hobbies[-3]
    >>> info
    [['engo', 18, ['play', 'xvideos']], ['engo', 25, ['play football', 'sing']]]
    
    5:字典类型(dict)

    引子

    练习题1:存放一个人信息(名字、年龄、多个爱好)
    egon_info = ["sx", 18, ["play", "movie"]]
    练习题2:存放多个人信息(名字、年龄、多个爱好)
    info = [
        ["sx", 18, ["play footballl", "music videos"]],
        ["sb", 19, ["Cs"]],
    ]
    print(info[1][2][0])
    当数据多了取数据就麻烦
    
    四:字典
    # 作用:存放多个值,用key对应值,key通常为字符串类型
    # 定义与使用:在{}内用逗号分隔开多个key:value,其中value可以是任意类型
    # info={"name":"egon","age":18,"gender":"male","hobbies":["play","music"]}
    # print(info["name"])
    # print(info["age"])
    
    # print(info["hobbies"][1])
    
    # 练习题:存放多个人信息(名字、年龄、多个爱好)
    info = [
        {
            "name": "egon1",
            "age": 18,
            "level": 10,
            "hobbies": ["play", "movie"]
    
        },
        {
            "name": "egon2",
            "age": 19,
            "level": 11,
            "hobbies": ["read"]
        },
    ]
    取第二个人的等级
    print(info[1]["level"])
    
    
    
    6:布尔类型(bool)
    布尔类型,只有两个值True和False
    
    1:可以自己定义布尔值
    >>>flag=True
    >>>print(flag,type(flag))
    True <class 'bool'>
    
    一般是通过比较运算得到布尔值的
    
    >>> 10 > 1
    True
    >>> 10 < 2
    False
    >>> 10 != 2
    True
    >>> not 10 < 3
    True
    >>> 10 != 2
    True
    bool一般是用于条件是否成立
    
    
    扩展(非常重要)
    
    隐式的布尔值
    隐式的布尔值为False的数据类型有:0,None,空(str,list,dict,tuple,set)
    print(bool(0))
    print(bool(None))
    print(bool(""))
    print(bool([]))
    print(bool({}))
    print(bool(()))
    
    
    2:输入输出
    1:input和print
    python3中input功能会把用户输入的任意内容都存成字符串类型
    接收用户的输入
    inp_name=input("请输入您的账号名>>>: ") # "egon123*"
    print(inp_name,type(inp_name))
    
    注意1:
    inp_age=input("请输入您的年龄>>>: ") # "18"
    inp_age=int(inp_age) # int会把纯数字的字符串转换成int型
    print(inp_age+1) # "18"+1
    
    注意2:
    inp_pwd=input("请输入您的密码>>>: ")  # "123"
    print(inp_pwd == 123) # "123" == 123
    print(inp_pwd == "123") # "123" == "123"
    
    注意3:无论输啥,都存成字符串
    x=input(">>>: ") # "[1,2,3]"
    print(x,type(x))
    
    了解(**):
    2:python2中raw_input功能与python3中的input功能一模一样
    
    3:python2中input功能
    你输入什么类型接收的就是什么类型
    
    3:格式化输出
    >>>
    >>> print('login successfull')
    login successfull
    >>> name=input('your name: ')
    your name: 'alex'
    >>> name
    "'alex'"
    >>> age=input('your age: ')
    your age: 18
    >>> age
    '18'
    >>> print("my name is %s my age is %s" %(name,age))
    my name is 'alex' my age is 18
    >>> print("my name is %s" % "egon")
    my name is egon
    >>> print("my name is %s my age is %s" % ("egon", 18))
    my name is egon my age is 18
    >>> print("my name is %s my age is %s" % ("egon", [1,2,3]))
    my name is egon my age is [1, 2, 3]
    >>>
    
    4:基本运算符
    1:基本运算符

    image-20200603213435273

    >>> 10 /3
    3.3333333333333335
    >>> 10 //3
    3
    >>> 10 % 3
    1
    >>> 10 ** 2
    100
    >>>
    >>> 10 + 1
    11
    >>> 10 * 10
    100
    >>> 5 - 2
    3
    
    2:比较运算符

    >>> 10 != 1
    True
    >>> 10 > 2
    True
    >>> 2 >3
    False
    >>> 3 >=4
    False
    >>> 18 <= 16
    False
    >>> 10 >= 33
    False
    >>> 10 != 5
    True
    
    3:赋值运算符

    image-20200603213743995

    >>> age = 10
    >>> age
    10
    >>> age +=5
    >>> age
    15
    >>> age *=100
    >>> age
    1500
    >>> age /=10
    >>> age
    150.0
    >>> age = 20
    >>> age
    20
    >>> age -= 15
    >>> age
    5
    >>> age //=2
    >>> age
    2
    >>> age = 8
    >>> age %=3
    >>> age
    2
    
    4:逻辑运算符

    https://images.cnblogs.com/cnblogs_com/wait59/1779850/o_200603140603image-20200603213829677.png

    >>> 10 > 5 and 5 < 1
    False
    >>> 10 < 5 and 5> 1
    False
    >>> 10 > 4 and 4<=1
    False
    >>> 10 < 5
    False
    >>> not 10 < 5
    True
    优先级 not > and > or
    
    短路运算
    1 and 3
    1 and 3 or 3 and 1
    3 or 1
    3 or False
    3 or "False"
    
    5:数据类型分类
    1:不可变数据类型
    1:不可变类型:int、float、str
    在值改变的情况下,id号也跟着变了,也就是说内存地址变了,证明不是在改原来内存空间中的值,
    而是申请了新的内存空间,产生了新的值,即原值不可变
    
    #int
    >>> xx = 11
    >>> print(id(xx))
    1546385488
    >>> xx = 12
    >>> print(id(xx))
    1546385504
    
    #float
    >>> xx = 10.9
    >>> print(id(xx))
    19021584
    >>> xx = 10.4
    >>> print(id(xx))
    19019280
    
    #str
    >>> xx = "abc"
    >>> id(xx)
    13435040
    >>> xx = "Abc"
    >>> id(xx)
    14116224
    
    
    
    字典的value可以是任意类型,但是字典的key必须是不可变类型
    dic={1111111:"abc","k2":"def",3.1:'aaa'}
    print(dic[1111111])
    
    
    
    
    了解:不可哈希类型就是可变类型,可哈希类型就是不可变类型
    dic={[1,2,3]:"abc"}
    
    2:可变数据类型
    1:可变类型:list,dict
    在值改变的情况下,id号不变,也就是说内存地址不变,证明就是在改原来内存空间中的值,即原值可变
    
    #list
    >>> l1 = [111, "小白兔"]
    >>> id(l1)
    14064392
    >>> l1[0]="大白兔"
    >>> id(l1)
    14064392
    
    下面写法推荐使用列表代替
    >>> dic = {0:"小米粒",1:"二米粒",2:"大米粒"}
    >>> print(dic[0])
    小米粒
    >>> print(dic[1])
    二米粒
    >>> print(dic[2])
    大米粒
    >>>
    
    #dict
    >>> dic = {'k1':"big佩奇" , 'k2':"Alexsb"}
    >>> dic["k1"]
    'big佩奇'
    >>> dic["k2"]
    'Alexsb'
    >>> id(dic)
    13465192
    >>> dic["k1"] = '大白兔'
    >>> dic
    {'k1': '大白兔', 'k2': 'Alexsb'}
    >>> id(dic)
    13465192
    
    
    6:解压赋值
    1:list类型解值
    4、解压赋值
    >>> moth_salary = [1.8 , 2.2, 3.3, 3.4, 5.5]
    >>> mon1 = moth_salary[0]
    >>> mon2 = moth_salary[1]
    >>> mon3 = moth_salary[2]
    >>> mon4 = moth_salary[3]
    >>> mon5 = moth_salary[4]
    >>> mon1
    1.8
    >>> mon2
    2.2
    >>> mon3
    3.3
    >>> mon4
    3.4
    >>> mon5
    5.5
    
    
    
    
    # 变量名的个数必须与包含的值的个数相同,多一个不行,少一个也不行
    >>> mon0, mon1, mon2, mon3, mon4 = moth_salary
    >>> moth_salary
    [1.8, 2.2, 3.3, 3.4, 5.5]
    >>> mon0
    1.8
    >>>
    
    >>> mon0, mon1, mon2, mon3 = moth_salary
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: too many values to unpack (expected 4)
    
    
    >>> mon0, mon1, mon2, *_ = moth_salary
    >>> mon1
    2.2
    >>> mon1
    2.2
    >>> mon2
    3.3
    >>> print(*_)
    3.4 5.5
    >>>
    
    
    >>> *_, x, y, z=moth_salary
    >>> print(*_)
    1.8 2.2
    >>> x
    3.3
    >>> y
    3.4
    
    >>> x, *_, y=moth_salary
    >>> x
    1.8
    >>> print(*_)
    2.2 3.3 3.4
    >>> y
    5.5
    
    
    
    7:if判断
    1:什么是if判断?
    当人走在十字路口,要看面前的红绿灯,如果是绿灯就行走,红灯就停下来,你要是不怕死,你可以往前冲
    判断 条件1 并且 条件2:
       做什么事。。。
    否则:
       做什么事。。。
    
    
    2:为什么要有if判断?
    为了控制计算机能够像人一样去完成判断的过程
    
    3:如何使用if判断?
    1、介绍
    print('start....')
    if 3 != 3 and 10 > 8:
       print("条件成立1")
       print("条件成立2")
       print("条件成立3")
    else:
       print("条件不成立1")
       print("条件不成立2")
       print("条件不成立3")
    print('end....')
    
    # if判断完整的语法
    """
    if 条件1:
        子代码块1
    elif 条件2:
        子代码块2
    elif 条件3:
        子代码块3
    ...
    else:
        子代码块
    
    2、必须要有的是if,只有一个if是可以的
    inp_name=input('你的名字: ')
    if inp_name == "egon":
        print('输入正确')
    
    print('其他代码')
    
    3、if+elif
    inp_name=input('你的名字: ')
    if inp_name == "egon":
        print('您的身份是超级vip')
    elif inp_name == "张三":
        print('您的身份是钻石vip')
    elif inp_name == "李四":
        print('您的身份是铂金vip')
    
    print('其他代码')
    
    4、if+else
    inp_name = input('你的用户名: ')
    inp_pwd = input('你的密码: ')
    
    if inp_name == "egon" and inp_pwd == "123":
        print('登录成功')
    else:
        print("刚刚输入的用户名或密码错误")
    
    print('其他代码')
    
    5、if+elif+else
    """
    如果:成绩>=90,那么:优秀
    
    如果成绩>=80且<90,那么:良好
    
    如果成绩>=70且<80,那么:普通
    
    其他情况:很差
    """
    
    grade = int(input('请用户输入你的分数:'))
    
    if grade >= 90:
        print("分数优秀!")
    elif 80 <= grade < 90:
        print("良好!")
    elif 70 <= grade < 80:
        print("普通!")
    else:
        print("很差!")
    
    8:循环(while, for)
    1:什么是循环?

    重复的在做某一件事,例如每天,起床都要把电脑打开,这就是在重复的做一件事。

    2:为什么要用循环

    当某一件事需要重复做的时候,我们可以把人的逻辑,翻译给计算器,让机器帮我们重复做某一件事。

    3:如何使用循环?
    while 条件:
    	代码
    	代码
    	
    
    while True:
        print("hello ok")
        print("hello goodbye")
        print("hello what is name")
    
    
    while True:
        name = input("用户:")
        pwd = input("密码:")
        print(name , pwd)
    
    
    while True:
        print(1+1)
    
    
    n = 1
    while n<=5:
        if n%2 == 0:
            print(n)
        n +=1
        
    
    flag = True
    while flag:
        user = input("用户名:")
        pwd = input("密码:")
    
        if user == "egon" and pwd == "egon":
            print("登录成功")
            flag = False # 通过修改条件来终止循环
        else:
            print("用户名或者密码错误,请重新输入")
    
        print('你好呀')
    
    
    while True:
        user = input("用户名:")
        pwd = input("密码:")
        if user == "egon" and  pwd  == "dsb":
            print('登录成功')
            break # 通过break直接来直接杀死循环
        else:
            print("用户名错误或者密码错误!")
        print("test")
    #####################################
    循环嵌套
    
    age = 10
    while True:
        print("AA")
        while True:
            print("BB")
            while age <15:
                print(age)
                age +=1
    
    
    n = 1
    while n <= 3:
        print('外循环%s' % n)
        n += 1
        i = 1
        while i <= 2:
            print("内循环%s" % i)
            i += 1
    #########################3
    cotinue 是跳过此次循环
    
    n = 1
    while n <= 5:
        if n == 4:
            n += 1
            continue
           # n+=1 # 切忌在continue同一级别之后添加代码
        print(n)
        n += 1
    
    
    while True:
        user = input("用户名:")
        pwd = input("密码:")
        if user == "egon" and pwd == "dsb":
            print("登录成功")
            break # 结束
        else:
            print('用户名或者密码错误, 请重新输入')
            continue
    
        print("hello word")
    
    
    while + else
    n = 1
    while n <= 4:
        if n == 4:
            pass
            # break
        print(n)
        n +=1
    else:
        print('else的代码运行中')
    警告:如果是通过break终止了整个循环,else是不执行的
    
    9:for循环
    1:有while 循环为什么还要有for循环?
    那是因为,for循环的语法比while循环语法更简洁,
    
    2:如何使用for循环?
    name = ["小白兔", "白又白", "两只耳朵竖起来", "爱吃萝卜和青菜", "蹦蹦跳跳真可爱"]
    i = 0
    while i < len(name):
        print(name[i])
        i += 1
    
    
    dic = {"k1": 111, "k2": 222, "k3": 333}
    for item in dic:
        print(item, dic[item])
    
    
    for item in "abcdefg":
        print(item)
    
    for x in range(1, 5, 1):
        print(x)
    
    for x in range(1 ,5 ,2):
        print(x)
    
    n = 0
    while n <3:
        print('干三下')
        n +=1
    
    for i in range(3):
        print("干三件事!")
    
    
    for i in range(10):
        if i == 8:
            break
        print(i)
    
    
    for i in range(10):
        if i == 7:
            continue
        print(i)
    
    
    
    
    for i in range(8):
        if i == 3:
            break
        print(i)
    else:
        print("执行了吗?")
    
    for i in range(3):
        print("外循环%s" % i)
        for j in range(2):
            print("内循环%s" % j)
    
    
    l = ["a", "bb", "cc"]
    for i in l:
        del l[0]
        print(i)
    
    3:扩展range

    range(start,end,step)

    >>> range(30)
    range(0, 30)
    >>> list(range(3))
    [0, 1, 2]
    >>> list(range(30))
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
    
    >>> list(range(1, 10))
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> list(range(1, 10 ,3))
    [1, 4, 7]
    >>>
    
  • 相关阅读:
    Jenkins安装
    Python操作yaml文件
    class 中构造函数与析构函数
    python发送邮件(yagmail模块)
    filter、map函数的区别
    python redis操作
    多个 python的pip版本选择
    python Excel操作
    python MD5操作
    缓存淘汰算法之LRU实现
  • 原文地址:https://www.cnblogs.com/wait59/p/13040414.html
Copyright © 2011-2022 走看看