While循环未显示正确的输出

问题描述

我创建了一个while循环来获取以下输出=

输入Player -1- Alex的名称,

输入玩家-2-彼得的名字,

输入播放器的名称-3- ... ...

但是,我无法正确实现while循环,因为我总是获得 相同的值=1。有人可以帮助我吗? 代码=

 ------------ 

import pandas as pd
import numpy as np
import seaborn as sns
import random as random
import matplotlib.pyplot as plt
import statistics
import math
import statistics
import numpy as np
import scipy.stats
import pandas as pd
import matplotlib.style as style
from datetime import timedelta
import datetime as dt
import time
import os

 

   
    #Name of the player for the game
    
    i=1

colonne= ['player_name']

df = []

for player in colonne:
    
    while i<10:
        
        df_1 = pd.DataFrame({'Numero': [1,2,3,4,5,6,7,8,9,10],player: [str(input("Enter the name of the Player %s " %i)) for player in range(10)],}).set_index('Numero')

        i=i+1
    
    
    
    df.append(df_1)

df1 = pd.concat(df,axis=1)
------

output:

Enter the name of the Player 1 Alex
Enter the name of the Player 1 Peter
Enter the name of the Player 1 

解决方法

除了首先创建所有播放器的列表,然后最后将其转换为数据框之外,一种更简单的方法可能是使用.format()。请参见以下示例。使用.format()可以避免字符串中不同数据类型出现问题。

import pandas as pd

players = []  # empty list 
i = 1  # initial count and player number 

while i < 11:

    players.append(input(('Input the name of Player {}').format(i)))  # take input and append to list 

    i += 1

df = pd.DataFrame(players,columns=['Player Name'],index=[i+1 for i in range(10)])  # convert list to dataframe
,

在while循环中,您使用的是列表理解,它循环遍历range(10)中的数字(玩家)。

但是,您将i用作播放器的编号。不确定是否要同时使用while循环和list comprehension循环,但是如果这样做,则只需要更改即可:

input("Enter the name of the Player %s " %i)

收件人:

input("Enter the name of the Player %s " %player)

否则,该循环的所有10个版本都会在第一个while循环内发生,因此前10个循环的i仍为1,因为您尚未达到i = i + 1。

这将要求输入100行,所以您可能不是这个意思,因此您可以删除列表理解,即

df_1 = pd.DataFrame({'Numero': [1,2,3,4,5,6,7,8,9,10],player: [input(f"Enter the name of the Player %s " %i)],}).set_index('Numero')

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...