Crossin的编程教室

标题: python写入数据至文本中 [打印本页]

作者: 1861674    时间: 2017-9-14 16:25
标题: python写入数据至文本中
from random import randint    #取随机数
num = randint(1,10)
print 'who am i'
tim=0
b = False
while b == False:
    tim +=1
    a=input()
    if a > num:
        print '%d you big' %a
    if a < num:
        print 'you small'
    if a == num:
       b=True
       print 'yes'
output=file('result.txt','a')
output.write(tim)
output.close()

这些语句执行到倒数第二步报错
from random import randint    #取随机数
num = randint(1,10)
print 'who am i'
tim=0
b = False
while b == False:
    tim +=1
    a=input()
    if a > num:
        print '%d you big' %a
    if a < num:
        print 'you small'
    if a == num:
       b=True
       print 'yes'
result=('%d')%tim
output=file('result.txt','a')
output.write(result)
output.close()
这样就执行成功,请问是为什么

作者: oak    时间: 2017-9-14 16:40
写入的必须是字符型,tim是数值型,需要转换
作者: oak    时间: 2017-9-14 16:40
另外,建议你提问的时候贴出报错信息
作者: 1861674    时间: 2017-9-14 17:02
oak 发表于 2017-9-14 16:40
写入的必须是字符型,tim是数值型,需要转换

成功的写入进去的也是数值型吧
作者: 1861674    时间: 2017-9-14 17:04
oak 发表于 2017-9-14 16:40
另外,建议你提问的时候贴出报错信息

Traceback (most recent call last):
  File "C:\Users\hes\Desktop\ss.py", line 39, in <module>
    output.write(tim)
TypeError: expected a character buffer object
>>>
这是报错信息
作者: crossin先生    时间: 2017-9-14 19:21
1861674 发表于 2017-9-14 17:04
Traceback (most recent call last):
  File "C:%users\hes\Desktop\ss.py", line 39, in
    output.wr ...

print(result)
print(type(result))
看看你的result是什么值什么类型




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5