04_python简单教程(一)

一、Python综述

(一)Python是什么

        Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

(二)Python的特点

        易于学习、易于阅读、易于维护、一个广泛的标准库、互动模式、可移植、可扩展、数据库接口、GUI 编程、可嵌入。

二、Python 3安装

    python 3 环境的安装(以 windows  为例,Anaconda 安装)

    下载地址:https://www.anaconda.com/distribution/

    下载需要的对应版本,安装非常简单,只要跟着引导一步步做就可以了。

三、Python基本语法

(一)编码

    默认情况下,python3源文件以UTF-8编码,所有字符串都是unicode字符串。同时可以指定源文件的不同编码,文件开头加上

        # -*- coding: UTF-8 -*-

        # coding=utf-8(等号两边不能有空格)

    允许在源文件中使用utf-8字符集中的字符编码,对应的适合语言为中文等。

(二)标识符

    1、第一个字符必须是字母表中的字母或下划线_

    2、标识符中的其他部分由字母、数字和下划线组成

    3、标识符对大小写敏感

    4、在 python3 中,非 ASCII 标识符 (如中文字符) 也是允许的

(三)注释

    1、单行注释:井号 #

    2、多行注释:三个单引号''',或者三个双引号 """

(四)关键字和保留字

        import keyword

        print(len(keyword.kwlist))     #33

        print(keyword.kwlist)            #打印关键字

    ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del','elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda','nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

简介:

    1.and:表示逻辑‘与’。

    2.del:用于 list 列表操作,删除一个或者连续几个元素。

    3.from:导入相应的模块,用 import 或者 from...import。

    4.not:表示逻辑‘非’。

    5.while:while 循环,允许重复执行一块语句,一般无限循环的情况下用它。

    6.as:as 单独没有意思,是这样使用:with....as 用来代替传统的 try...finally语法的。

    7.elif:和 if 配合使用的,if 语句中的一个分支用 elif 表示。

    8.global :定义全局变量。

    9.or:表示逻辑“或”。

    10.with:和 as 一起用,使用的方法请看 as,见 with。

    11.assert:表示断言(断言一个条件就是真的,如果断言出错则抛出异常)用于声明某个条件为真,如果该条件不是真的,则抛出异常:AssertionError。

    12.else:参考下面 if 的解释。

    13.if:if 语句用于选择分支,依据条件选择执行那个语句块。(if 语句中最好不要嵌套 if 语句,建议把嵌套的 if 语句写在另一个函数中)。

    14.pass:pass 的意思就是什么都不做。

    15.yield:用起来和 return 很像,但它返回的是一个生成器。

    16.break:作用是终止循环,程序走到 break 的地方就是循环结束的时候。

    17.except:和 try 一起使用,用来捕获异常。

    18.import:用来导入模块,有时这样用 from....import。

    19.class:定义类。

    20.in:查找列表中是否包含某个元素,或者字符串 a 是否包含字符串 b。

    21.raise:raise 可以显示地引发异常。一旦执行 raise 语句,后面的代码就不执行了。

    22.continue:跳过 continue 后面循环块中的语句,继续进行下一轮循环。

    23.finally:看到 finally 语句,必然执行 finally 语句的代码块。

    24.is:Python 中的对象包含三要素:id、type、value,用来判断对象是否相等。

    25.return:用于跳出函数,也可以在跳出的同时返回一个值。

    26.def:用于定义方法。

    27.for:for....in 一起使用:它在一序列的对象上递归,就是遍历队列中的每个项目。

    28.lambda:即匿名函数。

    29.try:出现在异常处理中,使用格式为:try...except,try 中放想要执行的语句,except 捕获异常。

    30.nonlocal:nonlocal 关键字用来在函数或其他作用域中使用外层(非全局)变量。

(五)行和缩进

    1、Python 的代码块不使用大括号{}来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。

   2、 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。

(六)多行语句

    1、Python 语句中一般以新行作为语句的结束符。但是我们可以使用斜杠( \)将一行的语句分为多行显示。

    2、语句中包含 [], {} 或 () 括号就不需要使用多行连接符。

(七)Python的引号

    1、Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ )表示字符串,引号的开始与结束必须的相同类型的。

    2、其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。

(八)Python的空行

    1、函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

    2、空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

    3、记住:空行也是程序代码的一部分。

(九)等待用户输入

    执行下面的程序在按回车键后就会等待用户输入:

        input("\n\n 按下 enter 键后退出。")

(十)同一行显示多条语句

    Python 可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:

            x = 'runoob';print(x + '\n')

(十一)多个语句构成代码组

    1、缩进相同的一组语句构成一个代码块,我们称之代码组。像 if、while、def和 class 这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

    2、我们将首行及后面的代码组称为一个子句(clause)。

(十二)print输出

    1、同类型才可以相加

    2、print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":

            # 不换行输出

            print( x, end=" " )

(十三)import与from...import

        在 python 用 import 或者 from...import 来导入相应的模块。

        a、将整个模块(somemodule)导入,格式为: import somemodule

        b、从某个模块中导入某个函数,格式为: from somemodule import somefunction

        c、从某个模块中导入多个函数,格式为: from somemodule import firstfunc,secondfunc, thirdfunc

        d、将某个模块中的全部函数导入,格式为: from somemodule import *

    (1) 导入 sys 模块

        import sys

        print('================Python import mode==================');

        print ('命令行参数为:')

        for i in sys.argv:

            print (i)

        print ('\n python 路径为',sys.path)

    (2) 导入 sys 模块的 argv,path 成员

        from sys import argv,path # 导入特定的成员

        print('================python from import=====================')

        print('path:',path) # 因为已经导入 path 成员,所以引用不需要加 sys.path

(十四)命令行参数

    很多程序可以执行一些操作来查看一些基本信息,Python 可以使用-h 参数查看各参数帮助信息:

    $ python -h

    usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...

    Options and arguments (and corresponding environment variables):

    -c cmd : program passed in as string (terminates option list)

    -d : debug output from parser (also PYTHONDEBUG=x)

    -E : ignore environment variables (such as PYTHONPATH)

    -h : print this help message and exit

四、基本数据类型

(一)变量赋值

    counter = 100 # 整型变量

    miles = 1000.0  # 浮点型变量

    name = "runoob"  # 字符串

(二)多变量赋值

    1、Python 允许你同时为多个变量赋值。例如:a = b = c = 1。以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。

    2、可以为多个对象指定多个变量。例如:

        a, b, c = 1, 2, "runoob"

        a,b = b,a                         # 变量的交换

        以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象"runoob" 分配给变量 c。

(三)标准数据类型

    Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)

    a、不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)

    b、可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

(四)Number

    1、int、float、bool、complex(复数)

    例如:a,b,c,d = 20,5.5,True,5+4j

               print(type(a),type(b),type(c),type(d))

    2、type(a)     # 判断数据类型

         isinstance(a,int)     # 判断数据是否属于某类型

         del var1,var2      # 手动 GC

        区别:

            (1) type()不会认为子类是一种父类类型

            (2) isinstance()会认为子类是一种父类类型

    3、二进制:使用 0b 开头 例如:0b1010

         八进制:使用 0o 开头 例如:0o555

         十六进制:0x 开头 例如:0x52A74(大小写都 OK)

    python 中没有数字的大小限制,可以使用任意大的数字;python 可以保证整数运算的精确,但是浮点数运算时可能会得到一个不精确的结果。

    4、数学函数    import math

        (1) 基本数学函数

图1

        (2)随机数函数

                随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

图2

        (3)三角函数

图3

        (4)数学常量

图4

(五)String

    Python 中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。下标从 0 开始。

    加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数。

        (1) 字符串截取

            变量[头下标:尾下标:步长)

图5

   (2)字符串打印

        Python 使用反斜杠(\)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:

        print('Ru\noob')

     (3) 字符串获取

                print(str[0])

        注意:

            1、反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。

            2、字符串可以用+运算符连接在一起,用*运算符重复。

            3、Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以-1 开始。

            4、Python 中的字符串不能改变。

                    str = 'abcdef'

                    str[0] = 's'              # 报错

            5、Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。

(六)List

    List(列表)是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。列表是写在方括号[]之间、用逗号分隔开的元素列表。和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

    定义:

        list = [0,1,2,3,'c']

        list[0]                      # 0

        len(list)                 # 长度 5

        list[0:3]                 # [0,1,2]

    注意:

        1、List 写在方括号之间,元素用逗号隔开。

        2、和字符串一样,list 可以被索引和切片。

        3、List 可以使用+操作符进行拼接。

        4、List 中的元素是可以改变的。

        5、不支持与或非运算

(七)Tuple

    元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

    定义:

        t = (0,1,2,3,'c')

        t[0]                         # 0

        len(list)                 # 长度 5

        t[0:3]                      # (0,1,2)

        t[0] = 2                     # 报错

    注意:

        1、与字符串一样,元组的元素不能修改。虽然 tuple 的元素不可改变,但它可以包含可变的对象,比如 list 列表。

        list = [0,2,1,3]

        t = (0,1,2,3,list)

        t[0] = 1                         # 报错

        t[4][0] = 1

        print(t[4])                      # ok

    2、元组也可以被索引和切片,方法一样。

    3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。

        tup1 = ()                 # 空元组

        tup2 = (20,)             # 一个元素,需要在元素后添加逗号

    4、元组也可以使用 + 或 * 操作符进行拼接。

(八)Set

    集合(set)是由一个。合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。

    可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

    创建格式:

        parame = {value01,value02,...} 或者 set(value)

        s = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}

        print(s)                                                     # {'Mary', 'Jack', 'Rose', 'Tom', 'Jim'}

        s = set('1b1b2b3b2b')                              # {'2', '3', '1', 'b'}

    set 操作: # set 可以进行集合运算

        a = set('abracadabra')

        b = set('alacazam')

        print(a)

        >>> {'b', 'a', 'c', 'r', 'd'}

        print(a - b)                     # a 和 b 的差集

        >>> {'b', 'd', 'r'}

        print(a | b)                     # a 和 b 的并集

        >>> {'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}

        print(a & b)                 # a 和 b 的交集

        >>> {'a', 'c'}

        print(a ^ b)                 # a 和 b 中不同时存在的元素

        >>> {'l', 'r', 'z', 'm', 'b', 'd'}

(九)Dictionary(字典)

    字典(dictionary)是 Python 中另一个非常有用的内置数据类型。

    列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。

    键(key)必须使用不可变类型。

    在同一个字典中,键(key)必须是唯一的。

    字典创建:

        (1) d = {"a":1,"b":2,"c":3}

        (2) d = dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])

        (3) d = {x:x**2 for x in (2, 4, 6)}

        (4) d = dict(Runoob=1, Google=2, Taobao=3)

    字典操作:

        tinydict = {'name': 'guigu','code':1, 'site': 'www.atguigu.com'}

        print (dict['name'])                      # 输出键为 'name' 的值

        print (dict['code'])                      # 输出键为 'code' 的值

        print (tinydict)                          # 输出完整的字典

        print (tinydict.keys())             # 输出所有键 dict_keys(['name', 'code','site'])

        print (tinydict.values())         # 输出所有值 dict_values(['guigu', 1,'www.atguigu.com'])

(十)Python类型转换

图6
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容