在实现号码百事通的功能时发现无法返回到主菜单,而且会将查找到的内容全部输出,请问哪里出了问题?

来源: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回答

时间,

2020-01-07

同学,你好。

1、同学将主菜单放在了while循环外,因此在程序执行时只会输出一次。将该部分代码放到while循环中即可实现相应效果

http://img.mukewang.com/climg/5e13e88a090c51da03790296.jpg

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

http://img.mukewang.com/climg/5e13e8d50938d9be05030154.jpg

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

http://img.mukewang.com/climg/5e13e943095d3a6a03960321.jpg

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

0

0 学习 · 8160 问题

查看课程