关于python程序调试问题,一个文件计算的问题

关于python程序调试问题,一个文件计算的问题,第1张

# --coding: utf8

from __future__ import division

import string

import math

DU = u'\xb0'

FEN = u'\u2032'

MIAO = u'\u2033'

def transferDuFenMiao(fileContentList):

changedList = []

for item in fileContentList:

if type( item ) == type( '' ):

item = itemdecode('utf8')

du, next = (itemsplit( DU ) + [ '' ])[:2]

fen, next = (nextsplit( FEN ) + [ '' ])[:2]

miao = nextsplit( MIAO )[0]

du = int(du or 0)

fen = int(fen or 0)

miao = int(miao or 0)

print du, fen, miao

#{a+[(b+c/60)/60]}°

data = du + ( fen + miao / 600 ) / 600

changedListappend(data)

return changedList

#12050833333°

def transferDecimal(fileContentList):

changedList = []

for i in fileContentList:

if type( i ) == type( '' ):

i = idecode('utf8')

i = istrip()strip(DU)

a, b = (isplit('') + [''])[:2]

#A° [取整(B60)]′ {[B60-取整(B60)]60}″

du = a

if b:

b = float( '0' + b )

else:

b = 00

fen = int(b 60)

miao = int(( b 60 - fen ) 60 )

data = du+DU+unicode(fen)+FEN+unicode(miao)+MIAO

data = dataencode('utf8')

changedListappend(data)

return changedList

def readFile(fileName):

print "begin read file"

fp=open(fileName)

arr=[]

for lines in fpreadlines():

#lines=linesreplace("\n","")split(",")

lines = linesstrip()

print lines

arrappend(lines)

fpclose()

return arr

def writeFile(toBeWrittenList,fileName):

fl=open(fileName, 'w')

for i in toBeWrittenList:

flwrite(i)

flwrite('\n')

flclose()

def main():

flag = input( "please choose your model,\n\t1: present du-fen-miao model,\n\t2:present decimal model\n" )

fileName = raw_input( "please input the file you want fo parse\n" )

print "flag:", flag

print "file name:",fileName

arrayList = readFile(fileName)

print "here"

if flag == 1:

print "begin tranfer based on du_fen_miao"

datalist = [ str(x) + DUencode('utf8') for x in transferDuFenMiao(arrayList) ]

writeFile(datalist,"output1txt")

elif flag == 2:

print "begin transfer based on decimal"

writeFile(transferDecimal(arrayList),"output2txt")

if __name__ == '__main__':

main()

注释只是让 调试人员 能对代码逻辑和功能有更好的理解,从这方面来说,注释可以辅助调试。

但是从程序的角度来看,注释并不产生实际运行价值,在程序运行过程中,注释部分都是直接被跳过的。

1 使用Python自带的IDLE 在开始-->程序-->Python25(视你安装的版本而不同)中找到IDLE(Python GUI),

点击后d出如下窗体:

在>>>提示符后输入代码,回车,就可以执行此代码。

IDLE支持语法高亮,支持自动缩进,支持方法提示,不过提示的很慢。

2 在命令行窗口上运行 这种方法的前提是:你在系统的PATH变量中配置了Python的安装路径。

右键我的电脑-->属性-->高级-->环境变量,在系统变量列表中找到Path项,点击编辑按钮,在其中追加“C:\Python25;”(路径及版本视你安装而定),保存退出。

开始-->运行-->输入cmd,回车,开启一个CMD窗口。

在DOS提示符>后,输入python,回车,进入Python环境。

它的运行和IDLE基本一致,但是没有了语法高亮、自动缩进、方法提示,唯一的好处就是运行速度比IDLE快了些(如果你告诉我可以加参数运行python,那你就不算新手了,也不用看这篇文章了),所以用处不大。

退出此python环境使用Ctrl + Z,然后回车。

3 以脚本方式运行 以上两种运行方式虽然简便,但是不适合大量代码的开发,只适合查看单句或少量几句代码的运行结果,或者验证某函数的调用方法,而这恰恰是我们平时调试、验证程序的常用方式。如果是正式的开发,则应该使用独立脚本的方式运行。

打开你的文本编辑器(我是用EmEditor,当然你使用记事本、写字板也都可以),输入python代码,保存成py文件,然后双击运行它就可以执行了,当然前提也是必须配置系统PATH变量。

l 在其所在目录下开启一个CMD窗口,输入python py运行

l 在代码的最后增加如下语句:

raw_input()

然后你再双击运行,结果就会停留在那里,直到你敲击回车键才消失。

Linux下运行Python程序,一般说来有以下两种形式,其实和Windows下基本一样。

一、在IDLE中运行

在终端窗口输入$ python进入交互式运行环境,然后就可以边输入边执行代码了:

>>> print 'Hello Python'

Hello Python>>>退出使用Ctrl-D。

二、以脚本方式运行

在py脚本所在目录下输入

def selectionSort_v3(lst, start, end):

if start==end: return lst

else:

min_value=lst[start]

min_idx=start

for i in range(start,end):

if lst[i]<min_value:

min_value=lst[i]

min_idx=i

lst[start],lst[min_idx]= lst[min_idx],lst[start] #交换值

return selectionSort_v3(lst,start+1,end)

lst=[2,1,4,5,6,8,9,0,7]

print(lst)

lst=selectionSort_v3(lst, 0,len(lst))

print(lst)

===========

显示

[2, 1, 4, 5, 6, 8, 9, 0, 7]

[0, 1, 2, 4, 5, 6, 7, 8, 9]

以上就是关于关于python程序调试问题,一个文件计算的问题全部的内容,包括:关于python程序调试问题,一个文件计算的问题、python中注释可以辅助程序调试吗、如何运行Python程序的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10151488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存