我正在尝试使用while语句打印1到100。 嗯,这很容易
"select salution||' '||firstname||' '||lastname as custName, "
+ "city as custCity, state as custState, zip as custZip, "
+ "dob as custDob, idhardtoken as custAdarNo from mstuser"
但问题是如何连续放1到10,连续放11到20,最后连续放91到100。 你能说出来吗?
答案 0 :(得分:3)
您可以使用zip
和iter
:
lst = [i for i in zip(*[iter(range(1,101))]*10)]
将最后一个数字更改为您想要的块的大小;在这种情况下,它是10
。
输出:
>>> lst
[(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), (11, 12, 13, 14, 15, 16, 17, 18, 19, 20), (21, 22, 23, 24, 25, 26, 27, 28, 29, 30), (31, 32, 33, 34, 35, 36, 37, 38, 39, 40), (41, 42, 43, 44, 45, 46, 47, 48, 49, 50), (51, 52, 53, 54, 55, 56, 57, 58, 59, 60), (61, 62, 63, 64, 65, 66, 67, 68, 69, 70), (71, 72, 73, 74, 75, 76, 77, 78, 79, 80), (81, 82, 83, 84, 85, 86, 87, 88, 89, 90), (91, 92, 93, 94, 95, 96, 97, 98, 99, 100)]
然后打印列表中的每个数字:
for i in lst:
for j in i:
print(j, end=" ")
print()
输出:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
总的来说,你有:
lst = [i for i in zip(*[iter(range(1,101))]*10)]
for i in lst:
for j in i:
print(j, end=" ")
print()
修改强>:
有人提到这只适用于python 3.只需将end=" "
更改为,
即可在python 2中完成:
lst = [i for i in zip(*[iter(range(1,101))]*10)]
for i in lst:
for j in i:
print j,
print
编辑2:
使用while
循环执行此操作:
counter = 1
n = 100
while counter < n+1:
if counter % 10 == 0:
print(counter)
else:
print(counter, end=" ") #Change this line to print counter, for python version 2
counter += 1
答案 1 :(得分:2)
您非常接近,您错过了{
"require": {
"doctrine/orm": "*"
},
"autoload": {
"psr-4":
{
"Preis\\": "EntitiesPreisAnalyse/src/",
"Anlagen\\": "EntitiesAnlagenAnalyse/src/"
}
}
}
语句,并将print
语句的if
更改为end
,默认为" "
。
print(* objects,sep ='',end ='\ n',file = sys.stdout,flush = False)
'\n'
注意:的
python中的N = 20
I = 1
while I <= N:
if I % 10 > 0:
print(I, end = " ")
else:
print(I)
I += 1
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
比执行I += 1
更简单。也适用于乘法。
Python 2.x
前面的代码适用于Python 3.x,如@idjaw的评论中所述。对于python 2.x,要将I=I+1
用作函数而不是语句(即print
),需要在脚本开头导入后续内容。
print()
答案 2 :(得分:1)
您的代码是错误的。我不是。缩进也是假的
def print_numbers(min_nu, max_nu, step):
import sys
if sys.version_info > (3,0):
my_xrange = range
else:
my_xrange = xrange
for i in my_xrange(min_nu, max_nu, step):
buff = [str(j) for j in my_xrange(i, i + step)]
print(" ".join(buff))
print_numbers(1, 100, 10)
答案 3 :(得分:1)
您可以使用此功能:
def solution_01(n):
index = 0
row = ''
while index <=n:
index+=1
row += ' '+str(index)
if index%10 == 0:
print row
row = ''
solution_01(100)
给出输出:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
答案 4 :(得分:0)
[[y for y in range(10 * x + 1, 10 + 10 * x + 1)] for x in range(10)]
答案 5 :(得分:0)
双嵌套for
循环应该为你做的诀窍:
>>> for i in range(1,101,10):
for j in range(i, i+10):
print(j, end=' ')
print()
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
或者仅使用while
循环,如果这是您的要求:
>>> i = j = 1
>>>
>>> while i < 101:
while j < i+10:
print(j, end=' ')
j += 1
i += 10
print()
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
答案 6 :(得分:0)
for i in range(100,-1,-1):
if i%10==0 and i!=100:
print(i)
else:
print(i,end=", ")
输出:
100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90
89、88、87、86、85、84、83、82、81、80
79、78、77、76、75、74、73、72、71、70
69、68、67、66、65、64、63、62、61、60
59、58、57、56、55、54、53、52、51、50
49、48、47、46、45、44、43、42、41、40
39、38、37、36、35、34、33、32、31、30
29、28、27、26、25、24、23、22、21、20
19、18、17、16、15、14、13、12、11、10
9, 8, 7, 6, 5, 4, 3, 2, 1, 0