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

Python如何在同一行获取两个用户输入分别赋值给对应变量

实现同一行输入两个参数的修改方案

问题原因

你当前的代码连续调用了2次input()函数,每次input()执行时都会等待用户按下回车确认输入后才会继续执行后续代码,两次回车就会产生换行,所以需要分两次输入,无法满足同一行输入的需求。

修改方案

仅调用1次input()获取完整的一行输入内容,再按照约定的格式拆分出cardName和cardNum两个变量即可。

方案1:适配你给出的期望输入格式

如果你需要完全匹配你期望的Card name : Spark Jump : Card number : 123输入效果,可以使用如下代码:

def Card():
    # 一次获取整行输入
    input_content = input('Card name : ')
    # 按照固定格式拆分两个参数
    card_name_part, card_num_part = input_content.split(' : Card number : ')
    cardName = card_name_part.strip()
    cardNum = card_num_part.strip()
    # 后续逻辑保持不变
    card = f'{cardName} : {cardNum}/{cardsInSet} '
    library.append(card)

使用时直接在提示后输入Spark Jump : Card number : 123即可实现你要的效果。

方案2:简化输入格式(更易用)

如果可以接受更简单的输入规则(用户只需用英文冒号分隔卡片名和卡号,比如Spark Jump:123),可以使用如下更鲁棒的代码,还增加了格式校验逻辑避免输入错误导致程序报错:

def Card():
    # 循环输入直到格式正确
    while True:
        input_content = input('请输入卡片名和卡号,用英文冒号分隔(示例:Spark Jump:123):')
        try:
            # 从右往左拆分一次,避免卡片名里包含冒号导致拆分错误
            cardName, cardNum = input_content.rsplit(':', 1)
            cardName = cardName.strip()
            cardNum = cardNum.strip()
            # 可选:校验卡号是否为数字
            if not cardNum.isdigit():
                print('输入错误:卡号必须为数字,请重新输入')
                continue
            # 格式校验通过,跳出循环
            break
        except ValueError:
            print('输入格式错误,请按照示例格式重新输入')
    # 后续逻辑保持不变
    card = f'{cardName} : {cardNum}/{cardsInSet} '
    library.append(card)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:15:04