所以我创建了一个在命令提示符下运行的程序,在我的程序中,一个数组必须通过for循环迭代:
counter=0
for i in range(0,rows):
for j in range(0,cols):
array[i,j]=3 #just an arbitrary number
counter=Time_Function(i,rows,counter,0)
我需要像这样在cmd中计算数组:
>>0...10...20...30...40...50...60...70...80...90...100
我让它适用于一个行= 2018,cols = 486的数组,但是当我输入一个行= 2023的不同数组时,cols = 486它给了我这个:
>>0....10...20...30...40...50...60...70...80...90...100
我真的想摆脱0
和10
之间那段讨厌的额外时间!我知道这可能是因为第二个数组有更多行,但我似乎无法使用模数运算符的当前知识来修复它:(这是我创建的Time_Function
:
def Time_Function(i,rows,counter,start):
if i==start or i% round(rows/10) ==0:
sys.stdout.write(str(counter))
counter=counter+10
if i% round((rows/10)/3) ==0: #check update, I tried the condition i!=start
sys.stdout.write('.')
return counter
(注意:我知道这可能看起来像是一个非常小的问题,但额外的时期看起来如此严重,所以我需要摆脱它)
更新:我尝试了建议的代码(将i!=start
条件置于第二个if statement
),它给了我这个:
>> 0..10...20...30...40...50...60...70...80...90...100.
>> 0...10...20...30...40...50...60...70...80...90...100
答案 0 :(得分:1)
import sys
def Time_Function(i,rows,counter,start,var):
if i==start or i% round(rows/10) ==0 and counter <=100:
sys.stdout.write(str(counter))
counter=counter+10
var=0
if i% round((rows/10)/3) ==0 and counter <=100 and var<3:
sys.stdout.write('.')
var=var+1
return [counter,var]
def Project(array,rows,cols):
counter=var=0
for i in range(0,rows):
for j in range(0,cols):
array=3 #just an arbitrary number
[counter,var]=Time_Function(i,rows,counter,0,var)
array1=1
array2=2
Project(array1,2018,486)
print "\n"
Project(array2,2023,486)
答案 1 :(得分:0)
你的函数中的问题在于第二个if语句。模数为0(您当前的起始编号)也会生成一个您不期望的点。
因此,检查我是不是您的起始编号或不是零应该使您的功能正确。