python小程序

Kvm、VMware、Virtualbox、Xen、Qemu 等
回复
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

python小程序

#1

帖子 jinjiachen » 2014-07-30 13:42

写了一个小程序,用来计算一些小问题,想达到的目的是可以反复选择直接按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()
里面有些注释是测试用的,不是程序的正文。
附件
py.rar
(2.44 KiB) 已下载 95 次
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: python小程序

#2

帖子 astolia » 2014-07-30 20:24

定义成函数,只在程序最开始import,后面都直接调用函数

menu.py里:

代码: 全选

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

代码: 全选

def calc():
    length=float(input("请输入钢板长度:\n"))
    ....
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: python小程序

#3

帖子 jinjiachen » 2014-07-31 11:13

astolia 写了:定义成函数,只在程序最开始import,后面都直接调用函数

menu.py里:

代码: 全选

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

代码: 全选

def calc():
    length=float(input("请输入钢板长度:\n"))
    ....
就是写在一个程序里是吧,我是想把一段段分开在不同的文件中,才会写成那样的,那我的做法错在哪?是不是import只能调用一次,所以出现了我上面的问题?
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: python小程序

#4

帖子 astolia » 2014-07-31 19:48

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