首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >write()使用两个位置参数,但给出了3个

write()使用两个位置参数,但给出了3个
EN

Stack Overflow用户
提问于 2014-07-16 09:01:58
回答 3查看 10.2K关注 0票数 0

当我使用print()函数在屏幕上打印结果时,我的程序正确地产生了所需的结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for k in main_dic.keys():
    s = 0
    print ('stem:', k)
    print ('word forms and frequencies:')
    for w in main_dic[k]:
        print ('%-10s ==> %10d' % (w,word_forms[w]))
        s += word_forms[w]
    print ('stem total frequency:', s)

    print ('------------------------------')

不过,我想用确切的格式将结果写入文本文件。我试过用这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
file = codecs.open('result.txt','a','utf-8')
for k in main_dic.keys():
    file.write('stem:', k)
    file.write('\n')
    file.write('word forms and frequencies:\n')
    for w in main_dic[k]:
        file.write('%-10s ==> %10d' % (w,word_forms[w]))
        file.write('\n')
        s += word_forms[w]
    file.write('stem total frequency:', s)
    file.write('\n')
    file.write('------------------------------\n')
file.close()

但我知道错误是:

TypeError: write()接受两个位置参数,但给出了3个

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-16 09:05:26

print()采用单独的参数,而file.write()没有。您可以重用print()来写入您的文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with open('result.txt', 'a', encoding='utf-8') as outf:
    for k in main_dic:
        s = 0
        print('stem:', k, file=outf)
        print('word forms and frequencies:', file=outf)
        for w in main_dic[k]:
            print('%-10s ==> %10d' % (w,word_forms[w]), file=outf)
            s += word_forms[w]
        print ('stem total frequency:', s, file=outf)
        print ('------------------------------')

我还使用了内置的open(),没有必要在Python3中使用更老的、功能更低的codecs.open(),您也不需要调用.keys(),直接遍历字典也是有效的。

票数 3
EN

Stack Overflow用户

发布于 2014-07-16 09:05:33

file.write只需要一个字符串参数时,它会被赋予多个参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
file.write('stem total frequency:', s)
                                  ^

'stem total frequency:', s作为两个不同的参数处理时,会引发错误。这可以通过串联来解决。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
file.write('stem total frequency: '+str(s))
                                  ^
票数 2
EN

Stack Overflow用户

发布于 2014-07-16 09:05:11

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
file.write('stem:', k)

您在这一行中向write提供了两个参数,而它只需要一个参数。相反,print乐于接受尽可能多的论点。尝试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
file.write('stem: ' + str(k))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24786613

复制
相关文章
for和foreach循环语句
今天我们来讲解一下 for跟foreach 一、for 是一个循环语句 for break continue 从 i=0开始,到i=10结束,每次循环 for (i = 1; i <= 10; echo $i; } for (i = 10; i >0; echo $i; } //for可以嵌套 for (i = 1; i <= 10; for (j = 1; j <= 10; continue; echo i.j; } if($i==5) bre
老雷PHP全栈开发
2020/07/02
2.9K0
js forEach和 map 区别
forEach() 方法按升序为数组中含有效值的每一项执行一次 callbackFn 函数,那些已删除或者未初始化的项将被跳过(例如在稀疏数组上,见下方的示例)。
蓓蕾心晴
2022/12/06
4.6K0
迭代器和foreach原理。
迭代器是一种设计模式,它的定义为:提供一种方法访问一个容器对象中的各个元素,而又不需暴露该容器对象的内部细节。迭代器模式,就是为容器而生。
崔笑颜
2020/07/23
8410
javascript 数组遍历forEach和for用法
前言:前端开发过程中,常用到数组的遍历,我们通常采用的方式有forEach和for。下面介绍这两种方式的使用方法
侠客冷展堂
2022/01/19
1.1K0
javascript 数组遍历forEach和for用法
PHP中遍历XML之SimpleXML
  简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。XML是当今用于传输数据的两大工具之一,另外一个是json。
那一叶随风
2018/08/22
2.3K1
PHP中遍历XML之SimpleXML
.net Parallel.Foreach的Continue和Break和Return;
var parallelOption = new ParallelOptions() { MaxDegreeOfParallelism = 6 };
全栈程序员站长
2022/09/09
8840
c# 中for和foreach循环的区别
    (2)效率比for要高(C#是强类型检查,for循环对于数组访问的时候,要对索引的有效值进行检查)
vv彭
2020/10/27
4.9K0
c# 中for和foreach循环的区别
Java list foreach_java的foreach
从源码中可以看到:forEach()方法是Iterable<T>接口中的一个方法。Java容器中,所有的Collection子类(List、Set)会实现Iteratable接口以实现foreach功能。forEach()方法里面有个Consumer类型,它是Java8新增的一个消费型函数式接口,其中的accept(T t)方法代表了接受一个输入参数并且无返回的操作。
全栈程序员站长
2022/11/09
1.6K0
C# 多线程 Parallel.ForEach 和 ForEach 效率问题研究及理解
最近要做一个大数据dataTable循环操作,开始发现 运用foreach,进行大数据循环,并做了一些逻辑处理。在循环中耗费的时间过长。后来换成使用Parallel.ForEach来进行循环。 一开始认为, 数据比较大时,Parallel.ForEach肯定比 ForEach效率高,后来发现,其实并不是这样。
全栈程序员站长
2022/09/09
1.2K0
C# 多线程 Parallel.ForEach 和 ForEach 效率问题研究及理解
java退出foreach循环_forEach方法如何跳出循环[通俗易懂]
3.1 foreach()不能使用break和continue这两个关键字,foreach和普通的for循环是不同的,它不是普通的遍历,实现continue的效果可以直接使用return。
全栈程序员站长
2022/09/01
15K0
mysql foreach
把集合都封装进map中,比如这里的list1,list2,都加入到集合中,key 为list1,list2,然后按照如下方式取出,collection 属性中为放入map时的key
IT云清
2019/01/22
2.7K0
forEach、for...in 、 for...of
写法简单了许多,但是有缺点:不能中断循环(使用break语句或使用return语句)。
用户3258338
2020/06/02
1.3K0
forEach、for...in 、 for...of
foreach rf
library(randomForest) library(foreach) library(cvTools) set.seed(1234) K =10 R = 3 cv <- cvFolds(NROW(iris),K=K,R=R) grid <- expand.grid(ntree=c(10,100,200),mtry=c(3,4)) result <- foreach(g=1:NROW(grid),.combine = rbind) %do% { foreach(r=1:R,.combine = r
用户1359560
2018/08/27
1.1K0
PHP解析Xml:SimpleXML类学习笔记
SimpleXML 是 PHP 5 中的新特性。SimpleXML 扩展提供了一种获取 XML 元素的名称和文本的简单方式。与 DOM 或 Expat 解析器相比,SimpleXML 仅仅用几行代码就可以从 XML 元素中读取文本数据。SimpleXML 可把 XML 文档(或 XML 字符串)转换为对像;
房东的狗丶
2023/02/17
9730
Parallel.For循环 和 Parallel.ForEach循环
但是,有的时候又不是这样。如果迭代之间彼此独立,并且程序运行在多核处理器的机器上,如果能将不同的迭代放在不同的处理器上并行处理的话,将会受益匪浅。Parallel.For 和 Parallel.ForEach结构就是这样做的。
全栈程序员站长
2022/09/09
2.7K0
Parallel.For循环 和 Parallel.ForEach循环
Java 中for循环和foreach循环哪个更快?
在Java编程中,循环结构是程序员常用的控制流程,而for循环和foreach循环是其中比较常见的两种形式。关于它们哪一个更快的讨论一直存在。本文旨在探究Java中的for循环和foreach循环的性能差异,并帮助读者更好地选择适合自身需求的循环方式。通过详细比较它们的遍历效率、数据结构适用性和编译器优化等因素,我们将为大家揭示它们的差异和适用场景,以便您能够做出更明智的编程决策。
葡萄城控件
2023/10/16
6300
Java 中for循环和foreach循环哪个更快?
JavaScript编程趋势:用map和filter替换forEach
当你需要拷贝一个数组的全部或者部分到一个新数组的时候,优先使用map和filter而不是forEach。
一墨编程学习
2018/10/22
1.7K0
点击加载更多

相似问题

从.emacs设置Emacs 24颜色主题

28

更改颜色主题Emacs 24 -顺序事项

511

Emacs中颜色主题之间的切换(< v.24)

22

Emacs 24客户端未正确加载颜色主题

10

使用emacs 24循环定制主题

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文