赞
踩
蒙特卡罗法计算圆周率
from random import random
def estimatePI(times):
hits=0
for i in range(times):
x=random()
y=random()
if x*x+y*y<=1:
hits+=1
return 4.0*hits/times
print(estimatePI(10000))
print(estimatePI(1000000))
print(estimatePI(100000000))
读写文件
内置函数open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,
newline=None,closefd=True,opener=None)
file指定被打开的文件名称
mode参数指定了打开文件后的处理方式
buffering指定了读写文件的缓存方式,0表示不缓存,1表示缓存,大于1表示缓存区的大小
encoding是对文本指定编码格式,如GBK,utf-8,CP936
读写语句
f1=open('file1.txt','r') 以读模式打开文件
f2=open('file2.txt','w') 以写的模式打开文件
f1.close() 一定要关闭文件
方法
readline() 读取一行返回
readlines() 把每行作为一个字符串存入列表然后返回该列表
write(s) 把s的内容写入文件
writelines(s) 把字符串写入文本文件,不添加换行符
with可以自动管理资源,保证文件被正常关闭
with open(filename,mode,encoding) as fp:
这里写通过文件对象fp读写文件内容的语句
举例
向文本文件中写入内容,再读出
s='Hellow world\n文本读取方法\n文本的写入方法\n'
with open('sample.txt','w') as fp: 默认使用cp936编码
fp.write(s)
with open('sample.txt') as fp: 默认使用cp936编码
print(fp.read())
举例
with open('sample.txt') as fp:
for line in fp:
print(line)
json文件
import json
将对象s序列化为json格式写入fp
json.dump(fp)
#反序列化为python对象,返回字典对象
json.load(fp)
假设文件data.txt中有若干整数,每行一个整数,编写程序读取所有的整数
将其按照降序排序后再写入文本文件data_asc.txt中
with open('data.txt','r') as fp:
data=fp.readlines() 读取所有行,存入列表
data=[int(item) for item in data] 列表推导式,转化为数字
data.sort(reverse=True) 降序排序
data=[str(item)+'\n' for item in data] 将结果转换为字符串
# data.sort(key=int,reverse=True) 这样写更简洁
with open('data_desc.txt','w') as fp:将结果写入文件
fp.writelines(data)
统计文本文件中最长行的长度和该行的内容
with open('sample.txt') as fp:
result=[0,'']
for line in fp:
t=len(line)
if t> result[0]:
result=[t,line]
print(result)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。