Python基础#常用命令和函数

本篇内容为个人之前所有学的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__':

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

推荐阅读更多精彩内容