查看: 2559|回复: 13
收起左侧

[其他] 请教关于PY里的函数调用

[复制链接]
发表于 2008-12-4 21:39 | 显示全部楼层 |阅读模式 来自: 中国江苏南通
做了一个外径转换通径的东西,我把他放在了commonprogram.py中,文件存放在C:\Tribon\M3\Vitesse  目录下.
请教:如何在其他py文件中调用这个Dy_to_Dn()函数呢?
程序如下:
==========================================
def Dy_to_Dn(dd):
     dy=["14","22","27","34","42","48","60","76","89","114","140","168","219","273","325","355.6","406.4","457","530"]
     dn=["10","15","20","25","32","40","50","65","80","100","125","150","200","250","300","250","400","450","500"]
     con = 0   
     for rr in dy[:]:
          if dd == rr:
               dd = dn[con]
               continue
          else:
               con = con +1
          return dd
回复

使用道具 举报

龙船学院
发表于 2008-12-4 23:47 | 显示全部楼层 来自: 中国上海
用os.chdir改变当前的工作路径到指定文件夹,再import这个文件夹内的py文件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-4 23:50 | 显示全部楼层 来自: 中国江苏南通
但是我在开头import commonprogram后,在程序中调用

Dia = commonprogram.Dy_to_Dn(dia)

没有改变dia的结果,郁闷了我两天了,Dia还是等于dia.......
回复 支持 反对

使用道具 举报

发表于 2008-12-4 23:57 | 显示全部楼层 来自: 中国上海
开头import commonprogram必须保证两个PY在同一个文件夹里
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-5 00:01 | 显示全部楼层 来自: 中国江苏南通
谢谢,明天再去试试......
回复 支持 反对

使用道具 举报

发表于 2008-12-5 10:07 | 显示全部楼层 来自: 中国辽宁大连
应该使用字典来作为存储结构。

def Dy_to_Dn(dd):
    dydnDict = {}
    dy=["14","22","27","34","42","48","60","76","89","114","140","168","219","273","325","355.6","406.4","457","530"]
    dn=["10","15","20","25","32","40","50","65","80","100","125","150","200","250","300","250","400","450","500"]
    for i, j in zip(dy, dn):
        dydnDict = j
    return dydnDict[dd]

if __name__ == "__main__":
    print Dy_to_Dn('14')
    print Dy_to_Dn('406.4')
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-5 19:14 | 显示全部楼层 来自: 中国江苏南通
原帖由 yang827 于 2008-12-5 10:07 发表
应该使用字典来作为存储结构。

def Dy_to_Dn(dd):
    dydnDict = {}
    dy=["14","22","27","34","42","48","60","76","89","114","140","168","219","273","325","355.6","406.4","457","530"]
    dn=["10 ...

字典我还不太理解,所以才没用,呵呵。

今天问题解决了,原因是什么我也不知道,但这么做了以后就有结果了.
方法为将Dia = commonprogram.Dy_to_Dn(dia)中的dia转换为字符串.
Dia = commonprogram.Dy_to_Dn(str(dia))
开心,不管怎么着,总算有结果了啊,哈哈。
YG的方法回头我再去试试.
回复 支持 反对

使用道具 举报

发表于 2008-12-6 09:30 | 显示全部楼层 来自: 中国辽宁大连
如果你传入的数据是实型,dd就应该定义为实型。相应的列表元素都转换成实型。
虽然Python是动态的,不需要预先定义数据类型。但是在做程序设计的时候,接口和数据类型还是应该考虑清楚的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-6 22:19 | 显示全部楼层 来自: 中国江苏南通
PYTHON里单引号和和双引号有什么区别,我一直不清楚.
比如DD=["1","2","3","4"]和yy=['1','2','3','4']
回复 支持 反对

使用道具 举报

发表于 2009-1-10 23:11 | 显示全部楼层 来自: 中国上海

回复 9楼 更多的思考 的帖子

一般情况下没什么区别,但有时会混用,比如 "'"  (两个双引号包住一个单引号),表示输入一个单引号
回复 支持 反对

使用道具 举报

发表于 2009-1-11 11:19 | 显示全部楼层 来自: 中国辽宁大连
原帖由 更多的思考 于 2008-12-6 22:19 发表
PYTHON里单引号和和双引号有什么区别,我一直不清楚.
比如DD=["1","2","3","4"]和yy=['1','2','3','4']


你使用的这种情况下是没有区别的。
单引号和双引号可以互相转义。
回复 支持 反对

使用道具 举报

发表于 2009-1-11 13:42 | 显示全部楼层 来自: 中国上海
原帖由 yang827 于 2008-12-5 10:07 发表
应该使用字典来作为存储结构。

def Dy_to_Dn(dd):
    dydnDict = {}
    dy=["14","22","27","34","42","48","60","76","89","114","140","168","219","273","325","355.6","406.4","457","530"]
    dn=["10 ...


zip(dy, dn)函数是什么作用的,呵呵
回复 支持 反对

使用道具 举报

发表于 2009-1-11 20:56 | 显示全部楼层 来自: 中国辽宁大连
zip()可将两个序列的元素按次序进入一个循环
  1. >>> a = [1,2,3]
  2. >>> b = ['a', 'b', 'c']
  3. >>> for i, j in zip(a, b):
  4. i, j


  5. (1, 'a')
  6. (2, 'b')
  7. (3, 'c')
复制代码

更详细的说明可以查Python的文档和上网Google一下。
回复 支持 反对

使用道具 举报

发表于 2009-1-11 22:01 | 显示全部楼层 来自: 中国上海
呵呵,明白了~~

谢谢YANG超人啊~~~

好像是那个TUPLE的逆操作~~是吧

[ 本帖最后由 everdmind 于 2009-1-11 22:03 编辑 ]
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|标签|免责声明|龙船社区

GMT+8, 2024-11-14 12:25

Powered by Imarine

Copyright © 2006, 龙船社区

快速回复 返回顶部 返回列表