gpt4 book ai didi

Python 代码可以在 IDLE 中运行,但不能在 VS Code 中运行

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:30 24 4
gpt4 key购买 nike

我目前正在开始学习 Python,并选择 Al Sweigart 的“用 Python 自动执行无聊的事情”来帮助我迈出第一步。因为我真的很喜欢 Visual Studio Code 的外观和感觉,所以我在读完本书的第一部分后尝试切换。

以下代码来自在线 Material ,因此应该是正确的。不幸的是,它在 IDLE 中运行良好,但在 VS Code 中则不然。

def isPhoneNumber(text):
if len(text) != 12:
return False # not phone number-sized
for i in range(0, 3):
if not text[i].isdecimal():
return False # not an area code
if text[3] != '-':
return False # does not have first hyphen
for i in range(4, 7):
if not text[i].isdecimal():
return False # does not have first 3 digits
if text[7] != '-':
return False # does not have second hyphen
for i in range(8, 12):
if not text[i].isdecimal():
return False # does not have last 4 digits
return True # "text" is a phone number!

print('415-555-4242 is a phone number:')
print(isPhoneNumber('415-555-4242'))
print('Moshi moshi is a phone number:')
print(isPhoneNumber('Moshi moshi'))

我收到以下错误:

    415-555-4242 is a phone number: 
Traceback (most recent call last):
File "/Users/.../isPhoneNumber.py", line 20, in <module>
print(isPhoneNumber('415-555-4242'))
File "/Users/.../isPhoneNumber.py", line 5, in isPhoneNumber
if not text[i].isdecimal(): AttributeError: 'str' object has no attribute 'isdecimal'

我很高兴收到您的建议以使其发挥作用。我已经安装了 Python 扩展并使用 pip3 安装了建议的内容。

提前致谢。

最佳答案

只有 Unicode 字符串才有 isdecimal(),因此您必须将其标记为这样。

要将Python中的字符串转换为unicode字符串,可以这样做:

s = "Hello!"
u = unicode(s, "utf-8")

在你的问题中你可以改变 print(isPhoneNumber('415-555-4242'))print(isPhoneNumber(u'415-555-4242'))print(isPhoneNumber('Moshi moshi'))print(isPhoneNumber(u'Moshi moshi'))

u'string' in python determines that the string is a unicode string

关于Python 代码可以在 IDLE 中运行,但不能在 VS Code 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40075578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com