python入门

Posted 宋先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

以上是关于python入门的主要内容,如果未能解决你的问题,请参考以下文章

Atom编辑器入门到精通 Atom使用进阶

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段

Cg入门20:Fragment shader - 片段级模型动态变色(实现汽车动态换漆)

python [代码片段]一些有趣的代码#sort