2015-08-19 47 views
-4

嗯,我刚开始学习Python,所以我不明白如何让我的代码正确(值得说我从YouTube学习)))。我想从代码中得到的是 - 如果赋值num1最后有8个字符,并且它应该由命令打印打印,并且它不打印任何内容。将分配导入模块/预期的字符串或缓冲区Python,

import re 

def x(): 
    num1 = 5894652138 
    vav = re.match(r'[8]''$', num1) 
    print vav 
x() 
+0

're'是矫枉过正。将'num1'投射到'str'对象并测试:'如果str(num1).endswith('8')':print str(num1)'或其他类似。 –

+2

您是否阅读过错误信息?它*“预期的字符串或缓冲区”*,但你传递一个整数! – jonrsharpe

回答

3

你并不需要使用重新这里。 要检查的最后一位的十进制数,你应使用10使用modulos:

num1 = 5894652138 
if num1 % 10 == 8: 
    print num1 
+0

非常感谢,答案一如既往很简单。 –

-1
def x(): 
    num1 = 5894652138 
    num2 = str(num1) 
    if (num2.endswith("8")): 
     print num1 

你可以做到这一点,看看8是在年底。

+0

这也是很好的解决方案。谢谢。 –

相关问题