zoukankan      html  css  js  c++  java
  • Python学习笔记数据类型 运算符 循环 条件判断

    1.  Python安装

        在官网www.python.org下载安装程序,可以支持的操作系统linux,windows,mac.

        Python版本:2.x和3.x,分别有x86和x64.

        在Windows系统下安装完成后,需要配置一下环境变量,方便使用Python交互式模式。

        https://www.python.org/ftp/python/3.7.0/python-3.7.0-amd64.exe

        查看当前系统的python版本命令:python -V

    2.  Python特点

        Python3.x 默认使用UTF-8编码,Python2.x默认使用ASCII编码。

        注释:使用#号,单行注释;使用单引号双引号,多行注释。

        采用行缩进的方式,表示代码块。

    3.  Python解释器工具Pycharm

        安装激活pycharm

    4.  数据类型之数字类型

        int整型     float浮点型     complex复数

    5.  数据类型之字符串

        name=”yangjianbo”
        print(name)
        name=’yangjianbo’     print(name)
        name=’’’yangjianbo’’’     print(name)

        

         +  字符串连接

         例子:

         a="wo"
         b="shi"
         c="shui"
         d=a +'  ' +b +' ' + c
         print(d) 
    
    
    

        *  字符串重复输出

        a='yangjianbo'
        c=a*2
        print(c)
    

        []  取字符串的第几个字符,从左到右从0开始,从右到左从-1开始。

        a='yangjianbo'
        print(a[-2])

     

        [:]  取字符串的一部分

        a='yangjianbo'
        print(a[1:4])
        从索引1开始,从左到右的第4位结束,不包含第4位
        输出的结果为ang.

    6.  数据类型之列表

        特点:用方括号括起来,元素之间用逗号隔开

        列表索引从0开始(从左往右),从-1开始(从右往左)

        system=['yangjianbo','wangyanhe','gaozhongmin',1,2,3]
        print (system)
        输出结果如下:
        ['yangjianbo', 'wangyanhe', 'gaozhongmin', 1, 2, 3]

        

        查看列表的长度

        system=['yangjianbo','wangyanhe','gaozhongmin',1,2,3]
        print (len(system))
        输出结果
        6

        

        输出列表list索引为1的元素,访问列表中的元素

        system=['yangjianbo','wangyanhe','gaozhongmin',1,2,3]
        print (system[1])
        输出结果
        yangjianbo
    

        更新列表元素

        xitongbu=['yangjianbo','wangyanhe','gaozhongmin']
        print (xitongbu)
        xitongbu[2]='gushuwei'
        print (xitongbu)
        输出结果
        gushuwei
    

      

        删除列表元素

        xitongbu=['yangjianbo','wangyanhe','gaozhongmin']
        print (xitongbu)
        xitongbu[2]='gushuwei'
        print (xitongbu)
        del xitongbu[2]   删除索引为2的元素
        print (xitongbu)
        del xitongbu      删除整个列表
        print (xitongbu)
        输出结果:没有对应的索引了

        合并列表

        list1=[1,2,3]
        list2=[4,5,6]
        list3=list1+list2
        print (list3)
        输出结果
        [1, 2, 3, 4, 5, 6]
    

      

        重复元素

        list=['yangjianbo']*4
        print (list)
        输出结果
        ['yangjianbo', 'yangjianbo', 'yangjianbo', 'yangjianbo']
    

      

        元素是否在列表中

        list=['yangjianbo','wangyanhe','gaozhongmin']
        if 'yangjianbo' in list:
          print ("You are right!")     else:       print ("You are wrong!")     输出结果     You are right!

        列表函数

        列表长度   len()
    
        列表最大值 max() 如果是整型直接比大小,如果是字符串,比英文字母靠后
    
        列表最小值 min() 
        xitongbu=['yangjianbo','zazgyanhe','zaozhongmin']
        print (min(xitongbu))
    
        列表转换    list() 把元组转换为列表
        ruanjianbu=('wangyanzhe','wangzhibing','liushuang')
        ruanjianbu=list(ruanjianbu)
        print (type(ruanjianbu))
    

        列表方法

        增加元素
        默认会在最后添加一个新元素,这个方法没有返回值。
        向原来的列表添加一个新的元素,这个方法只能添加一个元素,添加两个会有报错。
        list.append(obj)
        例子:
        xitongbu=['yangjianbo','wangyanhe']
        xitongbu.append(2222)
        print (xitongbu)
        输出结果
        ['yangjianbo', 'wangyanhe', 2222]
    
        删除元素
        默认会删除最后一个元素,并且返回该元素的值。
        list.pop()
        例子:
        xitongbu=['yangjianbo','wangyanhe']
        xitongbu.pop(0)
        print (xitongbu)
        输出结果
        ['wangyanhe']
     
        插入元素
        list.insert(index.obj)
        例子:
        在第一个元素添加。
        xitongbu=['yangjianbo','wangyanhe']
        xitongbu.insert(0,'gaozhongmin')
        print (xitongbu)
        输出结果
        ['gaozhongmin', 'yangjianbo', 'wangyanhe']
    
        统计某个元素的数量
        list.count(obj)
        例子:
        xitongbu=['yangjianbo','wangyanhe','yangjianbo','yangjianbo']
        print (xitongbu.count('yangjianbo'))
        输出结果
        3
     
        找出某个元素的索引号,如果有多个相同的元素,列出第一个匹配元素的索引号
        list.index(obj)
        例子:
        xitongbu=['yangjianbo','wangyanhe','yangjianbo','yangjianbo']
        print (xitongbu.index('wangyanhe'))
        输出结果
        1
    
        拿一个其他列表扩展列表
        list1=['yangjianbo','wangyanhe']
        list2=[22,33]
        list2.extend(list1)
        print(list2)
        输出结果
        [22, 33, 'yangjianbo', 'wangyanhe']
    
        删除某个元素的第一个匹配项
        list.remove(obj)
        例子:
        xitongbu=['yangjianbo','wangyanhe','gaozhongmin']
        xitongbu.remove('yangjianbo')
        print (xitongbu)
        输出结果
        ['wangyanhe','gaozhongmin']
    
        反向列表中元素
        list.reverse
        顺序倒序。
        例子:
        xitongbu=['yangjianbo','wangyanhe','gaozhongmin']
        xitongbu.reverse()
        print (xitongbu)
        输出结果
        ['gaozhongmin', 'wangyanhe', 'yangjianbo']
    
        对列表进行排序
        list.sort(obj)
        xitongbu=['yangjianbo','wangyanhe','gaozhongmin','liming','a']
        xitongbu.sort()
        print (xitongbu)
        输出结果
        ['a', 'gaozhongmin', 'liming', 'wangyanhe', 'yangjianbo']   

    7.   数据类型之Tuple元组

        特点:使用小括号,元组的元素不能被修改,只能读取。

        当元组的元素只有一个的时候,必须在元素后面加一个逗号,否则,python会认为这是一个字符串。

        修改元组中的元素
        例子:
        yuanzu=('yangjianbo','gaozhongmin','wangyanhe')
        yuanzu[0]='zhangxueyou'
        print (yuanzu[0])
        输出结果直接报错了。
    
        删除元组
        删除元组中的元素,会有报错
        但是可以删除整个元组
        例子:
        del yuanzu

    8.  集合

    9.  Dictionary字典

        特点:每个键值组成一对,键值之间使用冒号隔开,整个字典使用{}。

        每对之间使用逗号隔开。

        键是唯一的,但值不必。

        键可以是字符串数字元组,不可以是列表,值可以使用任何类型。

        xitongbu={['name']:'yangjianbo','age':30}
        print (xitongbu)
        输出结果
        TypeError: unhashable type: 'list'
        

        字典没有索引的概念,查看值的时候,不需要使用索引。

          xitongbu={'name':'yangjianbo','zhiwu':'xitongguanliyuan'}
          print (type(xitongbu))
          print (xitongbu['name'])

          输出结果

          <class 'dict'>
          yangjianbo

          必须写明键名称。

     

          每个键只能出现一次,如果出现两次,以后一个为准。

          xitongbu={'name':'yangjianbo','zhiwu':'xitongguanliyuan','name':'wangyanhe'}
          print (xitongbu)

          输出结果

          {'name': 'wangyanhe', 'zhiwu': 'xitongguanliyuan'}

     

          修改已存在的键的值。

          xitongbu={'name':'yangjianbo','zhiwu':'xitongguanliyuan'}
          xitongbu['name']='wangyanhe'
          print (xitongbu['name'])

          输出结果

          wangyanhe

          添加一个新的键值。

          xitongbu={'name':'yangjianbo','zhiwu':'xitongguanliyuan'}
          xitongbu['age']='30'
          print (xitongbu)

          输出结果

          {'name': 'yangjianbo', 'zhiwu': 'xitongguanliyuan', 'age': '30'}

          删除字典中的某个元素

          xitongbu={'name':'yangjianbo','zhiwu':'xitongguanliyuan'}
          xitongbu['age']='30'
          del xitongbu['name']
          print (xitongbu)

          输出结果

          {'zhiwu': 'xitongguanliyuan', 'age': '30'}

          

          删除整个字典

          del xitongbu

          输出的时候,会找不到xitongbu的定义。

     

          清空字典的内容

          xitongbu.clear()    

          xitongbu变量的定义还在,只是内容被清空。

    10.  Python运算符

        算术运算符

        +  加法
    
        -  减法
    
        *  乘法
    
        /  除法
    
        %  余数
    
        **  幂数
    
        //  除完的商数
    

     

        比较算术符

        ==  等于
        >=  大于等于
        <=  小于等于
        !=   不等于
        >   大于
        <   小于
        例子:
        a=12
        b=19
        if a > b:
          print("you are right")
        else:
          print("you are wrong!")

        赋值运算符

        = 普通赋值
    
        += 加法赋值
        例子:
        num=1
        a=5
        num+=a
        print(num)
        相当于:num=num+a  ,输出的结果为:6
    
        -=   减法赋值
        例子:
        num=1
        a=5
        num-=a
        print(num)
        相当于: num=num-a,输出的结果为:-4
    
        *=  乘法赋值
        例子:
        num=9
        a=5
        num*=a
        print(num)
        相当于num=num*a,输出的结果:45
    
        /=  除法赋值
        num=8
        a=3
        num/=a
        print(num)
        相当于num=num/a,输出的结果:2.6666666666666665
    
        //=  除法商数赋值
        num=10
        a=3
        num//=a
        print(num)
        相当于num=num//a,输出的结果为:3
    
        %=  除法余数赋值
        num=10
        a=3
        num%=a
        print(num)
        相当于num=num%a,输出的结果为:1
    
        **=  幂数赋值
        num=10
        a=3
        num**=a
        print(num)
        相当于num=num**a,输出的结果为:1000

        Python位运算符

        &: 参与运算的两个值,如果对应位都为1,则结果为1.
        a=5   0101
        b=6   0110
        c=a&b    
        print(c)
        输出结果为0100,转换为十进制为4.
    
        |: 参与运算的两个值,如果对应位有一个为1,则结果为1.
        a=5   0101
        b=6   0110
        c=a|b
        print(c)
        输出结果为0111,转换为十进制为7
    
        ^: 表示对应位的不同时,结果为1.
        a=5   0101
        b=6   0110
        c=a^b  
        print(c)
        输出结果为0011,转换为十进制为3.
    
        ~:对应的二进制取反,-x-1  
        a=5  
        b=6
        c=~b  
        print(c)
        输出的结果为 -7
    
    

        Python逻辑运算符

        and  与
        or  或
        not  非

    11.  条件语句

        条件语句的执行过程

                     

        语法结构 

        if  判断条件:

          执行语句……

        else:

          执行语句……

        name='yangjianbo'
        if name=='yangjianbo':
             print('了四五度')
        else:
             print('pgone')

     

        if有多个判断条件

        name='yangjianbo'
        age=20
        if name=='yangjianbo' and age >25:
             print('了四五度')
        else:
             print('pg one')

     

        当判断的值有多个的时候,就需要使用if ... elif ... else

    语法结构:

    if 判断条件1:

               执行语句1……

    elif 判断条件2:

               执行语句2……

    elif 判断条件3:

               执行语句3……

    else:

               执行语句4……

        age=input('请输入你的年龄>>:')
        age=int(age)
        if age>50:
            print('奶奶,你好!')
        elif age>30:
            print('阿姨,你好!')
        elif age>20:
            print('姐姐,你好!')
        else:
            print('老妹,你好!')

    12.  循环语句

        循环结构图

     

                     

        当条件符合时,则进行循环,否则,循环结束。

     

        循环方式

    while循环

      while 判断条件:

           执行语句……

          for循环

          嵌套循环

          count=0
          while count<9:
              print("count:",count)
              count=count+1
          print("循环结束!")

    13.  continue语句

        count=0
        while count<9:
            if count==6:
                count=count+1
                 continue
            else:
                print("count:",count)
                count=count+1
        print("循环结束!")

    输出的结果:

            

        从这个例子中,可以看出continue跳出count等于6时的循环。但是仍然继续7和8的循环。

    14.  break语句

        count=0
        while count<9:
            if count==6:
              count=count+1
              break
          else:
              print("count:",count)
              count=count+1
         print("循环结束!")

      输出的结果: 

              

              从这个例子中,可以看出break跳出整个循环,直接执行循环结束了。

    15.  while +else

           只有while循环完成,才会执行else后面的语句,如果while循环被break,则不会执行else后面的语句。

    16.  作业

    #while练习题
    #求1-100的所有数的和:
    sum=0
    count=1
    while count<=100:
        sum=sum+count
        count+=1
    else:
        print(sum)
    输出结果:5050 #输出1-100内的所有奇数 #奇数就是除2,余数为1. count=1 while count<=100: if count%2==1: print (count) count+=1 else: count+=1
    输出的结果:1 3 5 7 ... 99
    #输出1-100内的所有偶数 #偶数就是除2,余数为0. count=1 while count<=100: if count%2==0: print (count) count+=1 else: count+=1
    输出结果:2 4 6 8 10 ... 100 #求1-2+3-4+5....99的所有数的和 count=1 sum_jishu=0 while count<=99: if count%2!=0: sum_jishu+=count count+=2 else: print("奇数和完成!") sum_oushu = 0 count=2 while count<=99: if count%2==0: sum_oushu+=count count+=2 else: print("偶数和完成!") jieguo=sum_jishu-sum_oushu print(jieguo)
    输出结果:
    奇数和完成!
    偶数和完成!
    50
    优化代码
    #求1-2+3-4+5....99的所有数的和
    count=1
    sum=0
    while count<=99:
    if count%2==0:
    sum-=count
    else:
    sum+=count
    count+=1
    else:
    print(sum)
    结果为50

    #用户登录(三次机会尝试)
    name='yangjianbo'
    pwd=123
    count=0
    while count<=2:
    username = input("用户名:")
    password = input("密码:")
    if username==name and password==pwd:
    print("登录成功!")
    break
    else:
    print("登录失败!请重新登录!")
    count+=1
    else:
    print("您已经登录三次!")

    #猜年龄
    age=18
    count=0
    while count<=2:
    guess=int(input("猜年龄:"))
    if guess==age:
    print("猜对了!")
    break
    count=count+1
    else:
    print("三次都不正确!")

    #猜年龄游戏升级版,
    age=18
    count=0
    while count<=3:
    if count==3:
    choice=input("还要继续猜吗?输入Y or N>>")
    if choice=='Y':
    count=0
    else:
    break
    guess = int(input("猜年龄:"))
    if guess==age:
    print("猜对了!")
    break
    count+=1
    #格式化输出
    print("My name is %s ,My age is %d" %('yangjianbo',18))
    print ("Name : %s" %'yangjianbo')
    print ("Age : %s" %22)
    print ("Sex : %s" %'male')
    print ("Age : %s" %'Teacher')
    %s 可以接收字符串和整型
    %d 只能接收整型

    第一天作业:
    #升级需求:
    student_list=[{'yangjianbo':'123'},{'wangyanhe':'123456'}]
    count=0
    while count<3:
        username=input('用户名>>').strip()
        userpassword=input('密码>>').strip()
        with open('lock.txt','r') as lock:
            for i in lock:
                i=i.strip('\n')
                if username == i:
                    print('该账号已经被锁定!请换其他账号!')
                    break
        for i in student_list:
            if username in i.keys() and userpassword in i.values():
                print('欢迎您到来,您登陆成功了!')
                break
        else:
                count+=1
                print("请重新输入用户名和密码")
    else:
        print('您已经输入三次了,账户被锁定!')
        with open('lock.txt','a') as lock_file:
            lock_file.write('%s\n'%username)

    要创建一个文件lock.txt,代表数据库用来存储被锁定的账户。

    满足需求:

    • 让用户输入用户名密码
    • 认证成功后显示欢迎信息
    • 输错三次后退出程序
    • 可以支持多个用户登录 (提示,通过列表存多个账户信息)
      用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
    一往无前虎山行,拨开云雾见光明
  • 相关阅读:
    github登录不上?!
    js -- even-loop 理解
    前端面试积累(整理中)
    各个ctr算法的比较
    常用ctr算法比较
    BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
    Attention is All You Need
    理解word2vec
    EDA时的画图函数
    alphogo 理解
  • 原文地址:https://www.cnblogs.com/yangjianbo/p/7491184.html
Copyright © 2011-2022 走看看