我正在寻找一种在下面的输出中打印数字in a range (1100,1148)
的方法:
1100 1104(上一个+4)1109(上一个+5)1113(+4 1117(+4)1122(+5) 前一个)1126(前一个+4)1130(前一个+4) 1135(上一个+5)1139(上一个+4)1143(上一个+4) 前一个)1148(前一个+5)
我尝试使用for循环和计数器(以检查+ 5模式),但似乎无法解决问题。
text_file = open(r"C:\DOUBLE\cron_file.txt","w")
count = 0
for i in range(1100,1148):
if count != 3:
text_file.write(" elndchtNI %d\n" %i)
i+4
count+1
else:
i+5
text_file.write("elndchtNI %d \n" %i)
text_file.close()
所以我想要下面的输出
elndchtNI 1100 elndchtNI 1104 elndchtNI 1109 elndchtNI 1113 elndchtNI 1117 elndchtNI 1122 elndchtNI 1126 elndchtNI 1130 elndchtNI 1135 elndchtNI 1139 elndchtNI 1143 elndchtNI 1148
但是我得到以下内容:
elndchtNI 1048 elndchtNI 1049 elndchtNI 1050 elndchtNI 1051 elndchtNI 1052第1052章 elndchtNI 1057 elndchtNI 1058 elndchtNI 1059 elndchtNI 1060 elndchtNI 1061第1061章 elndchtNI 1066 elndchtNI 1067 elndchtNI 1068 elndchtNI 1069 elndchtNI 第1070章你是我的女人1010是你的女人 elndchtNI 1075 elndchtNI 1076 elndchtNI 1077 elndchtNI 1078 elndchtNI 1079 elndchtNI 1080 elndchtNI 1081 elndchtNI 1082 elndchtNI 1083 NI 1084 ELNITCHNI 1085 ELNDCHNI NI 1086 ELNDCHNI NI 1087 ELNDCHNI NI 第1088章真相1089 elndchtNI 1093 elndchtNI 1094 elndchtNI 1095
答案 0 :(得分:0)
def generator(a, b):
count=1
number = a
while number <= b:
yield number
if count<= 1:
number+=4
count+=1
else:
number+=5
count=0
text_file = open(r"cron_file.txt","w")
res = ''
for i in generator(1100, 1148):
res += 'elndchtNI ' + str(i) + ' '
text_file.write(res)
text_file.close()
您好,这是一个带有生成器的解决方案,该生成器返回:
elndchtNI 1100 elndchtNI 1104 elndchtNI 1109 elndchtNI 1113 elndchtNI 1117 elndchtNI 1122 elndchtNI 1126 elndchtNI 1130 elndchtNI 1135 elndchtNI 1139 elndchtNI 1143 elndchtNI 1148
答案 1 :(得分:0)
我不在此处将输出写入文件-只是提供了替代解决方案: 您没有在示例中正确增加计数器。 这更接近您的原始代码。
count = 0
oc = 0
offset = [4,5,4]
for i in range(1100,1149):
if count == 0:
print(i)
elif offset[oc] == count:
print(i)
oc +=1
oc %=3
count = 0
count +=1
这将产生:
1100
1104
1109
1113
1117
1122
1126
1130
1135
1139
1143
1148
顺便说一句,如果要最后输出,Python范围需要比1148多1。