One>twenty 2023-04-27 00:53 采纳率: 72.7%
浏览 17
已结题

python程序问题

这样的程序可以怎么改进,使更简洁化?

# 猜测随机数之和

import random
counts = 3
add1 = random.randint(0, 10)
add2 = random.randint(0, 10)
sum = add1 + add2
while counts > 0:
    guess = int(input("猜猜我心里想的是哪些数字之和:"))
    if guess == sum:
        print("你猜对啦,不玩啦")
        break
    else:
        while counts < 2:
            print("这个数字其实是%d啦,再接再厉" % sum)
            counts = 0
            break
        else:
            if guess > sum:
                print("大啦,再猜,你还有%d次机会" % (counts - 1))
            else:
                print("小啦,再猜,你还有%d次机会" % (counts - 1))
            counts = counts - 1

还有对while语句的理解,当我counts==1时不应该是判断变量值是否为1吗,为什么while认为其是真语句从而不断执行下面的语句了?因而变成死循环了

# 猜测随机数之和

import random
counts = 3
add1 = random.randint(0, 10)
add2 = random.randint(0, 10)
sum = add1 + add2
while counts > 0:
    guess = int(input("猜猜我心里想的是哪些数字之和:"))
    if guess == sum:
        print("你猜对啦,不玩啦")
        break
    else:
        while counts == 1:                 # 未改之前的部分
            print("这个数字其实是%d啦,再接再厉" % sum)
        else:
            if guess > sum:
                print("大啦,再猜,你还有%d次机会" % (counts - 1))
            else:
                print("小啦,再猜,你还有%d次机会" % (counts - 1))
            counts = counts - 1


  • 写回答

2条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2023-04-27 01:28
    关注

    因为未改之前的部分,while counts == 1后面没有break,所以counts没有变化,只要成立就会一直成立,所以陷入死循环。
    其实没必要用 while,直接 if 判断加 break就可以了
    另外,如果两个数都是0到10的范围,那两数之和必然在0到20,分开随机两个0到10的整数,不如直接随机一个0到20的整数。

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月9日
  • 专家已采纳回答 5月1日
  • 请采纳用户回复 4月27日
  • 修改了问题 4月27日
  • 展开全部

悬赏问题

  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 关于#c++#的问题:(2)运算二叉树·表达式一般由一个运算符和两个操作数组成:(相关搜索:二叉树遍历)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)