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

如何根据输入打印数组特定值并按指定玩家数量收集名称?

问题描述

我想要创建一个程序,接收用户输入后打印数组的特定部分。目前已编写如下代码:

players=['Player 1','Player 2','Player 3','Player 4','Player 5','Player 6','Player 7','Player 8']

playerammount=int(input("The game is starting! How many players are joining? (2-8): "))
if playerammount < 2:  #Make sure the max-min amount of players are accepted
    cont=input("Too few players.\nPress enter to try again")
    start()
if playerammount > 2:
    cont=input("Too many players.\nPress enter to try again")
    start()
names=input("What is the name of player")

我希望能根据选定的玩家数量,仅询问对应数量的玩家名称,而非超出该数量的部分。同时计划使用split()方法实现一次性输入所有玩家名称以节省代码空间。

解决方案

先修正原代码的逻辑错误,再实现你要的一次性输入功能,最终代码如下:

players = ['Player 1','Player 2','Player 3','Player 4','Player 5','Player 6','Player 7','Player 8']

# 循环获取有效玩家数量
while True:
    try:
        player_amount = int(input("The game is starting! How many players are joining? (2-8): "))
        if 2 <= player_amount <= 8:
            break
        elif player_amount < 2:
            input("Too few players.\nPress enter to try again")
        else:
            input("Too many players.\nPress enter to try again")
    except ValueError:
        input("Please enter a valid number.\nPress enter to try again")

# 循环获取符合数量要求的玩家名称
while True:
    names_input = input(f"Please enter {player_amount} player names separated by spaces: ")
    names = names_input.split()
    if len(names) == player_amount:
        break
    else:
        input(f"Please enter exactly {player_amount} names.\nPress enter to try again")

# 替换原数组对应数量的元素并打印特定部分
players[:player_amount] = names
print("Joined players:", players[:player_amount])

关键说明

  1. 用while True循环替代未定义的start()函数,实现输入错误时重复提示,避免程序崩溃
  2. 新增try-except捕获非数字输入的异常,增强程序健壮性
  3. 使用split()方法将用户输入的字符串按空格分割成名称列表,一次性完成所有玩家名称的输入
  4. 验证分割后的列表长度是否等于选定的玩家数量,确保输入符合要求
  5. 替换原数组的前player_amount个元素,并打印该部分内容,实现"打印数组特定部分"的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:54:58