python中使用if语句时有什么办法可以快速返回指定的层级?

用python写一个随机姓名生成系统,运行顺利,就是当Y=="B",即对生成的名字不满意的时候直接返回到选择角色性别的层级了,觉得这样不合理,有没有办法直接返回到X=r.choice(name)+r.choice(name1)+r.choice(name2)这一层立刻再随机生成一个?请大佬们指点!

import random as r
name=['赵', '钱', '孙', '李', '周', '吴', '郑', 
'王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', 
'秦', '尤', '许','何',
 '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶',
  '姜', '戚', '谢', '邹', '喻', '柏',
 '水', '窦', '章','云', '苏', '潘',
 '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌',
 '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳',
 '酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', 
 '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', 
 '安', '常',    '乐', '于', '时', '傅', '皮', '卞', '齐', 
 '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄']
from itertools import repeat
for _ in repeat (None):

    X=input("请选择角色性别 A.我是男生 B.我是女生")
    if X=="B":

        name1=['玉','美','蓉','芳','珺','玲','秀','梦']
        name2=['','云','玲','萍','','清','晴','华','琦','怡','文']
        X=r.choice(name)+r.choice(name1)+r.choice(name2)
        print(X)
        Y=input("这个名字可以吗,女士?A.好的 B.换一个")
        if Y=="A":

            print("欢迎",X)
        elif Y=="B":
            continue


    elif X=="A":
        name1=['大','勇','冲','贵','胜','风','霸','雄']
        name2=['','龙','军','虎','根','忠','国','宇','天','灼','狂']
        X=r.choice(name)+r.choice(name1)+r.choice(name2)
        print(X)
        Y=input("这个名字可以吗,先生?A.好的 B.换一个")

        if Y=="A":
            print("欢迎",X)
        elif Y=="B":
            continue

3个回答

可以用
while代替if
重新判断 continue
跳出 break

把相关代码抽出来定义成一个方法,调用起来就灵活多了

m0_48537856
m0_48537856 嗯呢
6 天之前 回复
for _ in repeat (None):

    X=input("请选择角色性别 A.我是男生 B.我是女生")
    if X=="B":
        name1=['玉','美','蓉','芳','珺','玲','秀','梦']
        name2=['','云','玲','萍','','清','晴','华','琦','怡','文']
        while True:
            X=r.choice(name)+r.choice(name1)+r.choice(name2)
            print(X)
            Y=input("这个名字可以吗,女士?A.好的 B.换一个")
            if Y=="A":
                print("欢迎",X)
                break

    elif X=="A":
        name1=['大','勇','冲','贵','胜','风','霸','雄']
        name2=['','龙','军','虎','根','忠','国','宇','天','灼','狂']
        while True:
            X=r.choice(name)+r.choice(name1)+r.choice(name2)
            print(X)
            Y=input("这个名字可以吗,先生?A.好的 B.换一个")
            if Y=="A":
                print("欢迎",X)
                break

m0_48537856
m0_48537856 谢谢,用while问题就解决了!
6 天之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐