分页: 1 / 1

python小程序

发表于 : 2014-07-30 13:42
jinjiachen
写了一个小程序,用来计算一些小问题,想达到的目的是可以反复选择直接按q退出,不过遇到的问题是选择了1之后再选择1就出现问题,不能计算,程序我已上传附件,请大家帮忙看看,为了方便阅读,我也贴在正文中:

代码: 全选

#This is the menu.
#coding=utf-8
while 1:
#print('Please choose what shape do you want.\n\n')
    print('请选择对应的材料形状:\n\n')
#print('1. square\n2. circle plate\n3. cylinder\n')
    print('1. 方钢板\n2. 圆钢板\n3. 钢管\n4. 材料下偏差\n5. 安全阀最小口径\n\n')
    print('退出请按q\n\n\n')
#number=input('Please choose the number:')
    number=input('请选择:')
    if number=='1':
        import squares
    elif number=='2':
        import circleplate
    elif number=='3':
        import cylinder
    elif number=='4':
        import deviation
    elif number=='5':
        import safevalve
    elif number=='q':
        exit()
#print('Press ENTER to exit')
#p=input()
里面有些注释是测试用的,不是程序的正文。

Re: python小程序

发表于 : 2014-07-30 20:24
astolia
定义成函数,只在程序最开始import,后面都直接调用函数

menu.py里:

代码: 全选

import squares
while 1:
    ....
    if number=='1':
        squares.calc()
    ....
menu.py里:

代码: 全选

def calc():
    length=float(input("请输入钢板长度:\n"))
    ....

Re: python小程序

发表于 : 2014-07-31 11:13
jinjiachen
astolia 写了:定义成函数,只在程序最开始import,后面都直接调用函数

menu.py里:

代码: 全选

import squares
while 1:
    ....
    if number=='1':
        squares.calc()
    ....
menu.py里:

代码: 全选

def calc():
    length=float(input("请输入钢板长度:\n"))
    ....
就是写在一个程序里是吧,我是想把一段段分开在不同的文件中,才会写成那样的,那我的做法错在哪?是不是import只能调用一次,所以出现了我上面的问题?

Re: python小程序

发表于 : 2014-07-31 19:48
astolia
我上面写错了,第二段代码放在squares.py里不是menu.py里
python文档里写的很清楚,如果以前import成功过同名模块,后面再次import时基本就是什么都不做
https://docs.python.org/3/reference/imp ... dule-cache