Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 试图解决谷歌代码的旧问题以供练习_Python - Fatal编程技术网

Python 试图解决谷歌代码的旧问题以供练习

Python 试图解决谷歌代码的旧问题以供练习,python,Python,我正在研究一些老的Google代码阻塞问题,作为python的实践,因为我们学校不使用这种语言。是我正在研究的当前问题,它应该只是按单词颠倒字符串的顺序 这是我的密码: import sys f = open("B-small-practice.in", 'r') T = int(f.readline().strip()) array = [] for i in range(T): array.append(f.readline().strip().split(' '))

我正在研究一些老的Google代码阻塞问题,作为python的实践,因为我们学校不使用这种语言。是我正在研究的当前问题,它应该只是按单词颠倒字符串的顺序

这是我的密码:

import sys


f = open("B-small-practice.in", 'r')


T = int(f.readline().strip())


array = []

for i in range(T):
    array.append(f.readline().strip().split(' '))


for ar in array:
    if len(ar) > 1:
        count = len(ar) - 1
        while count > -1:
            print ar[count]
            count -= 1
问题在于,不是打印,而是:

test a is this
我的代码打印:

test
a
is
this

请让我知道如何格式化我的循环,使其在一行中打印所有内容。另外,在从.txt文件读取输入并对其进行操作方面,我也有一些学习经验,因此,如果您对解决此类问题的不同方法有任何建议,我将不胜感激

print
默认情况下会添加换行符。如果你不想要这种行为,在结尾加一个逗号

    while count > -1:
        print ar[count],
        count -= 1
请注意,反转列表的方法比您的方法简单得多,只需为一个片段指定-1步。(和
将它连接成一个字符串)


有多种方法可以改变输出格式。以下是一些:


一种方法是:

这使得
print
在末尾输出一个空格,而不是换行符


另一种方法是建立字符串,然后在循环后打印:

reversed_words = ''
for ar in array:
    if len(ar) > 1:
        count = len(ar) - 1
        while count > -1:
            reversed_words += ar[count] + ' '
            count -= 1
print reversed_words

第三种方法是重新思考您的方法,并使用一些有用的内置Python函数和特性来简化您的解决方案:

for ar in array:
    print ' '.join(ar[::-1])
(见和)


最后,您询问了如何读取文件。您已经做得很好了,但是在阅读完之后,您忘记了使用
f.close()
。更好的是,使用Python 2.5+,:

这将在带
块的
之后自动关闭文件描述符
f
,即使在读取文件时出错。

相关:
T = int(raw_input())

for t in range(T):
    print "Case #%d:" % (t+1),
    print ' '.join([w for w in raw_input().split(' ')][::-1])
for ar in array:
    print ' '.join(ar[::-1])
array = list()
with open(filename) as f:
    T = int(f.readline().strip())
    for i in range(T):
        array.append(f.readline().strip().split(' '))

# The rest of your code here
T = int(raw_input())

for t in range(T):
    print "Case #%d:" % (t+1),
    print ' '.join([w for w in raw_input().split(' ')][::-1])