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 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?