在实现号码百事通的功能时发现无法返回到主菜单,而且会将查找到的内容全部输出,请问哪里出了问题?
来源:4-3 实操实现:号码百事通功能
weixin_慕设计1308382
2020-01-06 23:34:35
import random
phone_numbers_str="匪警[110],火警[119],急救中心[120],道路交通事故报警[122],水上求救专用电话[12395],天气预报[12121],报时服务[12117],森林火警[12119],电力服务[95598],红十字会急救台[999],公安短信报警[12110],通用紧急求救[112],信产部IP/网站备案[010-66411166]"
def generate_unionlotto(number):
for j in range(0,number):
for i in range(0,6):# 相当于使用for循环执行6次
red=random.randint(1,33)#随机生成1-33之间的整数,红球
print(red,end=" ")#结尾的end空字符串起到拼接的作用,输出在同一行
blue=random.randint(1,16)
print(blue)
def find_phone(keyword):
phone_list = phone_numbers_str.split(",")
for p in phone_list:
if p.find(keyword) != -1:
print(p)
print("1-双色球随机选号")
print("2-号码百事通")
print("3-明日天气预报")
print("0-程序结束")
c=input("请输入功能编号:")
while(True):
if c=="1":
n=int(input("您要生成几注双色球号码:"))
generate_unionlotto(n)
elif c=="2":
n=input("请输入您要查询的机构或者电话号码:")
find_phone(keyword=n)
elif c=="3":
print("")
elif c=="0":
print("感谢您的使用,祝您生活愉快!")
break
else:
print("您输入的功能编号有误,请重新输入!")1回答
同学,你好。
1、同学将主菜单放在了while循环外,因此在程序执行时只会输出一次。将该部分代码放到while循环中即可实现相应效果

2、在查找号码时,会循环遍历phone_list得到列表中的元素,根据输入的keyword进行查找,若能找到则输出值,因此会输出包含keyword值的所有元素

例:输入11,则会找到所有包含11的元素

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
相似问题