我是编码新手,这是我在这里的第一个问题! 我正在尝试使用一些自动化工具,在我的第一步中,我想从用户那里获取数据并对其进行验证。
我正在尝试从用户那里获取域名并检查 TLD,如果它的“.co.il”在不打印消息的情况下继续执行其他任务。
我阅读并尝试了一些东西,但对我没有任何作用。
这是我最后一次尝试代码:
domainBuy = input('Please Enter Domain Name: ')
def domaincheck(domainBuy):
if '.co.il' in domainBuy:
print('DOMAIN GOOD!')
else:
print('bad')
我会感谢任何提示!谢谢!
答案 0 :(得分:1)
由于域名位于 URL 末尾,因此最好使用 endswith()
。
x.endswith('.co.il')
- 如果 x
以 .co.il
结尾,则返回 True,否则返回 False
domainBuy = input('Please Enter Domain Name: ')
def domaincheck(domainBuy):
if domainBuy.endswith('.co.il'):
print('DOMAIN GOOD!')
else:
print('bad')
# calling your function
domaincheck(domainBuy)
答案 1 :(得分:0)
最好先定义你的函数,然后再调用它们 我猜混淆来自在函数中使用与输入相同的变量名,也许这会让它更清楚?
def domaincheck(domainBuy):
if '.co.il' in domainBuy:
print('DOMAIN GOOD!')
else:
print('bad')
domain_name = input('Please Enter Domain Name: ')
domaincheck(domain_name)
正如 Barmar 在评论中指出的那样,domainBuy.endswith('co.il')
是一个更好的测试。
答案 2 :(得分:0)
虽然稍微复杂一些,但在验证输入模式时通常会使用正则表达式,并且可以在 endswith
不够用的情况下应用于更广泛的应用程序。
示例:
import re
def domaincheck(input_str):
pattern = re.compile(r'\.co\.il$')
if pattern.search(input_str):
print("Good")
else:
print("Bad")
domaincheck('test.co.il')
domaincheck('test.co.il.invalid.com')
输出:
Good
Bad
更新:
解决有关循环直到输入有效 URL 的问题:
import re
def domaincheck(input_str):
pattern = re.compile(r'\.co\.il$')
if pattern.search(input_str):
print("Good")
return True
else:
print("Bad")
return False
while True:
user_input = input("Enter URL: ")
if domaincheck(user_input):
break