我是错误地使用了Python循环,还是只是错过了一些东西?

时间:2018-12-28 05:05:51

标签: python

我目前是Python的初学者。这是我的问题:首先,程序要求您输入一个数字。

例如,如果我放1,我得到1。如果我放2,我得到12。如果我放3,我得到123。如果我放4,我得到1234。这就是这个问题的要点。但是,我开发了一个数学方程式,如果将它放在循环中会起作用:

if __name__ == '__main__': # ignore this part

    n = int(input())
    s = 1
    while s > n:
        z = s*10**(n-s)
        s += 1
        answer = z
        if s == n:
            print(z)

当我尝试运行此代码时,即使最后添加了print,我也一无所获。我在这里做错了什么?对于回答问题的任何人,请介绍您可能会帮助我的任何概念;我想学习。

请赐教。不能完全给我答案...但是请尝试引导我朝正确的方向发展。如果我在代码中犯了一个错误(我100%确信自己做错了),请向我解释出了什么问题。

4 个答案:

答案 0 :(得分:1)

这是因为while循环条件向后。它永远不会进入循环,因为s不大于n。应该是<script src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.0/paper-full.min.js"></script> <canvas id="canvas" width="75" height="75" resize></canvas> <table><tr><td><b>Our new shape of both paths intersection in separate SVG:</b></td></tr> <tr><td> <svg width="75" height="75" viewBox="0 0 75 75"> <path fill="rgba(0,0,255,.5)" d=""/> </svg> </td></tr></table> <div id="output"></div>

答案 1 :(得分:1)

这是解决方案:

使用字符串

a = int(input())

# taking the input from the user
res=''
# using empty string easy to append 
for i in range(1,a+1):
     # taking the range from 1 (as user haven't said he want 0, go up to 
     # a+1 number (because range function work inclusively and  will iterate over 
     # a-1 number, but we also need a in final output ))
     res+=str(i)
     # ^ appending the value of I to the string variable so for watch iteration 
     # number come append to it.
     # Example :  1-> 12-> 123-> 1234-> 12345-> 123456-> 1234567-> 12345678-> 123456789
     # so after each iteration number added to it ,in example i have taken a=9

sol = int(res) #converting the res value(string) to int value (as we desire)

print(sol)

在一行中,解决方案是

a=int(input())
res=int(''.join([str(i) for i in range(1,a+1)]))

答案 2 :(得分:1)

一样,使用for使用range()循环
for i in range(1, n+1):

其中n是输入,以便获得1n之间的数字。

现在在每次迭代期间使用print()打印i的值。

print()默认情况下将在末尾添加换行符。为避免这种情况,请使用end这样的参数

print(var, end='')

一旦您熟悉了这一点,您也可以使用list comprehensionjoin()通过单个语句(如

)获取输出。
print( ''.join([str(i) for i in range(1, n+1)]) )

像使用input()int()一样进行输入,尽管在输入不是整数的情况下您可能希望包括异常处理。

请参见Error handling using integers as input

答案 3 :(得分:0)

尝试一下

<div id="wrapper">
<object class="headerimage" data="{{ url_for('static', filename='images/flackH.svg') }}"></object>
  <div class="chatroom">
    <div id="contain">
      <div id="channels">
        <div class="list-group">
          <button class="list-group-item list-group-item-action active">General</button>
          {% for channel in channels %}
          <button class="list-group-item list-group-item-action">{{ channel }}</button>
          {% endfor %}
        </div>
        <div class="create-channel">
          <form class="channel-create">
              <div class="form-group">
                <input type="text" id="c" class="form-control" autocomplete="off" placeholder="Create a channel"></div>
          </form>
        </div>
      </div>
      <div id="chat">
        <ul id="messages">
          {% for dict in messages %}
            <li>{{dict.time}} - {{ dict.username }} : {{dict.message}}</li>
          {% endfor %}
        </ul>
        <div class="input">
          <form id="send-message">
              <div class="form-group">
                <input type="text" id="m" class="form-control" autofocus="true" autocomplete="off" placeholder="Send a message"></div>
          </form>
        </div>
      </div>
    </div>
  </div>
</div>

这有效。 (简单和简短)