Ⅰ python 如何将字符串转化为datetime.date
比较省事的办法是用time模块的strptime方法来解析日期字符串成为时间对象,然后再把年月日部分提取出来,最后生成datetime.date对象。
#方法1,用time模块的strptime方法来解析日期字符串成为时间对象
importtime,datetime
date_str='2017-10-19'
fmt='%Y-%m-%d'
time_tuple=time.strptime(date_str,fmt)
year,month,day=time_tuple[:3]
a_date=datetime.date(year,month,day)
print(a_date,type(a_date))
#方法2,直接把日期字符串拆分转换成年/月/日对应的整数
importdatetime
date_str='2017-10-19'
print(datetime.date(*map(int,date_str.split('-'))))
Ⅱ 用Python 怎样实现一个九九乘法表
table_9x9.py
#! /usr/bin/python
# Filename : table_9x9.py
# Author : Jesse
# Date : 2011/08/13 21:50
print '\n9x9 Table\n'
for i in range(1, 10) :
for j in range(1, i+1) :
print j, 'x', i, '=', j*i, '\t',
# print '%d x %d = %d\t' %(j, i, j*i),
print '\n'
print '\nDone!'
关于该程序的说明:
1. 第一行是特殊注释行,称为组织行,用来告诉GNU/Linux系统应该使用哪个解释器来执行该程序。
2. 第二行至第四行都是一般的注释行,用来说明一些信息的(如文件名,作者,时间等)。
3. 第六行打印一个字符串。
4. 第八行i取值范围为1, 2, 3, 4, 5, 6, 7, 8, 9
5. 第九行j取值范围为1, 2, ..., i
6. 第十行和第十一行效果一样,最后的逗号都是用来取消自动换行的。
7. 第十二行作用是在每个内层for循环结束后换行,即在输出完九九乘法表一行后换行。
8. 第十四行打印一个字符串。
小结:通过这个程序熟悉print的用法,for循环的用法,以及range函数的特点。
Ⅲ python的编程题,求帮助
import datetime
def find_date(t):
lis = []
while True:
n = int(input("请输入 n(2<=n<=8):"))
if n <= 8 and n >= 2:
break
d = datetime.datetime.now()
while t > 0:
if len(set(d.strftime('%Y-%m-%d'))) == n + 1:
lis.append(d.strftime('%Y-%m-%d'))
t -= 1
d += datetime.timedelta(days=1)
return lis
if __name__ == '__main__':
res = find_date(5)
for i in res:
print(i)
支持输出任意个满足要求的日期!
运行结果:
Ⅳ python怎么从excel中读取数据
#导入包
import xlrd
#设置路径
path='C:\Users\jyjh\Desktop\datap.xlsx'
#打开文件
data=xlrd.open_workbook(path)
Ⅳ python基础教程 10-11例子如何执行
2020年最新Python零基础教程(高清视频)网络网盘
链接:
若资源有问题欢迎追问~
Ⅵ 求高手用python写一个将十进制转化为二进制的程序
#!/usr/bin/envpython
#coding:utf-8
#
#filename:bin.py
#author:TimWang
#date:Dec.,2013
deficonvert(num):
b=[]
whilenum:
num,bi,=num/2,num%2
b.append(bi)
return'0b'+''.join(map(str,b[::-1]))
defjconvert(num,bl=10):
def_iterbs(num):
whilenum:
num*=2
ifnum>=1:
yield1
num-=1
else:
yield0
bi=[]
forbin_iterbs(num):
bi.append(b)
iflen(bi)>=bl:
break
return''.join(map(str,bi))
defconvert(num):
i,j=int(num),num-int(num)
I=''ifnotielseiconvert(i)
J=''ifnotjelse"."+jconvert(j)
returnI+J
if__name__=="__main__":
importrandom
num=random.randint(1,32553)+random.random()
printnum,convert(num)
Ⅶ 在Python中如何实现下面的效果
先跟你说下思路吧。
首先,找规律。每行都是从1开始,最大的数是相应的行号。这样可以得到
nums=3
forxinrange(1,nums+1):
printrange(1,x)
#这样就输出了,如下
[1,]
[1,2,]
[1,2,3,]
然后,继续。
剩下的是前面序列的反转,但是去掉最后一个元素
line=[1,2,3,]
line_2=sorted(line[:-1],reverse=True)
#这样line_2就是[2,1,]
new_line=line.extend(line_2)
#new_line=[1,2,3,2,1,]
最后就是输出格式的问题了
#-*-coding:utf-8-*-
__author__='lpe234'
__date__='2014-11-30'
defdo_print(num):
forxinrange(1,num+1):
line=range(1,x+1)
line.extend(sorted(line[:-1],reverse=True))
print''*(num-x)+''.join(str(x)forxinline)
if__name__=='__main__':
do_print(5)
最后输出结果如下:
C:Python27python.exeD:/ans_excel/prt.py
1
121
12321
1234321
123454321
Ⅷ python 处理excel
使用xlrd读取文件,使用xlwt生成Excel文件(可以控制Excel中单元格的格式)。但是用xlrd读取excel是不能对其进行操作的;而xlwt生成excel文件是不能在已有的excel文件基础上进行修改的,如需要修改文件就要使用xluntils模块。pyExcelerator模块与xlwt类似,也可以用来生成excel文件。
[代码]test_xlrd.py **
#coding=utf-8
#######################################################
#filename:test_xlrd.py
#author:defias
#date:xxxx-xx-xx
#function:读excel文件中的数据
#######################################################
import xlrd
#打开一个workbook
workbook = xlrd.open_workbook('E:\\Code\\Python\\testdata.xls')
#抓取所有sheet页的名称
worksheets = workbook.sheet_names()
print('worksheets is %s' %worksheets)
#定位到sheet1
worksheet1 = workbook.sheet_by_name(u'Sheet1')
"""
#通过索引顺序获取
worksheet1 = workbook.sheets()[0]
#或
worksheet1 = workbook.sheet_by_index(0)
"""
"""
#遍历所有sheet对象
for worksheet_name in worksheets:
worksheet = workbook.sheet_by_name(worksheet_name)
"""
#遍历sheet1中所有行row
num_rows = worksheet1.nrows
for curr_row in range(num_rows):
row = worksheet1.row_values(curr_row)
print('row%s is %s' %(curr_row,row))
#遍历sheet1中所有列col
num_cols = worksheet1.ncols
for curr_col in range(num_cols):
col = worksheet1.col_values(curr_col)
print('col%s is %s' %(curr_col,col))
#遍历sheet1中所有单元格cell
for rown in range(num_rows):
for coln in range(num_cols):
cell = worksheet1.cell_value(rown,coln)
print cell
"""
#其他写法:
cell = worksheet1.cell(rown,coln).value
print cell
#或
cell = worksheet1.row(rown)[coln].value
print cell
#或
cell = worksheet1.col(coln)[rown].value
print cell
#获取单元格中值的类型,类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
cell_type = worksheet1.cell_type(rown,coln)
print cell_type
"""
**2. [代码]test_xlwt.py **
#coding=utf-8
#######################################################
#filename:test_xlwt.py
#author:defias
#date:xxxx-xx-xx
#function:新建excel文件并写入数据
#######################################################
import xlwt
#创建workbook和sheet对象
workbook = xlwt.Workbook() #注意Workbook的开头W要大写
sheet1 = workbook.add_sheet('sheet1',cell_overwrite_ok=True)
sheet2 = workbook.add_sheet('sheet2',cell_overwrite_ok=True)
#向sheet页中写入数据
sheet1.write(0,0,'this should overwrite1')
sheet1.write(0,1,'aaaaaaaaaaaa')
sheet2.write(0,0,'this should overwrite2')
sheet2.write(1,2,'bbbbbbbbbbbbb')
"""
#-----------使用样式-----------------------------------
#初始化样式
style = xlwt.XFStyle()
#为样式创建字体
font = xlwt.Font()
font.name = 'Times New Roman'
font.bold = True
#设置样式的字体
style.font = font
#使用样式
sheet.write(0,1,'some bold Times text',style)
"""
#保存该excel文件,有同名文件时直接覆盖
workbook.save('E:\\Code\\Python\\test2.xls')
print '创建excel文件完成!'
**3. [代码]test_xlutils.py **
#coding=utf-8
#######################################################
#filename:test_xlutils.py
#author:defias
#date:xxxx-xx-xx
#function:向excel文件中写入数据
#######################################################
import xlrd
import xlutils.
#打开一个workbook
rb = xlrd.open_workbook('E:\\Code\\Python\\test1.xls')
wb = xlutils..(rb)
#获取sheet对象,通过sheet_by_index()获取的sheet对象没有write()方法
ws = wb.get_sheet(0)
#写入数据
ws.write(1, 1, 'changed!')
#添加sheet页
wb.add_sheet('sheetnnn2',cell_overwrite_ok=True)
#利用保存时同名覆盖达到修改excel文件的目的,注意未被修改的内容保持不变
wb.save('E:\\Code\\Python\\test1.xls')
**4. [代码]test_pyExcelerator_read.py **
#coding=utf-8
#######################################################
#filename:test_pyExcelerator_read.py
#author:defias
#date:xxxx-xx-xx
#function:读excel文件中的数据
#######################################################
import pyExcelerator
#parse_xls返回一个列表,每项都是一个sheet页的数据。
#每项是一个二元组(表名,单元格数据)。其中单元格数据为一个字典,键值就是单元格的索引(i,j)。如果某个单元格无数据,那么就不存在这个值
sheets = pyExcelerator.parse_xls('E:\\Code\\Python\\testdata.xls')
print sheets
**5. [代码]test_pyExcelerator.py **
#coding=utf-8
#######################################################
#filename:test_pyExcelerator.py
#author:defias
#date:xxxx-xx-xx
#function:新建excel文件并写入数据
#######################################################
import pyExcelerator
#创建workbook和sheet对象
wb = pyExcelerator.Workbook()
ws = wb.add_sheet(u'第一页')
#设置样式
myfont = pyExcelerator.Font()
myfont.name = u'Times New Roman'
myfont.bold = True
mystyle = pyExcelerator.XFStyle()
mystyle.font = myfont
#写入数据,使用样式
ws.write(0,0,u'ni hao 帕索!',mystyle)
#保存该excel文件,有同名文件时直接覆盖
wb.save('E:\\Code\\Python\\mini.xls')
print '创建excel文件完成!'
Ⅸ python 如何将16进制数据字符串去掉0x部分,然后转换成16进制数据写入到文件中
#-*-coding:utf-8-*-
__author__='lpe234'
__date__='2015-04-01'
hex_list=['0xAA','0xED','0xEF','0xDE']
f=file('x.txt','a+')
forxinhex_list:
ifx.startswith('0x'):
x=x[2:]
printx
f.write(x+' ')
f.close()
输出文件:
AA
ED
EF
DE
Ⅹ 求问怎么用python求夏普比率和最大回撤
本程序为Ernest Chen所着Quantitative Trading中文版书中42页中例子,书中主要介绍了如何使用Excel和matlab来实现夏普比率与计算最大回撤和最大回撤时间的方法,python作为一种开源语言,能够实现matlab的相同功能,并能写交易程序,因此采用python实现了书中功能,作为练手
#计算夏普率与回撤与回撤时间
#第一次完成于2016/5/24
import pandas as pd
import numpy as np
import math
import matplotlib.pyplot as plt
#读取sheet1中的内容,存放在data中,数据类型为DataFrame
data = pd.ExcelFile('example3_4.xls')
data = data.parse('Sheet2')
#计算日收益率(G3-G2)/G2
data['return']=(data['Adj Close'].shift(-1)-data['Adj Close'])/data['Adj Close']
#计算超额回报率
data['exReturn']=data['return']-0.04/252
#计算夏普比率
sharperatio=math.sqrt(252)*data['exReturn'].mean()/data['exReturn'].std()
print('该策略的夏普率为: ', sharperatio)
data['Adj Close'].plot()
#计算累积收益率cumret=(1+return).cumsum
data['cumret']=np.cumprod(1+data['exReturn'])-1
fig = plt.figure()
data['cumret'].plot()
#计算累积最大收益率,最大回撤,累积最长回撤时间
Max_cumret=np.zeros(len(data))
retracement=np.zeros(len(data))
Re_date=np.zeros(len(data))
for i in range(len(data)):
#计算累积最大收益率
if i==0:
Max_cumret[0]=data['cumret'][0]
retracement[0]=(1+Max_cumret[0])/(1+data['cumret'][0])-1
else:
#计算累积最大收益率
Max_cumret[i]=max(Max_cumret[i-1],data['cumret'][i])
#计算策略回撤
retracement[i]=float((1+Max_cumret[i])/(1+data['cumret'][i])-1)
#计算最大回撤时间
if retracement[i]==0:
Re_date[i]=0
else:
Re_date[i]=Re_date[i-1]+1
#计算最最大回撤幅度
retracement=np.nan_to_num(retracement)
Max_re=retracement.max()
#计算最大回撤时间
Max_reDate=Re_date.max()