• python入门基础


    一.变量

    变量就是指变化的量

    1.为什么要有变量

    程序本质上是一种变化的状态,所以要有一种变化的机制来对应程序变化的状态或者记录保存这种状态的变化

    2,变量是如何定义的

    例如:x='qwer'(变量名-等于-变量值)

    3.变量是如何规范的

        变量名开头不能是数字

        变量名的关键字不能是python的关键字

    'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'

        变量名只能是字母,下划线,数字的任意组合

    4.定义方式

    驼峰体:AgeOfOldbaby

    下划线体:age_of_oldbaby

    5定义变量名不好的方式

    拼音,中文,词不达意

    6.变量会有id,type,value

    1 等号比较的是value,
    #2 is比较的是id

    #强调:
    #1. id相同,意味着type和value必定相同
    #2. value相同type肯定相同,但id可能不同,如下
    >>>x='Info Egon:18'
    >>> y='Info Egon:18'
    >>> id(x)
    >>> id(y)
    >>>
    >>> x == y
    True
    >>> x is y
    False

    常量:不变的量

    二.用户人机交互

    在python3里的input相当于python2里的raw_input

    在python3中
    input:用户输入任何值,都存成字符串类型
    
    在python2中
    input:用户输入什么类型,就存成什么类型
    raw_input:等于python3的input

    注释:
    1.表示放法:单行用#
          多行用''' '''
    作用:便于理解代码的意思,可以用中文或者英文表示


    文件头:
    #!/usr/bin/env python
    # -*- coding: utf-8 -*- 


    三.基本数据类型
    int整型(年龄,年代,人数,身份证id等)/float浮点型(身高,体重,时间)


    四.字符串
    定义:加了'' " " ''' '''的任意字符
    三者没有什么区别,唯一的区别就是三引号是多行,单双引号要考虑单双配合
    字符串的拼接(可以相加或者相乘)
    例如:
    a='qw'
    age='11'
    name+age #相加其实就是简单拼接
    'qw11'
    >>> name*5 
    'egonegonegonegonegon'
    注意:只能字符串加字符串,不能字符串加其他类型
    列表
    在[]内用逗号分隔,可以存放n个任意类型的值 定义:students=['egon','alex','wupeiqi',] #students=list(['egon','alex','wupeiqi',])

    嵌套列表如何取值:
    students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]
    students_info[0][2][0] #取出第一个学生的第一个爱好
    'play'

    字典重点知识

    为何还要用字典?
    存放一个人的信息:姓名,性别,年龄,很明显是多个值,既然是存多个值,我们完全可以基于刚刚学习的列表去存放,如下
     info=['egon','male',18]
    定义列表的目的不单单是为了存,还要考虑取值,如果我想取出这个人的年龄,可以用
     info[2]
    但这是基于我们已经知道在第3个位置存放的是年龄的前提下,我们才知道索引2对应的是年龄
    即:
    #name, sex, age
    info=['egon','male',18]
    而这完全只是一种假设,并没有真正意义上规定第三个位置存放的是年龄,于是我们需要寻求一种,即可以存放多个任意类型的值,又可以硬性规定值的映射关系的类型,比如key=value,这就用到了字典

    在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型

    定义:info={'name':'egon','age':18,'sex':18} #info=dict({'name':'egon','age':18,'sex':18})

    用于标识:存储多个值的情况,每个值都有唯一一个对应的key,可以更为方便高效地取值

    字典的嵌套取值
    info={ 'name':'egon', 'hobbies':['play','sleep'], 'company_info':{ 'name':'Oldboy', 'type':'education', 'emp_num':40, } } print(info['company_info']['name']) #取公司名 students=[ {'name':'alex','age':38,'hobbies':['play','sleep']}, {'name':'egon','age':18,'hobbies':['read','sleep']}, {'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']}, ] print(students[1]['hobbies'][1]) #取第二个学生的第二个爱好

    布尔:一个false 一个true
    计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人脑能干什么,计算机就应该能干什么,人脑的主要作用是数据运行与逻辑运算,此处的布尔类型就模拟人的逻辑运行,即判断一个条件成立时,用True标识,不成立则用False标识
    a=3
    b=5
    a > b #不成立就是False,即假 False a < b #成立就是True, 即真 True 接下来就可以根据条件结果来干不同的事情了: if a > b print(a is bigger than b ) else print(a is smaller than b ) 上面是伪代码,但意味着, 计算机已经可以像人脑一样根据判断结果不同,来执行不同的动作。 
    布尔知识的重点:
    所有数据类型都自带布尔值
    1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
    2、其余均为真 
    关于可变不可变类型的重点:
    1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典 #2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间) 

    五.格式化输出

        程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式

        比如要求用户输入用户名和年龄,然后打印如下格式:

        My name is xxx,my age is xxx.

        很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接。

        这就用到了占位符,如:%s、%d

    
    

    %s字符串占位符:可以接收字符串,也可接收数字
    print('My name is %s,my age is %s' %('egon',18))
    #%d数字占位符:只能接收数字
    print('My name is %s,my age is %d' %('egon',18))
    print('My name is %s,my age is %d' %('egon','18'))报错

    接收用户输入,打印成指定格式

    name=input('your name: ')
    age=input('your age: ') #用户输入18,会存成字符串18,无法传给%d

    
    

    print('My name is %s,my age is %s' %(name,age))

    
    

    #注意:
    #print('My name is %s,my age is %d' %(name,age)) #age为字符串类型,无法传给%d,所以会报错

    六 基本运算符

        计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算

        算数运算

        以下假设变量:a=10,b=20

        

      比较运算

        以下假设变量:a=10,b=20

     赋值运算

        以下假设变量:a=10,b=20

    逻辑运算

      身份运算

    #is比较的是id
    #而==比较的是值
    例如: >>>x='Info Egon:18'
    >>> y='Info Egon:18'
    >>> id(x)
    >>> id(y)
    >>> 
    >>> x == y
    True
    >>> x is y
    False
     

    十二 流程控制之if...else

        

      既然我们编程的目的是为了控制计算机能够像人脑一样工作,那么人脑能做什么,就需要程序中有相应的机制去模拟。人脑无非是数学运算和逻辑运算,对于数学运算在上一节我们已经说过了。对于逻辑运算,即人根据外部条件的变化而做出不同的反映,比如

        1 如果:女人的年龄>30岁,那么:叫阿姨

    age_of_girl=31
    if age_of_girl > 30:
        print('阿姨好')

        2 如果:女人的年龄>30岁,那么:叫阿姨,否则:叫小姐

    age_of_girl=18
    if age_of_girl > 30:
        print('阿姨好')
    else:
        print('小姐好')

        3 如果:女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨

     
    age_of_girl=18
    height=171
    weight=99
    is_pretty=True
    if age_of_girl >= 18 and age_of_girl < 22 and height > 170 and weight < 100 and is_pretty == True:
        print('表白...')else:
        print('阿姨好')
     
     if套if

        4 如果:成绩>=90,那么:优秀

           如果成绩>=80且<90,那么:良好

           如果成绩>=70且<80,那么:普通

           其他情况:很差

     View Code
     
      if 条件1:
    
        缩进的代码块
    
      elif 条件2:
    
        缩进的代码块
    
      elif 条件3:
    
        缩进的代码块
    
      ......
    
      else:  
    
        缩进的代码块

    十三 流程控制之while循环

    #上节课我们已经学会用if .. else 来猜年龄的游戏啦,但是只能猜一次就中的机率太小了,如果我想给玩家3次机会呢?就是程序启动后,玩家最多可以试3次,这个怎么弄呢?你总不会想着把代码复制3次吧。。。。
    
    age_of_oldboy = 48
    
    guess = int(input(">>:"))
    
    if guess > age_of_oldboy :
        print("猜的太大了,往小里试试...")
    
    elif guess < age_of_oldboy :
        print("猜的太小了,往大里试试...")
    
    else:
        print("恭喜你,猜对了...")
    
    #第2次
    guess = int(input(">>:"))
    
    if guess > age_of_oldboy :
        print("猜的太大了,往小里试试...")
    
    elif guess < age_of_oldboy :
        print("猜的太小了,往大里试试...")
    
    else:
        print("恭喜你,猜对了...")
    
    #第3次
    guess = int(input(">>:"))
    
    if guess > age_of_oldboy :
        print("猜的太大了,往小里试试...")
    
    elif guess < age_of_oldboy :
        print("猜的太小了,往大里试试...")
    
    else:
        print("恭喜你,猜对了...")
    
    #即使是小白的你,也觉得的太low了是不是,以后要修改功能还得修改3次,因此记住,写重复的代码是程序员最不耻的行为。
    那么如何做到不用写重复代码又能让程序重复一段代码多次呢? 循环语句就派上用场啦
     

        2 条件循环:while,语法如下

    while 条件:    
        # 循环体
     
        # 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。
        # 如果条件为假,那么循环体不执行,循环终止
     
    #打印0-10
    count=0
    while count <= 10:
        print('loop',count)
        count+=1
    
    #打印0-10之间的偶数
    count=0
    while count <= 10:
        if count%2 == 0:
            print('loop',count)
        count+=1
    
    #打印0-10之间的奇数
    count=0
    while count <= 10:
        if count%2 == 1:
            print('loop',count)
        count+=1
     

        3 死循环

    import time
    num=0
    while True:
        print('count',num)
        time.sleep(1)
        num+=1   

        4 循环嵌套与tag

     
      tag=True 
    
      while tag:
    
        ......
    
        while tag:
    
          ........
    
          while tag:
    
            tag=False
     
    #练习,要求如下:
        1 循环验证用户输入的用户名与密码
        2 认证通过后,运行用户重复执行命令
        3 当用户输入命令为quit时,则退出整个程序 
    #实现一:
    name='egon'
    password='123'
    
    while True:
        inp_name=input('用户名: ')
        inp_pwd=input('密码: ')
        if inp_name == name and inp_pwd == password:
            while True:
                cmd=input('>>: ')
                if not cmd:continue
                if cmd == 'quit':
                    break
                print('run <%s>' %cmd)
        else:
            print('用户名或密码错误')
            continue
        break
    
    #实现二:使用tag
    name='egon'
    password='123'
    
    tag=True
    while tag:
        inp_name=input('用户名: ')
        inp_pwd=input('密码: ')
        if inp_name == name and inp_pwd == password:
            while tag:
                cmd=input('>>: ')
                if not cmd:continue
                if cmd == 'quit':
                    tag=False
                    continue
                print('run <%s>' %cmd)
        else:
            print('用户名或密码错误')
    复制代码
    #实现一:
    name='egon'
    password='123'
    
    while True:
        inp_name=input('用户名: ')
        inp_pwd=input('密码: ')
        if inp_name == name and inp_pwd == password:
            while True:
                cmd=input('>>: ')
                if not cmd:continue
                if cmd == 'quit':
                    break
                print('run <%s>' %cmd)
        else:
            print('用户名或密码错误')
            continue
        break
    
    #实现二:使用tag
    name='egon'
    password='123'
    
    tag=True
    while tag:
        inp_name=input('用户名: ')
        inp_pwd=input('密码: ')
        if inp_name == name and inp_pwd == password:
            while tag:
                cmd=input('>>: ')
                if not cmd:continue
                if cmd == 'quit':
                    tag=False
                    continue
                print('run <%s>' %cmd)
        else:
            print('用户名或密码错误')
    复制代码

     4 break与continue


    #break用于退出本层循环
    while True:
    print "123"
    break
    print "456"

    #continue用于退出本次循环,继续下一次循环
    while True:
    print "123"
    continue
    print "456"

    复制代码
    #break用于退出本层循环
    while True:
        print "123"
        break
        print "456"
    
    #continue用于退出本次循环,继续下一次循环
    while True:
        print "123"
        continue
        print "456"
    复制代码

     

       5 while+else

    #与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句,while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
    count = 0
    while count <= 5 :
    count += 1
    print("Loop",count)

    else:
    print("循环正常执行完啦")
    print("-----out of while loop ------")
    输出
    Loop 1
    Loop 2
    Loop 3
    Loop 4
    Loop 5
    Loop 6
    循环正常执行完啦
    -----out of while loop ------

    #如果执行过程中被break啦,就不会执行else的语句啦
    count = 0
    while count <= 5 :
    count += 1
    if count == 3:break
    print("Loop",count)

    else:
    print("循环正常执行完啦")
    print("-----out of while loop ------")
    输出

    Loop 1
    Loop 2
    -----out of while loop ------

  • 相关阅读:
    python 并发编程 多线程 event
    python 并发编程 多线程 定时器
    python 并发编程 多线程 信号量
    linux top 查看CPU命令
    python 并发编程 多线程 GIL与多线程
    python 并发编程 多线程 死锁现象与递归锁
    python 并发编程 多线程 GIL与Lock
    python GIL全局解释器锁与互斥锁 目录
    python 并发编程 多线程 GIL全局解释器锁基本概念
    执行python程序 出现三部曲
  • 原文地址:https://www.cnblogs.com/shengg/p/8593223.html
Copyright © 2020-2023  润新知