python中如何输入数据_关于输入:如何处理原始数据(在python中)?

这篇博客讨论了在Python中如何处理输入数据,包括使用`raw_input()`(Python 2)或`input()`(Python 3)从stdin读取数据,以及通过文件处理和迭代方法对数据进行操作。内容涵盖了如何读取命令行参数,以及在不同场景下使用`sys.stdin`和`sys.stdout`。
摘要由CSDN通过智能技术生成

***我并没有很好地解释这一点,所以希望这次编辑更有意义:基本上,我必须编写适用于大量测试用例的代码,下面的输入只是一个例子。所以我不能手动将输入输入输入到我的函数中

假设我有以下输入:

0

4

0,2,2,3

我需要生成某种输出,比如

1

我该怎么做?

我的意思是,如果我通常有问题,我可以定义一个函数,然后手动输入值,但是我如何读取原始数据(对数据执行一系列函数/操作)?

(对于分配,我应该接收stdin->上的输入,并在stdout上打印正确的输出

print 1-)你对输入与预期输出的关系一无所知。

python 3:print(1)。问题解决了!

在这种情况下,我们可以很容易地使用raw_input():

text_input = raw_input("Enter text:")

如果您使用的是python 3,那么可以使用input(),方法相同:

text_input = input("Enter text:")

或者,如果您喜欢使用命令行参数运行程序,请使用sys.argv。

import sys

for i in sys.argv:

if i >= 1:

command = i

#do something with your command

以下是一本很好的书:http://www.linuxtopia.org/online_books/programming_books/python_programming/python_ch06s03.html

编辑

好的,只需理解这里真正的问题。

简单的方法:将数据存储在文本文件中,然后用程序读取数据。

f = open("path/to/command.txt", 'r')

commmands = f.read()

这样您就可以快速处理数据。处理后,您可以将其写入另一个文件:

output_file = open("path/to/output.txt", 'w')

output_file.write(result)

至于如何处理命令文件,您可以自己构造它,并使用str.split()方法处理它,然后循环使用它。

提示:不要忘记关闭文件,建议使用with语句:

with open('file.txt', 'w') as f:

#do things

f.write(result)

有关文件处理的详细信息:

http://docs.python.org/3.3/tutorial/inputout.html读写文件

希望有帮助!

stdin只是一个由sys.stdin表示的文件(或类似于文件的对象);您可以将其视为普通文件并从中读取数据。您甚至可以对其进行迭代;例如:

sum = 0

for line in sys.stdin:

item = int(line.strip())

sum += item

print sum

或者只是

entire_raw_data = sys.stdin.read()

lines = entire_raw_data.split()

... # do something with lines

另外,您也可以迭代调用raw_input(),它返回发送到stdin的连续行,或者甚至将其转换为迭代器:

for line in iter(raw_input, ''):  # will iterate until an empty line

# so something with line

相当于:

while True:

line = raw_input()

if not line:

break

# so something with line

另请参见:https://en.wikibooks.org/wiki/python_programming/input_and_output

是的,我的问题表达得很糟糕,但这主要是我在问的,我怎样才能"读取"python和sys.stdin中的数据呢?

通常你想做:

the_input = input(prompt)        # Python 3.x

the_input = raw_input(prompt)        # Python 2.x

然后:

print(output)        # Python 3.x

print output        # Python 2.x

但是,您也可以(但可能不想)这样做:

import sys

the_input = sys.stdin.readline()

bytes_written = sys.stdout.write(output)

这或多或少是print和input在幕后所做的。sys.stdin、sys.stdout(和sys.stderr的工作原理与文件一样——你可以读写它们等等。在python术语中,它们被称为类似文件的对象。

据我所知,你想要这样的东西:

def f(x, y, z):

return 2*x + y + z + 1

a = int(input("Enter a number:"))        # presuming Python 3.x

b = int(input("Enter another number:"))

c = int(input("Enter the final number:"))

print(f(a, b, c))

如果运行,会出现如下情况:

>>> Enter a number: 7

>>> Enter another number: 8

>>> Enter the final number: 9

>>> 32

使用这个原始输入(),它是基本的python输入函数。

myInput = raw_input()

有关原始输入的更多信息,请参阅:

http://docs.python.org/2/library/functions.html原始输入

您可以使用函数raw_input()来读取标准输入,然后根据需要进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值