在范围内循环用户输入

时间:2016-10-29 16:04:08

标签: python string loops range

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

我的范围从位置(或索引)3读取3个字符-m只是控制台的switch所以它知道它是一条短信,所以我想忽略-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 Hello world!

输出应为:

Hel
lo_ (_ is a whitespace)
wor
ld!

3 个答案:

答案 0 :(得分:-1)

您可以将切片<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-4.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" type="text/css" href="css/style.css"/> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" /> </head> <body> <div> <div class="content"> <form action="#" th:action="@{/login}" th:object="${user}" method="post"> <div class="panel panel-default"> <br /> <h1 class="panel-title header-tab"> Login or <a href="/signup.html">Sign Up Here</a> </h1> <br /> <div class="panel-body"> <div class="form-group"> <label for="inputEmail" class="control-label col-xs-5">Username or Email</label> <div class="col-xs-7"> <input type="text" class="form-control" id="inputUsername" th:field="*{userName}" placeholder="Username or Email" /> </div> </div> <br/><br/> <div class="form-group"> <label for="inputPassword" class="control-label col-xs-5">Password</label> <div class="col-xs-7"> <input type="password" class="form-control" id="inputPassword" th:field="*{password}" placeholder="Password" /> </div> </div> <div class="form-group"> <div class="col-xs-offset-5 col-xs-10"> <div class="checkbox"> <label><input type="checkbox" />Remember Me</label> </div> </div> </div> <div class="form-group"> <div class="col-xs-offset-5 col-xs-7 btn-lg"> <input type="submit" value="Sign In" class="btn btn-primary btn-block"/> </div> </div> </div> </div> </form> </div> </div> </body> </html>[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!

识别-m
startswith()

答案 1 :(得分:-1)

看一下argparse模块(最后引用),用于从控制台解析输入参数。 以下是您可以完全使用的代码段,而不必担心剪切输入参数switch

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 https://docs.python.org/dev/library/argparse.html

的文档链接

答案 2 :(得分:-1)

message = '-m Hello world!'
if message.startswith('-m '):
    message = message[3:]
while message!= '':
    print message[:3]
    message = message[3:]

赫尔

WOR
LD!

相关问题