[Python] python入门1

2662
发表于 2020-9-11 23:58:09 | 查看全部
1. 第一个Python程序
依照传统,学习一门新语言,写的第一程序都叫"Hello World!",因为这个程序所要做的事情就是显示"Hello World!"。但是在本小编的文章中,能这么照葫芦画瓢么。咱们可以写第一个程序(1+1)的样子:
  1. 1+1
复制代码
就这么简单,输入数学公式就可以看到结果,那么"hello,world!"要怎么写呢?
  1. print "hello world!"
复制代码
这是print语句的一个示例。print并不会真的往纸上打印文字,而是在屏幕上输出值。程序中的引号表示输出的文本的开始和结束,在输出结果中并不显示。print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出:
  1. print 'The quick brown fox', 'jumps over', 'the lazy dog'
复制代码
print也可以打印整数,或者计算结果:
  1. print 100
复制代码
  1. print 100+300
复制代码
2.变量 --程序语言中给难记的值一个可读的代号
有一天你看到股票的代码“601211.xshg”这个代码,哇,一看就不好记,但是他的涨势有这么好,纠结,怎么办给他取个外号,
  1. gtja = "601211.xshg"
复制代码
这样,你只需记住gtja就可以了,gtja就是变量。在编程语言中最强大的功能之一是操作变量的能力。变量是指向一个值的名称。 赋值语句可以建立新的变量,并给他们赋值: 变量的类型中你只要记住下面二个最基本的类型就行:
数字
字符
  1. message = 'Hello World!'
  2. n = 666
复制代码
3、导入模块
许多宽客和大牛已经给咱们造了很多轮子,用Python这个"胶水"语言把轮子们黏在一起,做成一个你自己的车后,秋名山的路已经为你打开。 我们常常看到程序的开始处有很多的import...,他的作用就时导入模块(模块:就是别人做好的轮子)。 使用import可以导入模块之后,就可以使用这个模块内包含的函数了。 jqdata是我们提供的一个模块,内部包含很多API,如获取全部交易日、获取融资融券信息等等。

下面以平台的jqdata模块为例做一个示例: 导入jqdata,调用get_money_flow()函数获取股票的资金流数据。
  1. import jqdata
  2. jqdata.get_money_flow('000001.XSHE', '2015-12-25', '2015-12-30', fields="change_pct")
复制代码
每次都要在前面加上jqdata,是不是很烦?
你可以使用from jqdata import XX 的方法加入导入模块中单个的文件。
或者使用from jqdata import * 的方法加入导入模块中所有的文件。
  1. from jqdata import get_money_flow
  2. get_money_flow('000001.XSHE', '2015-12-25', '2015-12-30', fields="change_pct")
复制代码

评论3

程序猿的仔仔楼主Lv.9实盘认证 发表于 2020-9-12 00:06:25 | 查看全部
Python入门(2)
这是面向新用户的 Python 教程,并结合了 JoinQuant 获取到的数据进行了讲解。
如果你之前没有学过 Python, 或者对 Python 不熟,那不要再犹豫了,这个教程就是为你准备的!

【Python入门(2)】基本语法-数据类型之列表
新手在使用平台进行量化策略实现时,往往会被各种数据类型搞乱,不知道目前获取的数据是什么类型的,可以使用什么方法,所以梳理了一下。在Python中有多种内建的数据结构,我们这里经常遇到的会有列表、字典、集合和元组,第三方库pandas还提供DataFrame和Series。
将逐步详细介绍列表、字典、集合、元组、DataFrame和Series的基本使用方法和小技巧,然后介绍在使用平台获取数据时不同数据类型的转换。

Python内嵌的数据类型主要包括以下两类:
有序:
List(列表),是有序集合,没有固定大小,可以通过对偏移量以及其他方法修改列表大小。列表的基本形式如:[1,2,3,4]
Tuple(元组),是有序集合,是不可变的,可以进行组合和复制运算后会生成一个新的元组。元组的基本形式比如:(1,3,6,10)
String(字符串),也是有序集合,字符串的基本形式比如:’hello’,这里不进行具体介绍。
无序:
Set(集合),是一个无序不重复元素的集。基本功能包括关系运算和消除重复元素。集合的基本形式如:set('abracadabra')
Dictionary(字典)是无序的键:值对 (key:value 对)集合,键必须是互不相同的(在同一个字典之内)。字典的基本形式如:{'jack': 4098, 'sape': 4139}

首先对列表进行介绍。

列表
List(列表) 是 Python 中最通用的序列。列表是一个任意类型对象位置的相关有序集合,它没有固定大小。不像字符串,其大小是可以变的,通过对偏移量进行赋值以及其他各种列表的方法进行调用,可以修改列表大小。

索引是从0开始而非1开始!!
列表中值的分割用变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认“0”开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。可以对列表进行索引、切片等操作,看下面例子。
  1. # 定义列表L
  2. L = [1,2,3,4,5,6,7,8,9]
  3. # 使用len()函数查看列表的长度
  4. len(L)
复制代码
①列表索引:

  1. print L[0]
  2. print L[-1] # 负数表示从后数第几个元素,-1即为列表的最后一个元素
复制代码
②列表切片: (注意:切片并不会取到“尾下表”那个数)
  1. L[1:5]
复制代码
③ +操作可以拼接列表
  1. L + [2,3,4]
复制代码
Python 的列表数据类型包含更多的方法。
list.append(x) 把一个元素添加到列表的结尾。

list.extend(L) 将一个给定列表中的所有元素都添加到另一个列表中。

list.insert(i, x) 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x)。

list.remove(x) 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。

list.pop() 从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop() 返回最后一个元素。元素随即从链表中被删除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,这个经常会在 Python 库参考手册中遇到这样的标记。)

list.index(x) 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。

list.count(x) 返回 x 在链表中出现的次数。

list.sort(cmp=None, key=None, reverse=False) 对列表中的元素进行排序(参数可以用来自定义排序方法,参考 sorted() 的更详细的解释)。

list.reverse() 就地倒排链表中的元素

del list 有个方法可以从列表中按给定的索引而不是值来删除一个子项:del 语句。它不同于有返回值的 pop() 方法。语句 del 还可以从列表中删除切片或清空整个列表(我们以前介绍过一个方法是将空列表赋值给列表的切片)。

  1. # 统计a中元素出现的次数
  2. a = [1, 2, 3, 3, 1234.5]
  3. print 'a中 1 出现的次数:',a.count(1)
  4. print 'a中 3 出现的次数:',a.count(3)
  5. print 'a中 x 出现的次数:',a.count('x')
复制代码
a中 1 出现的次数: 1
a中 3 出现的次数: 2
a中 x 出现的次数: 0

  1. 在a的尾部添加元素
  2. a.append(555)
  3. a
复制代码
  1. # 将[7,8,9]于a进行拼接
  2. a.extend([7,8,9])
  3. a
复制代码
  1. # 在a中第三个位置插入-1
  2. a.insert(2, -1)
  3. a
复制代码
  1. # 返回2在a中的位置
  2. a.index(2)
复制代码
  1. # 反向排列a
  2. a.reverse()
  3. a
复制代码
  1. # 对a进行排序,默认为升序!
  2. a.sort()
  3. a
复制代码
  1. # 逆序排列a
  2. a.sort(reverse=True)
  3. a
复制代码
  1. # 删除列表a中值为 3 的第一个元素
  2. a.remove(3)
  3. a
复制代码
  1. # 删除a中索引为0的元素
  2. del a[0]
  3. a
复制代码
  1. # 删除a中索引为 2:4 的元素
  2. del a[2:4]
  3. a
复制代码
del 也可以删除整个变量,此后再引用命名 a 会引发错误(直到另一个值赋给它为止)。我们在后面的内容中可以看到 del 的其它用法。
  1. del a
  2. a
复制代码
把列表当作堆栈使用
列表方法使得列表可以很方便的做为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 append() 方法可以把一个元素添加到堆栈中。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。例如:

  1. stack = [3, 4, 5]
  2. stack.append(6)
  3. stack.append(7)
  4. stack
复制代码
把列表当作队列使用
你也可以把列表当做队列使用,队列作为特定的数据结构,最先进入的元素最先释放(先进先出)。不过,列表这样用效率不高。相对来说从列表末尾添加和弹出很快;在头部插入和弹出很慢(因为为了一个元素,要移动整个列表中的所有元素)。
要实现队列,使用 collections.deque,它为在首尾两端快速插入和删除而设计。例如:

  1. from collections import deque
  2. queue = deque(["Eric", "John", "Michael"])
  3. queue.append("Terry")
  4. queue.append("Graham")
  5. queue
复制代码
触摸阳光Lv.9实盘认证 发表于 2022-6-19 06:37:32 | 查看全部
夜班三更等涨停,寒冬腊月盼赚钱。
千山暮雪Lv.11实盘认证 发表于 2022-7-9 05:59:50 | 查看全部
每天进来学习一点点,希望赶上各位的步伐
姝妹Lv.1 发表于 2022-9-15 13:16:52 | 查看全部

每天进来学习一点点,希望赶上各位的步伐
youbin9Lv.11实盘认证 发表于 2022-9-24 20:47:44 | 查看全部
感谢分享,抓紧学习

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

温馨提示
自2025年起:根据用户的交流积分数来确定入群规定; 知道啦
投诉/建议联系

qhxn004@foxmail.com

站内内容仅供参考,不构成投资建议。
禁止复制和建立镜像,违者追究法律责任
  • 微信视频号
  • 关注公众号
Copyright © 2012-2025 24KRMB 版权所有 All Rights Reserved. 隐私设置净网黑名单鄂ICP备19016902号
关灯 在本版发帖
添加创始人微信
QQ客服返回顶部