Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中的fileoutput.writelines()中使用if-else_Python_Python 3.x - Fatal编程技术网

在python中的fileoutput.writelines()中使用if-else

在python中的fileoutput.writelines()中使用if-else,python,python-3.x,Python,Python 3.x,我想在使用writelines()时使用if和else命令,下面是我的代码 mylist=[7,4,3,6,7,8] fileoutput=open('data.txt','w') fileoutput.writelines("%s\t" % mylist[place] for place in range(6) if place !=5 else "%s\n" % mylist[place] ) fileoutput.close() 但是出现了一个Sy

我想在使用writelines()时使用if和else命令,下面是我的代码

mylist=[7,4,3,6,7,8]
fileoutput=open('data.txt','w')
fileoutput.writelines("%s\t" % mylist[place] for place in range(6) if place !=5 else "%s\n" % mylist[place] )
fileoutput.close()
但是出现了一个SyntaxError(SyntaxError:无效语法)。 谢谢你的帮助

  • 第一个问题是,调用变量
    list
    ,就像内置类型
    list
  • 调用
    fileoutput.open()
    ,但
    fileoutput
    不存在。相反,您要做的是
    fileoutput=open('data.txt','w')
  • 执行
    if-else
    语句的顺序是错误的。它应该是
    %s\t”%mylist[place],如果是place=5其他“%s\n”%mylist[place]用于范围(6)中的位置
  • 因此,最终代码应该是:

    mylist=[7,4,3,6,7,8]
    fileoutput = open('data.txt','w')
    fileoutput.writelines("%s\t" % mylist[place] if place !=5 else "%s\n" % mylist[place] for place in range(6))
    fileoutput.close()
    
    data.txt
    中的输出为:

    7   4   3   6   7   8
    

    结尾有一个换行符。

    你不应该调用你的变量列表,因为这也是内置类型
    list
    @LuisAFK是的,你是对的,我把它改为“mylist”,但我仍然有前面的问题…写行中的表达式(?)应该做什么?它看起来像生成器表达式(for和if但不是else)和条件表达式(if和else但不是for)之间的混搭。如果我删除if-else语句并在fileoutput.close()之前的行中写入fileoutput.writelines('\n'),则在结尾处有一个“制表符”时将写入这些行,我不想要“制表符”,所以你实际上不想写行,你想写由制表符连接的值,末尾有一个换行符?