3

我正在编写一个程序来检查网站是否具有有效的扩展名。首先我做了这个

website_address = 'facebook.com'
website_address.endswith('.com')

它工作正常。但是我只能检查一个扩展,所以我想写一个函数来检查扩展列表。

def check_if_website_address_is_valid_by_extension(website_address):
    valid_extensions = ['.com', '.info', '.edu', '.org', '.biz', '.net']
    if website_address.endswith(valid_extensions):
        return 'check_if_website_address_is_valid_by_extension function returns True'
    else:
        return 'check_if_website_address_is_valid_by_extension functions returns False'

但是当我调用这个函数时,check_if_website_address_is_valid_by_extension(website_address)我得到了错误

if website_address.endswith(valid_extensions):
TypeError: endswith first arg must be str or a tuple of str, not list

我写的程序是对的,但我不知道错误。请帮忙!

4

1 回答 1

3

到目前为止,你做得很好。这里唯一的问题是str.endswith函数要么接受一个字符串,要么接受一个字符串元组。只需将您的有效扩展列表更改为元组,它应该可以正常工作。

valid_extensions = ('.com', '.info', '.edu', '.org', '.biz', '.net')

样品输出

>>> check_if_website_address_is_valid_by_extension('facebook.com')
 'check_if_website_address_is_valid_by_extension function returns True'

>>> check_if_website_address_is_valid_by_extension('google.net')
 'check_if_website_address_is_valid_by_extension function returns True'

>>> check_if_website_address_is_valid_by_extension('Hello')
 'check_if_website_address_is_valid_by_extension functions returns False'

但是有一个建议,而不是返回这么长的字符串,你为什么不只是return TrueFalse布尔值呢?

于 2021-05-08T13:27:30.603 回答