m0_69047541 2022-10-30 18:59 采纳率: 57.1%
浏览 22
已结题

猜单词的那部分代码被运行了两遍,什么回事啊

import random
def judge(n):
scard=0
n-=1
words=['easy','python','techer','giao','pipe']
print("欢迎参加猜单词游戏!\n请把乱序后的字母组成一个单词\n")
for i in range(5):
n-=1
print("剩余猜测次数:",n)
word=random.choice(words)
answer=word
jumble=""
while word:
position=random.randrange(len(word))
jumble+=word[position]
word=word[:position]+word[(position+1):]
print("乱序后的单词:",jumble)
guess=input("\n请输入您猜测的结果:")
if guess !=answer:
scard+=0
print("\n对不起,猜错了!")
else:
scard+=2
print("\n恭喜您,猜对了!")
return scard
def scard(scard):
if scard==10 :
print("成绩等级为A")
elif scard>=8 and scard<10:
print("成绩等级为B")
elif scard>=6 and scard<8:
print("成绩等级为C")
elif scard>=4 and scard<6:
print("成绩等级为D")
elif scard>=2 and scard<4:
print("成绩等级为E")
elif scard>=0 and scard<2:
print("成绩等级为F")
print(judge(7))
scard(judge(7))

  • 写回答

1条回答 默认 最新

  • a5156520 2022-10-30 19:38
    关注

    应该是因为最后两行代码那里,print(judge(7))这里执行了一次猜单词函数judge(),然后scard(judge(7))这里又执行了 一次猜单词函数judege()的原因,所以猜单词部分运行了两次,去掉一个即可,修改如下:

    import random
    
    def judge(n):
        scard=0
        n-=1
        words=['easy','python','techer','giao','pipe']
        print("欢迎参加猜单词游戏!\n请把乱序后的字母组成一个单词\n")
        
        for i in range(5):
            n-=1
            print("剩余猜测次数:",n)
            word=random.choice(words)
            answer=word
            jumble=""
            while word:
                position=random.randrange(len(word))
                jumble+=word[position]
                word=word[:position]+word[(position+1):]
            print("乱序后的单词:",jumble)
            guess=input("\n请输入您猜测的结果:")
            if guess !=answer:
                scard+=0
                print("\n对不起,猜错了!")
            else:
                scard+=2
                print("\n恭喜您,猜对了!")
        return scard
    
    def scard(scard):
        if scard==10 :
            print("成绩等级为A")
        elif scard>=8 and scard<10:
            print("成绩等级为B")
        elif scard>=6 and scard<8:
            print("成绩等级为C")
        elif scard>=4 and scard<6:
            print("成绩等级为D")
        elif scard>=2 and scard<4:
            print("成绩等级为E")
        elif scard>=0 and scard<2:
            print("成绩等级为F")
        #print(judge(7))
    
    scard(judge(7))
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月1日
  • 已采纳回答 10月30日
  • 创建了问题 10月30日

悬赏问题

  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件
  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果