• python入门


    一.python介绍

       Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对

    象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989 年发

    明,第一个公开发行版发行于1991年。

       Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL协议 。P

    ython语法简洁清晰,特色之一是强制用白符作为语句缩进。 

       Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言

    作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,

    使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有

    特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能

    要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。

    需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平

    台的实现。

    二.python解释器

        1.python解释器的作用是将程序员写得代码翻译成机器语言

        2.python目前有两种版本:python2.7.x和python3.x

        3.如何实现python解释器多版本共存?

         下载安装两个版本的python解释器->找到各自的目录将里面的python.

         exe,将其复制粘贴复件重命名为python2和3->打开计算机高级属性

         中的环境变量-->添加系统环境变量->将python两个版本的各自根目

         录路径复制进环境变量中

    三.python程序的运行方式

    1 python的两种运行方式

         (1):在终端解释器中写程序运行(交互式模式)

             优点:方便调试

             缺点:无法永久保存,不适合开发

         (2):将代码写到文件中,再调用文件路径运行

             优点:永久保存,适合开发

             缺点:调试稍微麻烦

    2 python代码运行过程

          启动python解释器-->将文件中的代码读入内存-->解释执行

               

    四.变量

    1.定义

          变量是一种可以反映状态变化的机制

    2.变量的存在意义

          程序的执行本质就是一系列变化

    3.定义变量的注意事项

         (1)首字母不能是数字

         (2)只能由数字、下划线、英文字母构成

         (3)不能与关键字一样,容易混淆

    4.规范书写

          为了使长串代码更加容易阅读理解,采用驼峰体或者下划线式          

    5.变量的三个特征

               id:地址
    
              type:数据类型
    
              value:值 

    代码演示

    x = 'SongXueXiang'
    print(id(x), type(x), x)
    运行结果
    
    2344171221488 <class 'str'> SongXueXiang

    6.“=”与“is”的区别:

    “=”比较的是值

    代码演示

              >>> x='name:alex,age:73'
              >>> x='name:alex,age:73'
              >>> id(s1)
              2506534695408
              >>> id(s2)
              2166679483056
              >>>
              >>> s1 is s2
              False
              >>> s1 == s2
              True
                

    “is”比较的是id

    代码演示

              >>> x=1
              >>> y=x
              >>>
              >>>
              >>> id(x)
              1767599584
              >>> id(y)
              1767599584
              >>> x == y
              True
              >>> x is y
              True 

    7.常量

       定义:不变的量(例如π)

    五.数据类型

    1.分类:

       数字类型、字符串类型、列表、字典、布尔类型

    2.数字类型:

       int整型(用于整数),float浮点

    3.两种数字类型的区别:

       int和float类型只能存一个值,不可变(值变,id就变) 

    4.字符串类型:

       在python中,加了引号的字符就是字符串类型,python并没有字符类型

    (1)字符串相加相乘:

    代码演示

      x = ""
      y = ""
      print(x+y)
      print(x*10)
    #代码运行结果
    杨宋
    杨杨杨杨杨杨杨杨杨杨

    (2)字符串类型方法运用 

      1) 移除name变量对应的值两边的空格, 并输出处理结果处理方法.strip()去空值
     name = "     aleX".strip()
     print(name)

       2) 判断name变量对应的值是否以"al"开头, 并输出结果处理方法.startswith()方法判断开头

     name = "aleX"
     name.startswith('al')
     print(name.startswith('al'))    
      3) 判断name变量对应的值是否以"X"结尾, 并输出结果
处理方法.endswith()方法判断开头         
    name = "aleX"
    name.endswith('X')
    print(name.endswith('X'))
      4) 将name变量对应的值中的 “l” 替换为 “p”, 并输出结果处理方法.replace()方法替换
     name = "aleX"
    print(name.replace('l','p'))
       5) 将name变量对应的值根据 “l” 分割, 并输出结果。处理方法.split()
     name = "aleX"
     print(name.split('l'))

      6) 将name变量对应的值变大写, 并输出结果
处理方法.upper()
     name = "aleX"
    print(name.upper()) 
      7) 将name变量对应的值变小写, 并输出结果
处理方法.lower()
     name = "aleX"
     print(name.lower()) 
       8) 请输出name变量对应的值的第2个字符?处理方法:索引取值
     name = "aleX"
     print(name[1]) 
       9) 请输出name变量对应的值的前3个字符?处理方法:切片
     name = "aleX"
     print(name[0:3:1]) 

       10)请输出name变量对应的值的后2个字符?
处理方法:切片

    正向切片name = "aleX"
                 print(name[2:4:1])
    
    
    
    反向切片 name=' aleX'
                 print(name[-2:])    
       11)请输出name变量对应的值中 “e” 所在索引位置?
处理方法.index()
           name = "aleX"
           print(name.index('e'))

       12)获取子序列, 去掉最后一个字符。如: oldboy则获取oldbo。

    name = "aleX"
    a=name[:-1]
     print(a)

       13)字符串循环打印

    1.
    name='sxx'
    i=0
    while i < len(name):
        print(name[i])
        i+=1
    2.
    name='sxx'
    for i in name:
      print(i) 

    5.列表:

    (1)定义:

       [ ]内可以有多个值,类型随意,逗号分隔,可变,有序

    示例

    
    
    songxuexiang=['sxx','eat',16]
    
    

    (2)列表的增删改查

       1)索引取值

    n=[1,2,3,4]
    print(n[1])

       2).列表的切片

    x=['aa','bb','cc','dd']
    print(x[1:2])

       4).列表的长度

    x=['aa','bb','cc','dd']
    print(len(x))

       5).成员运算in和not in

    x=['aa','bb','cc','dd']
    print('aa' in x) 

       6).列表的追加

    x=['aa','bb','cc','dd']
    x.append['ee']
    print(x)

        7)列表内删除

    1.
           x=['aa','bb','cc','dd']  
           del x[1]
            print[x]
    2.
            x.remove(aa)     单纯的删除
            print(x)
    3
            x.pop()   默认是从末尾删,值违背删去,被取走,通过x.pop可以调用
            x.pop(0)
            print(x)

       8)列表循环

    x=['aa','bb','cc','dd']
    i=0
    while i<len(x)
         print(x[i])
            i+=1
    
    
    
    for  i  in  range(len(x)):
    print(i,x[i])

    列表格式练习

    题:
    students = [
        {'name': 'sxx', 'age': 18, 'sex': 'male'},
    
        {'name': 'lxx', 'age': 38, 'sex': 'fmale'},
    
        {'name': 'hxx', 'age': 48, 'sex': 'male'},
    
        {'name': 'qxx', 'age': 58, 'sex': 'fmale'},
    
        {'name': 'liwenzhou', 'age': 68, 'sex': 'male'}, ]
       要求循环打印所有学生的详细信息,格式如下
     < name: egon age: 18 sex: male >
     < name: alex age: 38 sex: fmale >
     < name: wxx age: 48 sex: male >
     < name: yuanhao age: 58 sex: fmale >
     < name: liwenzhou age: 68sex: male >
    解:
    n = 0
    while True:
        if n < 5:
            name=students[n]['name']
            age=students[n]['age']
            sex=students[n]['sex']
            print('<name:%s,age:%s,sex:%s>'%(name,age,sex))
        else:
            break
        n += 1          

    6.元组

    (1)定义:

       ( )内可以有多个值,类型随意,逗号分隔,相当于不可变的列表,有序 

      x=('a','b','c'        

        1)按索引取值(正向取+反向取):      

      x=('aa','bb','cc','dd')
        print(n[1])

        2):元组的切片 

        x=('aa','bb','cc','dd')
          print(x[1:2])

        3):元组的长度

        x=('aa','bb','cc','dd')
            print(len(x))    

        4):元组的循环

        x=('aa','bb','cc','dd')
        i=0
        while i<len(x)
             print(x[i])
                i+=1
    
    
    
        for  i  in  range(len(x)):
            print(i,x[i])        

       5)查询位置

              x=('aa','bb','cc','dd')
                 print(t.index('aa'))        

       6)查询元素个数

             x=('aa','bb','cc','dd')
                print(t.count('x'))

    7.字典

    (1)定义:

       { }内可以有多个值,类型随意,逗号分隔,无序,不可变

        dic={'name':'sxx','age':18}

       1)按key存取值:可存可取 

            dic={'name':'sxx'}
            dic['age']=10
                print(dic)       

       2)改大小写.upper()方法和.lower()方法

            x={'name':'sxx'}
                dic['name']=dic['name'].upper() 

       3)长度运算

            dic={'name':'sxx','age':18}
                print(len(dic))
    
    

       4)字典内元素删除

            dic={'name':'sxx','age':18}
            del dic['name']
                print(dic)        
    
           dic={'name':'sxx','age':18}
           res=dic.pop('name')
                print(res)   

       5)字典取值不确定key时,避免错误

    dic={'name':'sxx','age':18}
    print(dic.get('namexxxxxxxxxxx'))

       6)字典更新

            dic={'name':'sxx','age':18}
            dic.update({'x':1,'age':19})
                print(dic)

    对与老字典来说,更新指的是,新字典中有而老字典中没有则添加,
    新有而老有,则覆盖      
    
    
    
    

       7)字典创建

     1.
    
         good_info={
                         'name':None,
                         'price':None,
                         'count':None
                             }
    
      2.
    
           print({}.fromkeys(['name','age','sex'],None))

       8)字典setdefaul方法

        dic={'name':'sxx','age':18}
        res=dic.setdefault('name',SXX')
          print('返回值',res)
            print(dic)
    
        字典有中有key,则不修改,返回原key对应的原值
        没有对应的key,则添加,返回添加的key对应的value      

    9.集合

    (1).定义:

        { }内以,分隔开的元素,可村多个值,不可变,无序

    (2):常用操作

        1)去重

            s1=set('hello')
            print(s1)  

        2)关系运算

    stus1={'sxx','yb','张全蛋','李铁蛋','wer'}
    stus2={'李二丫','wxx','liudehua','sxx','yb'}
    
    既是stuws1里的又是stus2里的的学生:交集
    print(stus1& stus2)
    print(stus1.intersection(stus2))
    
    
    
    所有的学生:并集
    print(stus1| stus2)
    print(stus1.union(stus2))
    
    
    
    
    只是stus1里的,不在stus2里的:差集
    print(stus1-stus2)
    print(stus1.difference(stus2))
    
    
    
    没有同时在stus1和stus2的学生姓名:交叉补集
    print(stus1^stus2)
    print(stus1.symmetric_difference(stus2))                   

    10.单引号、双引号、多引号的区别

       引号运用方法:  

           字符串类型如果有单引号则外面套双引号,

            反之双套单三引号一般用于多行字符串

    代码演示

    
    
    x='''
    我有一头小毛炉啊,
    我从来也不骑,
    有一天我心血来潮骑着它去赶集
    '''
    print('x') 

    11.布尔类型重点:

       1、None,0,空(空字符串,空列表,空字典等)三种情况下

         布尔值为False

        2、其余均为真

    12.%s和%d的区别:

         %s:能接收字符串和数字

         %d:只能接收数字

    x=[aa,bb,cc,dd]
    print('一:%s;二%s'%(x[1]),x[2])

    x=[aa,bb,cc,dd]
    print('一:%d;二%d'%(x[1]),x[2])##这是为了说明%d只能接
                                      ##收数字,运行会报错  

    6:基本运算符

        算数运算符

    比较运算符

     

     赋值运算符    

    逻辑运算符

    7.if.....else语句

        含义:如果.....那么

    1.用户登录验证

    user_name = 'seven'
    user_password = '123'
    inp_name = input('请输入用户名:')
    inp_password = input('请输入用户密码:')
    if user_name == inp_name and user_password==inp_password: 
       print('登陆成功')     
    else:
         print('用户名错误')

    8.while循环

    用户验证错误三次锁定

    
    
    user_name = 'seven'
    user_password = '123'
    n = 0
    while True:
        if n < 3:
            inp_name = input('请输入用户名:')
            inp_password = input('请输入用户密码:')
            if user_name == inp_name:
                print('登陆成功')
            else:
                print('用户名错误')
            n += 1
        else:
            print('尝试次数过多,锁定')
            break
        print('尝试次数:', n)

    循环嵌套

    
    
    name='sxx'
    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
                      break
                print('run <%s>' %cmd)
        else:
            print('用户名或密码错误')
            continue
        break

    简单的购物小程序

    msg='''
    1.注册
    2.登录
    3.退出
    '''
    sp='''
    编号           商品          价格
      1             mac          20000
      2           lenovo         10000
      3            apple         200
      4            tesla         100000
    '''
    goods = [
        {'name': 'mac', 'price': 20000},
        {'name': 'lenovo', 'price': 10000},
        {'name': 'apple', 'price': 200},
        {'name': 'tesla', 'price': 100000},
    ]
    m=[]
    h={}
    n=1
    tag=True
    print('欢迎进入商城')
    while tag:
        print(msg)
        with open('b', mode='r', encoding='utf-8') as f:
         for line in f:
            l=line.split(',')
            h.setdefault(l[0])
            h[l[0]]=l[3]
         inp_xx=input('注册请输入1,登录请输入2,退出请按3:').strip()
         if inp_xx=='1':
            print('欢迎新用户')
            inp_name = input('输入姓名').strip()
            if inp_name in h:
                print('存在该用户,请重新注册或登陆')
                continue
            else:
                inp_sex = input('输入性别').strip()
                inp_age = input('输入年龄').strip()
                inp_password=input('请输入下次登录密码').strip()
                with open(r'b', mode='at', encoding='utf-8') as f:
                    f.write('
    %s,%s,%s,%s,0' % (inp_name,inp_sex,inp_age,inp_password))
                    print('注册成功,')
                    print('用户信息(姓名:%s,性别:%s,年龄:%s,密码:%s)' % (inp_name,inp_sex,inp_age,inp_password))
                    continue
         elif inp_xx=='2':
            while tag:
                inp_name = input('输入用户名:').strip()
                inp_password = input('输入密码:').strip()
                if inp_name in h and  inp_password == h[inp_name]:
                    print(sp)
                    salary = input("请输入你的金额").strip()
                    i = input('请输入商品编号').strip()
                    while tag:
                        salary = int(salary)
                        if i  in ['1','2','3','4']:
                            i = int(i) - 1
                            name = goods[i]['name']
                            price = int(goods[i]['price'])
                            while tag:
                                if price <= salary:
                                    m.append(name)
                                    salary -= price
                                    cmd = input('购买成功,退出请输入quit,继续浏览请回复随意字符:')
                                    if cmd == 'quit':
                                        print('你购买的商品为%s,你的余额为%s' % (m, salary))
                                        tag = False
                                    else:
                                        print(sp)
                                        i=input('还要买什么,请输入编号')
                                        break
                                else:
                                    print('你的余额不够')
                                    cz = input("充值")
                                    cz = int(cz)
                                    salary += cz
                                    print("用户名:%s;余额:%s" % (inp_name, salary))
                                    continue
                        else:
                            print("请输入编号")
                elif n < 3:
                    print('用户名、密码错误')
                    print('尝试次数', n)
                    n += 1
                else:
                    print('尝试次数过多')
                    break
    
         elif inp_xx=='3':
            print("谢谢惠顾")
            break
         else :
            print("请输入1,2或3")
            continue
    

      

     

      

     

      

     

  • 相关阅读:
    使用Xcode和Instruments调试解决iOS内存泄露(转载) sansan
    GCD介绍(二): 多核心的性能(转载) sansan
    iphone 常用的<app>info.plist设置(转载) sansan
    GCD介绍(一): 基本概念和Dispatch Queue (转载) sansan
    iOS 证书与签名 解惑详解[转] sansan
    Xcode快捷键 sansan
    GCD介绍(三): Dispatch Sources(转载) sansan
    Apple开发者授权 sansan
    MFC中Spin control的使用
    c++ windows mobile中设置菜单活动与否
  • 原文地址:https://www.cnblogs.com/songxuexiang/p/8597963.html
Copyright © 2020-2023  润新知