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)
。