Python 循环范围内的用户输入
我需要在一定范围内循环用户输入(包含字母、数字和其他常规字符(包括空格)的常规文本消息),例如: 我的范围是从位置(或索引)3读取3个字符: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.
-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:]