You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何让变量存储数值 实现指定次数掷骰子功能

解决方案

类型转换实现方法

input() 函数默认返回字符串类型,你只需要用 int() 函数对输入结果做强制类型转换,就能得到数值类型的次数变量:

# 转换示例
num_of_time = int(input("How many times would you like to roll : "))

注意直接用 int() 转换如果用户输入非数字内容会直接报错,建议搭配异常捕获或者数字校验做输入合法性判断。
你原来想通过乘法重复执行打印语句的思路不可行,Python 里可调用对象不能直接和整数做乘法实现多次执行,你需要用循环来完成多次掷骰子操作,对应逻辑修改如下:

if answer == "yes":
    # 输入合法性校验
    while True:
        num_of_time = input("你想要掷多少次: ")
        if num_of_time.isdigit() and int(num_of_time) > 0:
            num_of_time = int(num_of_time)
            break
        print("请输入合法的正整数")
    # 循环执行对应次数
    for _ in range(num_of_time):
        d.diceroll()
else:
    print("你太逊了")

更优的完整实现方案

原代码可以从这些维度优化:

  • 封装通用的用户输入校验逻辑,减少重复代码,避免非法输入导致程序崩溃
  • 骰子类的掷骰子方法改为返回点数而非直接打印,后续如果要对点数做处理(比如求和、统计)会更灵活
  • 支持自定义骰子面数,扩展性更强
  • 流程逻辑更完整,用户首次选择不掷骰子直接退出程序,不会继续走后续逻辑

优化后完整代码:

import random

class DiceRoll:
    # 支持自定义骰子面数,默认是6面
    def __init__(self, sides=6):
        self.sides = sides
    
    # 方法改为返回点数,而不是直接打印,灵活度更高
    def roll(self):
        return random.randint(1, self.sides)

def get_yes_no_input(prompt):
    """封装通用的yes/no输入校验方法"""
    while True:
        res = input(prompt).strip().lower()
        if res in ("yes", "no"):
            return res
        print("请输入 yes 或者 no")

if __name__ == "__main__":
    d = DiceRoll()
    # 第一次掷骰子
    first_answer = get_yes_no_input("你想要掷骰子吗? ")
    if first_answer == "yes":
        print(f"掷出点数:{d.roll()}")
    else:
        print("你太逊了")
        exit()
    # 多次掷骰子逻辑
    again_answer = get_yes_no_input("你想要再掷几次吗? ")
    if again_answer == "yes":
        # 校验次数输入
        while True:
            times_input = input("你想要掷多少次: ")
            if times_input.isdigit() and int(times_input) > 0:
                roll_times = int(times_input)
                break
            print("请输入大于0的正整数")
        # 批量掷骰子
        print(f"开始掷{roll_times}次骰子:")
        for i in range(roll_times):
            print(f"第{i+1}次掷出:{d.roll()}")
    else:
        print("你太逊了")

内容的提问来源于stack exchange,提问作者Saju

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 22:06:04