美文网首页
Python入门基础一

Python入门基础一

作者: coderLZ | 来源:发表于2017-06-02 14:35 被阅读0次

    一、Python介绍

    Python的创始人是吉多•范罗苏姆。1989年圣诞节期间为打发时间决心开发一个新的解释程序,作为ABC语言的一种继承。
    Python的应用广泛及重要性不再多说,总之,人生苦短,我用Python!

    Python是什么语言呢?

    编程语言主要从以下几个角度进行分类,编译型和解释型,静态语言和动态语言,强类型语言和弱类型语言。


    编译VS解释.png
    编译型VS解释型

    编译型
    优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
    缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据不同的操作系统环境编译不同的可执行文件。

    解释型
    优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
    缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

    动态语言和静态语言

    通常我们说的动态语言、静态语言是指动态类型语言和静态类型语言。
    动态类型语言:动态类型语言是指运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时在内部将数据类型记录下来。Python就是典型的动态类型语言。

    静态类型语言:静态类型语言与动态类型语言刚好相反,他的数据类型实在编译期间检查的,也就是说在写程序时要声明所以变量的数据类型,C/C++是静态语言的典型代表。

    强类型定义语言和弱类型定义语言

    强类型定义语言:强制数据类型定义的语言,也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当做字符串处理,强类型定义语言是类型安全的语言。

    弱类型定义语言:数据类型可以被忽略的语言,他与强类型定义语言相反,一个变量可以赋不同数据类类型的值。

    强类型语言在速度上可能略逊于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。

    通过上边的知识我们可以知道,Python是一门动态解释性的强类型定义语言

    Python的优缺点

    优点:
    1、Python的定位就是“优雅”、“明确”、“简单”。
    2、三方库强大,开发效率高。
    3、高级语言——无需考虑诸如如何管理你的程序使用的内存一类底层细节
    4、可移植性
    5、可扩展性——如需要某段关键代码运行更快或不公开,可把部分程序用C或C++编写,在Python程序中使用。
    6、可嵌入性。

    缺点
    1、速度慢
    2、代码不能加密
    3、线程不能利用多CPU。GIL即全局解释器锁,是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。

    注:开发工具使用PyCharm

    二、输入输出

    Python中输出使用'print()',在括号中可以写入想要输出的内容
    print('Helllo , world')
    Python中input()函数可以让用户输入并存放到一个变量里

    >>> name = input()
    Michael
    >>> name
    'Michael'
    

    注:
    Python2.x中raw_input相当于Python3.x中的input
    Python2.x中不要用input

    那什么是变量?

    三、变量

    声明变量

    name = "LZ"
    上述代码声明了一个变量,变量名为:name ,变量name的值为:“LZ”
    变量定义的规则:
    •变量名只能是字母、数字、下划线的任意组合
    •变量名的第一个字符不能为数字
    •以下关键字不能声明为变量名
    ['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’]
    另:变量名应可能有含义,如,name、age
    如果单词较多可用下划线,如:name_of_dog

    变量赋值
      a = "ABC"
      b = a
      a = "XYZ"
      print(b)
    

    执行a=‘ABC’,解释器创建了字符串’ABC’和变量a,并把a指向’ABC’:



    执行b=a,解释器创建了变量b,并把b指向a指向的字符串’ABC’:



    执行’a=‘XYZ’’,解释器创建例如字符串’XYZ’,并把a的指向改为’XYZ’,但b并没有更改:

    所以打印b变量是abc。

    空值

    空值是Python中一个特殊的值,用None表示。None不能理解为0,因为0是有意义的而None是一个特殊的空值。

    代码注释

    当行注释用:#
    多行注释用:’’’ ’’’

    编码问题

    Python2.x中如果有中文需要在文件开头
    # -*- coding: utf-8 -*-
    Python3.x中默认引入,所以直接就可表示中文

    四、数据类型初识

    数字

    int(整型)
      在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647
      在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807
    long(长整型)
      跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
      注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
    float(浮点型)
      浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
    complex(复数)
      复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
    注:Python中存在小数字池:-5 ~ 257

    布尔值

    一个布尔值只有True、False两种值,要么是True,要么是False。在Python中可以直接用True、False表示布尔值(注意大小写),也可以通过布尔运算and 、or、和not 计算出来。
    布尔运算在计算机中用来做条件判断,根据计算结果为True或False,计算机可以自动执行不同的后续代码。

    a = True
    print a and 'a=T' or 'a=F’

    输出结果是字符串’a=T’。
    解释:Python把0、空字符串和None看成False,去他数值和非空字符串都看成True。
    and 和 or 运算的一条重要法则:短路计算

    1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
    2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
    字符串

    字符串可以用单引号''或双引号”"括起来表示。如果字符串中含有 ‘ ,比如 I’m OK.我们用双引号括起来表示。类似的,如果字符串中有双引号,我们就用单引号括起来表示。
    如果字符串中既包含双引号又包含单引号,就需要对字符串的某些字符进行“转义”,Python字符串用 \ 进行转义。
    要表示字符串 Bob said "I'm OK”.
    由于 ' 和 " 会引起歧义,因此,我们在它前面插入一个 \ 表示这是一个普通字符,不代表字符串的起始,因此,这个字符串又可以表示为 'Bob said "I'm OK\”.'
    计算字符串的字符数用len()函数
    注意:转义字符 \ 不计入字符串的内容中。
    常用转义符:\n换行 \t 制表符 \表示 \ 字符本身
    PS: 字符串是 %s;整数 %d;浮点数%f

    列表

    Python内置的一种数据类型是列表list,list是一种有序的结合,可以随时添加和删除其中元素。
    构造list很简单,直接用[ ]把list的所有元素都括起来就是一个list对象。
    由于Python是动态语言,所以list中包含的元素并不要求都必须是同一数据类型。
    L = ['Michael', 100, True]
    一个元素都没有的list就是空list。empty_list = []
    len()函数可以获得list元素的个数。
    用索引来访问list中每一个位置的元素,索引是从0开始的。

    >>> L[0]
    'Michael'
    >>> L[1]
    100
    

    索引可以使用负数,例如可以用L(-1)来获得最后一个元素。
    当索引超出范围时Python会报一个IndexError的错误。
    list是一个可变的有序表,所以可以往list中追加元素到末尾:

    >>> L.append('Adam')
    >>> L
     ['Michael', 100, True, 'Adam']
    

    删除末尾的元素:

    >>> L.pop('Adam')
    >>> L
     ['Michael', 100, True]
    

    删除指定位置的元素:

    >>> L.pop(1)
    100
    >>> L
     ['Michael',  True]
    

    替换某个元素:

    >>> L(1)='haha'
    >>> L
     ['Michael',  'haha']
    

    list中元素也可以是list
    s = ['python', 'java', ['asp', 'php'], 'scheme']
    想获得'asp'可以用s[2][0]获得。

    元组

    tuple是另一种有序列表,中文翻译为元组。tuple和list非常相似,但是tuple一旦创建完毕就不能修改了。
    创建tuple和和创建list唯一不同之处就是用( )代替[ ].
    tuple和list一样可以包含0个、1个和任意多个元素。
    包含0个元素的tuple就是空tuple,t=()。
    创建一个元素的tuple时,因为小括号既可以表示tuple又可以作为括号表示运算的优先级所以t=(1)被Python解释器计算结果是1而不是tuple。所以Python规定,单元素tuple要多加一个逗号这样就避免了歧义:t=(1,)
    元组中的元素如果是列表,列表中元素是可变的。

    字典
    d={
        'LZ':95,
        'SY':86,
        'HB':90
    }
    

    用花括号{}表示一个字典,冒号之前叫key,之后叫value.
    字典是一个无序的集合。
    可以根据key查找相应的value

    >>>d['LZ']
    95
    

    如果key不存在就会报错,可以通过in判断是否存在

    >>>'haha' in d
    False
    

    还可以通过dict提供的get方法,如果key不存在可以返回None或自己指定value

    >>> d.get('haha')
    >>> d.get('haha', 100)
    100
    

    删除一个key用pop(key),对应的value也会删除

    >>> d.pop('haha')
    100
    >>> d
    { 'LZ':95, 'SY':86,'HB':90}
    

    注:key不能为可变对象

    set

    set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
    要创建一个set,需要提供一个list作为输入集合:

    >>> s = set([1, 2, 3])
    >>> s
    {1, 2, 3}
    

    重复元素在set中自动被过滤:

    >>> s = set([1, 1, 2, 2, 3, 3])
    >>> s
    {1, 2, 3}
    

    通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:

    >>> s.add(4)
    >>> s
    {1, 2, 3, 4}
    >>> s.add(4)
    >>> s
    {1, 2, 3, 4}
    

    通过remove(key)方法可以删除元素:

    >>> s.remove(4)
    >>> s
    {1, 2, 3}
    

    set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

    >>> s1 = set([1, 2, 3])
    >>> s2 = set([2, 3, 4])
    >>> s1 & s2
    {2, 3}
    >>> s1 | s2
    {1, 2, 3, 4}
    

    set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象。

    格式化
    name=input("name=")
    age=input("age=")
    job=input("job=")
    
    info='''
       --------info of %s--------
       name:%s
       age:%s
       job:%s
    '''%(name,name,age,job)
    # print(info)
    
    info2='''
       ---------info of {_name} ---------
       name:{_name}
       age:{_age}
       job:{_job}
    '''.format(
            _name=name,
            _age=age,
            _job=job
    
    )
    # print(info2)
    
    info3='''
       ---------info of {0}--------
       name:{0}
       age:{1}
       job:{2}
    '''.format(name,age,job)
    print(info3)
    

    %运算符就是用来格式化字符串的,在字符串内部有几个%s后边就对应几个变量或值,顺序要对应好。
    常用的占位符:%d ---整数 %f---浮点数 %s---字符串 %x---十六进制整数

    五、数据运算

    算数运算
    算数运算.png
    比较运算
    比较运算
    逻辑运算
    逻辑运算
    赋值运算
    赋值运算
    成员运算
    成员运算
    身份运算
    身份运算
    位运算
    位运算

    六、判断表达式 if ···elif···else···

    #给定一个年龄
    #让用户输入一个年龄,与给定的进行判断
    ge_of_mine=15
    guess_age= int (input("guess_age="))
    if guess_age==age_of_mine:
        print("yes,you got it")
    
    elif guess_age>age_of_mine:
        print("think smaller")
    
    else:
        print("think older")
    
    

    七、循环

    for循环
    #简单的循环输出
    for i in range(10):
          print (i)
    #从1开始,隔一个数打印一个,10以内
    for i in range(1,10,2):
          print(i)
    
    While循环
    count = 0
    while True:
         print(count)
         count +=1
    

    continue:跳出当前本次循环,进行下一次循环
    break:直接跳出整个循环

    八、循环及条件判断综合运用

    #猜年龄,最多猜三次
    age_of_mine=15
    
    for i in range(3):
    
        guess_age = int(input("guess_age="))
    
        if guess_age == age_of_mine:
            print("yes,you got it")
            break
    
        elif guess_age > age_of_mine:
            print("think smaller")
    
        else:
            print("think older")
    
    
    else:
        print("you have tried too many times...fuck off")
    

    继续学习,持续更新。。。。。

    相关文章

      网友评论

          本文标题:Python入门基础一

          本文链接:https://www.haomeiwen.com/subject/ckiyfxtx.html