在excel文件中的每个单元格中添加score + name

时间:2014-12-01 21:14:46

标签: python excel csv

我正试图解决这个问题。我正在创建一个将分数存储在电子表格中的程序,但是当它执行时,它不会在不同的单元格中写入分数和名称。我已经尝试添加列字符串/行字符串,但总是收到错误,一些指南和帮助将不胜感激。

到目前为止,这就是我所做的:

!(http://postimg.org/image/6zn9l43bj/)!

我试图在每个单元格中找到一个标题名称和下面的用户名称,并且得分相同,需要一些起点/帮助

ClassA = open('classa.csv', 'w')
ClassB = open('classb.csv', 'w')
ClassC = open('classc.csv', 'w')
start = True
while start:
user =(input("What is your name?"))
form =(input("Which Group are you in A/B or C ")).lower()
import re
import random
from random import randint
score = 0
for i in range(3):
    first_num = random.randint(1,10)
    second_num = random.randint(1,10)
    choice = (first_num+second_num) 


    if choice == first_num+second_num:
        print ("Question (%d)" % (i+1))
        print (first_num)
        print("Add (+)")
        print(second_num)

    check = True
    while check:
        answer = (input('enter the answer: '))
        if not (re.match('-?[0-9]\d*(\.\d+)?$', answer)):
            print("Only input numbers")
        else:
            check = False
            answer = int(answer)




    if answer == (choice):
        print("It's correct!")
        score +=1

    else:
        print("It's wrong!")
        print ("The correct answer is: ", choice)
        print('')


print(user)



if form == 'a':
    ClassA.write("Name: "+str(user) + ' ' + "Score: "+str(score)+"/10" + '\n')
elif form == 'b':
    ClassB.write("Name: "+str(user) + ' ' + "Score: "+str(score)+"/10" + '\n')
elif form == 'c':
    ClassC.write("Name: "+str(user) + ' ' + "Score: "+str(score)+"/10" + '\n')

yesorno = input("Restart?, Y or N ").lower()
if yesorno == 'y':
    start = True
elif yesorno == 'n':
    start = False

ClassA.close()
ClassB.close()
ClassC.close()

由于

1 个答案:

答案 0 :(得分:0)

一些背景知识:CSV代表Comma Separated Values,奇怪的是,在CSV文件中,值经常用分号分隔,事实上,(我认为)如果您使用,Excel将无法识别列逗号,但如果你使用分号它会。 修改正如评论中所指出的,这可能取决于区域设置,如果在您所在的国家/地区,小数点通常是逗号(例如欧洲大部分地区)使用;,如果通常是点使用,作为分隔符。

所以,回到你的问题:你没有分离你的价值观,而是使用它(注意分号):

ClassA.write("Name: "+str(user) + '; ' + "Score: "+str(score)+"/10" + '\n')

我不建议您编写Name:Score:前缀,我会选择标题行(Name; Score; Max Score),如下所示:

ClassA.write("{0}; {1}; {2}\n".format(user, score, max_score))

另请参阅:str.format