Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.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_String_Loops_Range - Fatal编程技术网

Python 循环范围内的用户输入

Python 循环范围内的用户输入,python,string,loops,range,Python,String,Loops,Range,我需要在一定范围内循环用户输入(包含字母、数字和其他常规字符(包括空格)的常规文本消息),例如: 我的范围是从位置(或索引)3读取3个字符: -m只是控制台的一个开关,因此它知道这是一条文本消息,所以我想忽略后面的-m+空格,并开始考虑字符串及其大小(从H开始)。因此字符串大小将为12(5+1+6) 我的尝试: message = "-m Hello World!" fragSize = 3 fragCount =0 start = 0 end = fragSize if message.

我需要在一定范围内循环用户输入(包含字母、数字和其他常规字符(包括空格)的常规文本消息),例如:

我的范围是从位置(或索引)3读取3个字符:
-m
只是控制台的一个
开关,因此它知道这是一条文本消息,所以我想忽略后面的-m+空格,并开始考虑字符串及其大小(从H开始)。因此字符串大小将为12(5+1+6)

我的尝试:

message = "-m Hello World!"

fragSize = 3
fragCount =0
start = 0
end = fragSize


if message.startswith('-m '):
    message = message[3:] #separates -m from the message

for index in range(1, len(message)):
    print('index[start:end]')
    start = end
    end += fragSize
消息:

-m你好,世界

输出应为:

Hel
lo_ (_ is a whitespace)
wor
ld!

您可以使用slice
[i:i+3]
for
循环来创建它

text = 'Hello world!'

data = [text[i:i+3] for i in range(0, len(text), 3)]

print(data)

['Hel', 'lo ', 'wor', 'ld!']
您可以使用
'\n'.join(data)
将其打印为

Hel
lo_ (_ is a whitespace)
wor
ld!
您可以使用
startswith()识别
-m


看一看argparse模块(最后的引用),它用于从控制台解析输入参数。 以下是您可以完全使用的代码片段,无需担心截断输入参数
开关

import argparse

parser = argparse.ArgumentParser(description="Process message")
parser.add_argument('-m', dest='msg', type=str, help="Enter a message", required=True)
args = parser.parse_args()
x = args.msg

for p in range(0,len(x),3):
     snip = x[p:p+3]
     snip = snip.replace(' ', '_')
     print(snip)
您可以使用这些命令来运行程序 cd到保存文件的目录

这将显示帮助文本

python filename.py -h   
这将运行程序

python filename.py -m "Hello World!"
指向
argparse

Hel
lo
wor

ld

你试过什么?请出示您的代码并解释您遇到的困难。我今天看到了类似的问题,但我能找到它。在
中为i
循环使用类似
文本[i:i+3]
的内容。为什么要向下投票?请explain@febeks17,您的尝试在哪里?我的尝试是错误的,因为我尝试对字符串中的字母使用
,正如许多教程所说,这太简单了,教程没有提供更复杂的示例,我也没有在这里找到合适的示例。这就是为什么没有尝试,所以请删除downvote。谢谢,如果我想在for循环中循环更多的东西,我应该如何重写它?因为我发送的套接字是使用这个for循环划分成片段的,但是在划分之后,我需要发送片段,然后再发送另一个片段,直到发送完整个消息。谢谢。这就是我要找的!人是愚蠢的@费贝
python filename.py -m "Hello World!"
message = '-m Hello world!'
if message.startswith('-m '):
    message = message[3:]
while message!= '':
    print message[:3]
    message = message[3:]