我正在制作一个python程序,我需要检查一个变量的四个字母部分。如果变量是例如 help_me_code_please ,则应输出轻松,然后输出 e_pl 等,我尝试使用
a=0
b=3
repetitions=5
word="10011100110000111010"
for x in range (1,repetitions):
print(word[a:b])
a=a+4
b=b+4
然而它只输出空行。 非常感谢您提供的任何帮助。
答案 0 :(得分:0)
这应该有效:
words = "help_me_code_please"
size = 4
start = len(words)%size - size
for i in reversed(range(start, len(words), size)):
print(words[max(0,i):i+size])
输出
ease
e_pl
_cod
p_me
hel
说明:start
为我们提供了一个起点,即距离我们的字符串(单词)的长度有一些可分割的块。在我们的示例中,它是-1
,因为20 (5*4)
距19
words
,19 -> -1
的长度。
现在我们从第4个words[15:19]
开始进行反向循环。所以我们去15,11,7,3,-1。在每个循环中,我们从我们的位置打印到位置+ 4.因此第一个循环迭代打印出ease
输出words[11:15]
,第二个输出#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
FILE *inFile;
int i,j;
int rows, cols;
inFile = fopen ("Matrix.txt", "r");
if (inFile == NULL)
{
printf("\n\nFile does not exist or cannot be opened.\n");
exit(1);
}
fscanf(inFile,"%d %d", &rows, &cols);
int m1[rows][cols],m2[rows][cols],m3[rows][cols];
/*Scan and store Matrix 1 and Matrix 2*/
for (i = 0; i < rows; i++)
{
for ( j = 0;j<cols;j++)
{
fscanf(inFile,"%d", &m1[i][j]);
}
}
for (i = 0; i < rows; i++)
{
for ( j = 0;j<cols;j++)
{
fscanf(inFile,"%d", &m2[i][j]);
}
}
fclose(inFile);
printf("\nThe sum of the two matrices:\n");
for (i = 0; i < rows; i++)
{
for (j = 0; j < cols; j++)
{
m3[i][j]=m1[i][j]+m2[i][j];
printf(" %d", m3[i][j]);
}
printf("\n");
}
}
等等。这导致我们看到的输出。
希望这种解释有意义!
答案 1 :(得分:0)
假设你想要重复打印4个字。
word = 'help_me_code_please'
# Looping from backwards on the word with a step of 4
for i in range(len(word)-1, -1, -4):
# j is the starting point from where we have to print the string.
j = i-3 if i > 3 else i-1
print word[j:i+1]
答案 2 :(得分:0)
前进:
[word[::-1][4*l:4*(l+1)][::-1] for l in range(0, int(len(word)/4)+1)]
['ease', 'e_pl', '_cod', 'p_me', 'hel']
对于落后:
word="10011100110000111010"
[word[4*l:4*(l+1)] for l in range(0, int(len(word)/4)+1)]
['1001', '1100', '1100', '0011', '1010']
[word[::-1][4*l:4*(l+1)] for l in range(0, int(len(word)/4)+1)]
['0101', '1100', '0011', '0011', '1001']
这是列表推导(https://docs.python.org/3.6/tutorial/datastructures.html#list-comprehensions),您可以迭代结果列表。
其var [start:ends:step]。 word [:: - 1]表示得到一个字母,从头开始,在结尾处完成,然后前进-1步,所以它反转字符串
对于新值:
writeFields