美文网首页Python学习我爱编程
Python基础#常用命令和函数

Python基础#常用命令和函数

作者: 刀客特鹿 | 来源:发表于2018-02-10 21:39 被阅读12次

    本篇内容为个人之前所有学的python常用命令和函数的整理,后期会不断更新。由于本人平时双开,会同时包含python2和python3的命令,同时会以 #py2 #py3的注释注明, 没有注明的就代表通用。

    如果想py2 py3双开的同学可以参考

    刀客特鹿:Windows下Python 2.7和3.X 在同一台电脑上共存(双开)方法zhuanlan.zhihu.com

    本位作为笔记整理,可能不像教材那样逻辑清晰,建议搜索使用,如果要系统性的学习,还是建议找专业的材料。

    本文内容全为自己手动整理,当然参考多方资料,如有侵权,或者需要添加相关参考链接,请联系本人,本人一定会尽自己所能遵守每一位互联网原创者的知识版权。

    本文参考网站 和学习资源推荐:

    廖雪峰的官方网站

    Python教程www.liaoxuefeng.com

    简明Python教程

    简明 Python 教程www.kuqin.com

    操作系统 windows

    IDE:pycharm

    Python软件安装包:Anaconda

    如果Python和pycharm都不会安装的同学,请参考:

    刀客特鹿:打开Python的优雅姿势——手把手教零基础的你安装python(Anaconda)zhuanlan.zhihu.com刀客特鹿:打开Python的优雅姿势——手把手教零基础的你安装python开发环IDE(Pycharm)zhuanlan.zhihu.com

    统一程序的编码:

    # 因为python对中文字符串不是太友好,一般都会在文件的首行定义编码。至于其中的原因,还希望大家自己去网上搜索答案。初学者不理解也没有关系,强行养成每次开篇打码就把以下内容复制在首行就可以。

    # encoding: utf-8# -*- coding: utf-8 -*-

    # 以上两种写法的意思是一样的,随便哪种都可以,意思都是指定本程序指定默认编码 utf-8

    当然,后续初学者还是会遇到很多编码问题。这是一种挑战,也是一道门槛,鼓励跨越。

    有兴趣的同学可以看廖老师的讲解:

    字符串和编码www.liaoxuefeng.com

    导入库

    import pandas import pandas as pdfrom Collecting_data import Collect_stock_data

    # 从我自己写的文件 Collecting_data作为函数导入

    有些模块内容比较丰富也会用到类似方法导入,如

    from matplotlib.pyplot import plot

    输出打印

    ## hellow world

    # py2

    print 'hellow world'

    # py3

    print('hellow word')

    # 其实python2.7版本也支持print()的方式, 如果是初学者可以统一使用print()方式

    # 输出格式打印

    a = 'Peter'

    # py2

    print "My name is:" + a

    # py3

    print("My name is:" + a)

    # 多变量的输出打印

    a = 'Peter'b = 1c = 17.4576

    # py2

    print a + 'has' + str(b) + 'book which is cost ' + str(c) + ' yuan.'print"%s has %d book which is cost %.2f yuan." % (a, b, c)print "{} has {} book which is cost {} yuan.".format(a, str(b), float(c))

    # py3

    print(a + ' has ' + str(b) + ' book which is cost ' + str(c) + ' yuan.')print("%s has %d book which is cost %.2f yuan." % (a, b, c))print("{} has {} book which is cost {} yuan.".format(a, str(b), float(c)))

    输出

    # 从上面的代码可以看出,py2 和 py3 对于print这个命令,多数情况下,区别就是加不加()。

    占位符

    %d int

    %s str

    %f float

    %x 十六进制整数

    输入变量

    name = input()print(name)

    还是用上面的案例

    a = input()b = 1c = 17.4576print(a + ' has ' + str(b) + ' book which is cost ' + str(c) + ' yuan.')print("%s has %d book which is cost %.2f yuan." % (a, b, c))print("{} has {} book which is cost {} yuan.".format(a, str(b), float(c)))

    在pycharm的终端输入 你想设置的名字

    # input()在py2和py3里的差异是,py2里要输入'Lilith', py3里只要输入Lilith,也就是说py2里input()输入的变量类型要自己定义,而py3里则默认为str格式

    终止运行程序

    exit()

    注释

    # 以 # 开头的本行内容都为注释

    """ ... """ 以""" 开头到 以"""结尾的多行内容都可以是注释。

    数据类型和变量

    数字变量

    a = 100 # int 整型b = 18.88 # float 浮点数c = 3.14E10 # 科学计数法,代表3.14*10~10次方

    字符串 string

    d = 'hellow world'  # 单引号,双引号,三引号都可以,引号内的可以是字母, 单词,语句。d = ”hellow world“d = '''hellow world'''

    以上三种写法效果一样

    转义字符 \ %

    e = 'I\'m \"OK\"!'  # 通常用来输出 引号 这类有特殊意义的符号f = 100.00print('Percentage is %f%%' % (float(f)))  # 第二个%是转义字符,第三个%是要输出的内容

    布尔值, bool:

    True

    False

    空值

    None

    查看变量类型 type()

    a = 'Peter'

    b = 1

    c = 17.4576

    d = True

    e = None

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

    基本运算:

    计算符号

    算符是连接一个或多个元素的符号,用来表达计算

    常见的算术符号:+ - * / %

    % 是取余数的操作,不是除法

    9 % 3 == 0,9%2==1

    注意:除法运算时 /

    整除还是整,要得到小数,需要用浮点数除整或者浮点数除浮点数

    print(10 / 3)  # 整数除以整数,结果是整数3,而不是3.33333...print(10.0 / 3) # 小数除以整数,结果是浮点数,结果是3.33333...

    自运算的快速写法

    num = 1num += 1  # 等价于 num = num + 1

    # 在写一个计数器的时候经常使用上面的操作

    类似的还有

    num -= 1num *= 2num /= 3

    比较运算符:

    >, <, >=, <=, ==, !=(不等于)

    返回的是布尔值

    布尔运算符:

    and, or, &, |

    and 等价于 &

    or 等价于 |

    作用是 布尔值比较

    # 建议尽量使用 & | 表达逻辑关系,因为在很多情况下,如pandas的dataframe中用and和or是无法识别逻辑关系的。

    列表 list[] 操作

    list是一种有序的集合,可以随时添加和删除其中的元素。

    定义一个列表

    a = [1, 2 ,3 , 4, 5]

    有序的概念

    b = [5, 4, 3, 2, 1]a ! = b  # 输出 True

    列表长度 len()

    len(a) == 5

    切片操作

    列表内的元素从0开始顺序计数

    a[0] == 1,  a[2] == 3

    切片赋值,元素赋值

    a[0] = 5,  a == [5, 2, 3, 4, 5]

    反向切片

    a[-1] == 5

    多个元素切片

    a[1:3] == [2, 3]  # 注意list的切片区间是开闭的,取前不取尾巴a[1:] == [2, 3, 4, 5]  #取出序号1以后所有的元素a[-1:] == 5  a[-2:] == [4, 5]a[ : 3]  == [1, 2, 3]

    # 从这个结果可以看出 : 前面默认hi0, 后面默认的是len(list), 而且只能从坐向右取数

    a[1:4:2] == [2, 4]  # 按范围[1:4] 按步长2 取数

    列表中可以同时放入多种变量类型

    b = [1, 'a', 2.44, 5E10, 'name' ]

    列表的相加(合并)

    c = a + bc = a.extend(b)

    输出:[1, 2, 3, 4, 5, 1, 'a', 2.44, 50000000000.0, 'name']

    这种操作类似 a.extend(b) print(a) 注意:c = a.extend(b) 结果是None

    另外对列表中的元素对应求和操作需要for 或者itertools

    列表乘以数字 *

    print(a*3)

    输出:[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

    列表添加列表 extend()

    a.extend(b)

    输出:[1, 2, 3, 4, 5, 1, 'a', 2.44, 50000000000.0, 'name']

    列表添加元素 append()

    a.append(b)

    输出:[1, 2, 3, 4, 5, [1, 'a', 2.44, 50000000000.0, 'name']]

    append是将一个列表作为一个元素塞入原始列表中

    列表删除元素 remove()

    a.remove(3)a.remove(a[2])

    只能删除单个元素

    列表的插入 insert(index, value)

    a.insert(1,'Second')print(a)

    输出 [1, 'Second', 2, 3, 4, 5]

    列表的反转,倒叙,排序操作

    反转,倒叙 reverse()

    a.reverse()

    排序 sort()

    a.sort()  # 默认从小到大排序,可以设置参数reverse=True, 效果就和reverse()一样了b.sort()  # 如果有字符串也能排序print(b)

    输出:[1, 2.44, 50000000000.0, 'a', 'name']

    列表查询,元素定位 list.index()

    print(a.index(4))

    输出:3

    如果一个列表里有两个相同的元素,只会输出第一个元素在列表里的位置(序号)

    a = [5, 2, 3, 4, 5]print(a.index(5))

    输出:0

    快速创建一个列表 range()

    print(range(5))  # 输出 [0, 1, 2, 3, 4]  # 从0开始计数, 输出5个数字print(range(1:10))  # 输出 [1, 2, 3, 4, 5, 6, 7, 8, 9]print(range(1: 10: 2))  # 输出[1, 3, 5, 7, 9]  #  从1到10,步长为2

    列表的最大值 max(), 最小值min()

    print(max(a))  输出: 5print(min(a))  输出:1

    判断某个元素是否在列表中,in

    print(0 in a)  # 输出:Falseprint(1 in a)  # 输出: Trueprint(0 not in a)  # 输出: Trueprint(1 not in a)  # 输出:False

    元组 tuple ()

    另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。 所有的操作

    可以参考列表list的操作

    集合set

    无序的列表集合,且不能有重复值,可以用作自动去重

    d = set([1,2,3,3])e = set([3,2,1])print(d == e)

    输出: True

    注:对于set的理解,廖雪峰老师的原文:set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

    而我个人觉得把set 和 list, tuple 归为一类更好理解。因为无序,所以集合不能切片操作,如果要结合向列表list那样操作,可以用list(d)再转成列表

    集合添加元素 add.

    d.add(4)

    集合删除元素 remove

    d.remove(3)

    字典dict {}

    Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

    d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}d['Michael']

    输出 95

    字典是无序的数组,所以不能切片操作。

    取出列表中指定元素,用get, 或者直接用key值

    d['Michael']  # 输出 95d.get('Michael')  # 输出 95

    判断key值是否存在 in 注意:这个方法只能判断key值,不能判断value

    print('Michael' in d)  # 输出 Trueprint(95 in d)  # 输出 False

    字典的赋值,修改元素

    d['Michael'] = 20print(d)

    输出 {'Bob': 75, 'Michael': 20, 'Tracy': 85}

    添加元素,通过赋值的方法可以直接添加元素

    d['Ella'] = 20print(d)

    输出 {'Bob': 75, 'Ella': 20, 'Michael': 95, 'Tracy': 85}

    输出字典的key值

    print(d.keys())

    输出字典的value值

    print(d.values())

    将两个列表组合成一个dict, map()

    names = ['Michael', 'Bob', 'Tracy']scores = [95, 75, 85]d = dict(map(lambda x,y:[x,y], names,scores))

    映射函数 map(function, iterable)

    function: 要重复运行的函数

    iterable: 一个或多个序列(列表,元组,集合)

    对每个列表里的数组求平方:

    def square(x):return x*xprint(map(square, [1,2,3,4,5]))

    也可以写成

    print(map(lambda x: x*x, [1,2,3,4,5]))

    两个列表的元素相加求和

    a = [1, 2, 4, 5, 6]b = [4, 5, 6, 7, 8]print(map(lambda x,y: x+y, a,b))

    但是以下的写法是错误的

    print(map(sum,a,b))

    只有运行本程序时,才会运行以下函数,如果作为库被导入则不运行

    if __name__ == '__main__':

    相关文章

      网友评论

        本文标题:Python基础#常用命令和函数

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