输出个位数字比十位数字大2的两位数有多少个?具体有哪些?

为啥错了,也没有报错,就是run一下没有东西出来,help,捞捞

img

判断逻辑可能有点问题。
在你的代码的基础上,我是用下面的思路来求解的:
1、对个位数比十位数大2的记录变量置0
2、用一个for循环遍历所有的二位数,然后在循环中分离每一个二位数的个位和十位,如果个位比十位大2,则打印这个数,并把记录变量的计数+1
3、打印记录变量的值,显示有多少个个位比十位大2的二位数。
代码修改如下:


num=0
for number in range(10,100):#遍历10到99,
    a=number%10  #提取个位数
    b=(int)(number/10%10)  #提取十位数
   # print("a="+str(a)+",b="+str(b))
    if a==b+2:  #如果个位数比十位数大2,则打印整数,并记录这样的数的变量+1
        print(number,end=" ")
        num=num+1
        
print("\n个位数比十位数大2的数总共有"+str(num)+"个。") #打印有多少个这样的数
    


img

你这个if语句里,a是肯定大于等于0的,所有肯定不会走到else语句。而if里没有Print()方法,所有没有输出。

你要输出a, b的值可以把 else去掉,直接接着print就可以了。

还有你这算法不是题目的解答。

根据你的思路可以试试 

if a >=0 and a >= b+2:
    print(a, b)

当然你最好想想更好的算法。

for i in range(10, 100):
a = str(i)[1] # 个位数
b = str(i)[0] # 十位数
if int(a)-2 == int(b):
print(i)
这样更简单