我正试图解决这个问题。我正在创建一个将分数存储在电子表格中的程序,但是当它执行时,它不会在不同的单元格中写入分数和名称。我已经尝试添加列字符串/行字符串,但总是收到错误,一些指南和帮助将不胜感激。
到目前为止,这就是我所做的:
!(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()
由于
答案 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