Python 如何循环一个整数并提取另一个较短的整数(从左到右)?

Python 如何循环一个整数并提取另一个较短的整数(从左到右)?,python,math,python-3.x,integer,Python,Math,Python 3.x,Integer,我必须从用户那里获得两个正整数(一个长一个短)。然后我必须循环遍历较长的整数(从左到右),并检查较短的整数是否出现在较长的整数中。我必须报告比赛的位置和比赛的数量 *我不允许使用字符串和列表来执行此操作): # Ask user for positve longer integer number import math longInt = int(input("Input a positive longer integer: ")) # Ask user for positive short

我必须从用户那里获得两个正整数(一个长一个短)。然后我必须循环遍历较长的整数(从左到右),并检查较短的整数是否出现在较长的整数中。我必须报告比赛的位置和比赛的数量

*我不允许使用字符串和列表来执行此操作):

# Ask user for positve longer integer number
import math

longInt = int(input("Input a positive longer integer: "))

# Ask user for positive shorter integer number 
shortInt = int(input("Input a positive shorter integer: "))

# Count number of digits in both longer and shorter integer numbers
longLength = int(math.log10(longInt)) + 1
shortLength = int (math.log10(shortInt)) + 1

for offset in range(longLength):
    subInt = longInt // 10 ** offset % 10 ** shortLength
    print(subInt)
    if subInt == shortInt:
        print("Found a match at position ", offset)
所以我得到的结果是:

Input a positive longer integer: 123456
Input a positive shorter integer: 12
56
45
34
23
12
Found a match at position  4
1
但是如何让它从左到右而不是从右到左循环通过
long\u int
?像这样:

Input a positive longer integer: 123456
Input a positive shorter integer: 12

1
12
Found a match at position  1
23
34
45
56

请帮忙!谢谢

longLength
中减去
偏移量以“向后”计数:

for offset in range(longLength):
    subInt = longInt // 10**(longLength - offset - 1) % 10**(shortLength)

我不允许使用字符串和列表来执行此操作。哦,你不喜欢任意的家庭作业限制吗?@MartijnPieters,是的。因此,
bytearray
是允许的:)@gnibbler:元组也是如此@MartijnPieters,但不能仅在
中对元组使用
,因为btwI无法识别语法。这是哪种语言?@MMss:Uhm,看看问题上的标签?确切地说是Python.Python3-
/
通常在Python2代码中找不到,这可能就是造成混淆的原因。谢谢@MartijnPieters!(:你知道如何用'12'而不是'1'来开始结果子整数吗?@JanL:减去
shortLength
而不是
1
,然后调整你的
范围()
以循环到
范围(longLenth-shortLength+1)