我正在尝试在Python 3.2中创建一个应用程序,并且我一直使用制表符进行缩进,但即使编辑器将其中的一些更改为空格,然后在我尝试运行时打印出"缩进时使用制表符和空格的不一致"该程序.
如何将空格更改为标签?这让我疯狂.(我是编程的初学者).如果我可以获得关于我的代码的一些整体提示,我会很高兴,如果我犯了很多错误,我会很高兴听到.
import random
attraktioner = ["frittfall","bergodalbana","spökhuset"]
class Nojesfalt:
def __init__(self, attraktion):
self.val = attraktion
self.langd = 0
self.alder = 0
#längdgräns för fritt fall
def langdgrans(self):
print("")
self.langd = int(input("Hur lång är du i cm? "))
if self.langd < 140:
print("tyvärr, du är för kort, prova något annat")
return 0
elif self.langd >= 140:
print("håll dig hatten, nu åker vi!")
print(" ")
return 1
#åldersgräns för spökhuset
def aldersgrans(self):
print("")
self.alder = int(input("Hur gammal är du? "))
if self.alder < 10:
print("tyvärr, du är för ung, prova något annat")
return 0
elif self.alder >= 10:
print("Gå in om du törs!")
print(" ")
return 1
#åker attraktion frittfall lr bergodalbana
def aka(self):
print("")
print(self.val)
tal = random.randint(0,100)
if tal < 20:
print("åkturen gick åt skogen, bättre lycka nästa gång")
elif tal >= 20:
print("jabbadabbbadoooooooo")
return 1
#går i spökhuset
def aka1(self):
print("")
print(self.val)
tal = random.randint(0,100)
if tal < 20:
print("du är omringad av spöken och kan inte fortsätta") return 0
elif tal >= 20:
print("Buhuuuuuu, buuuhuuuu")
return 1
#programkod
print("Välkommen till nöjesfältet, vad vill du göra?")
print(" ")
while 1:
vald_attr = input("Vad vill du göra?\n1. frittfall\n2. bergodalbana\n3. spökhuset\n4. Avsluta\n")
if vald_attr == "1":
val = Nojesfalt(attraktioner[0])
if val.langdgrans() == 1:
val.aka()
elif vald_attr == "2":
val = Nojesfalt(attraktioner[1])
val.aka()
elif vald_attr == "3":
val = Nojesfalt(attraktioner[2])
if val.aldersgrans() == 1:
val.aka1()
elif vald_attr == "4":
break
Run Code Online (Sandbox Code Playgroud)
Len*_*bro 228
不要使用标签.
注意:选项卡有8个空格的原因是,当您无意中插入选项卡时会立即注意到 - 例如从使用选项卡而不是空格的示例代码复制和粘贴时.
小智 73
Ctrl+Shift+P 或查看->命令调色板。
类型
>将缩进转换为空格
按 Enter。
Aka*_*all 31
使用autopep8下面的命令为我修复它:
autopep8 -i my_file.py
Run Code Online (Sandbox Code Playgroud)
小智 27
使用 sublime 文本编辑器时,我能够选择inconsistent use of tabs and spaces in indentation出现错误的代码段并选择:
view > indentation > convert indentation to spaces
这为我解决了这个问题。
Cza*_*rek 13
可以notepad++通过将Tabs替换为 4 Spaces来解决此问题:
Bru*_*uce 11
一般来说,人们更喜欢用空间缩进.它在编辑器中更加一致,从而减少了这种不匹配.但是,您可以使用制表符缩进.这是你的选择; 但是,您应该知道每个标签的8个空格的标准有点宽.
关于你的问题,很可能,你的编辑搞砸了.将制表符转换为空格实际上取决于编辑器.
例如,在Emacs上,您可以调用方法"untabify".
在命令行中,您可以使用sed行(根据您的喜好调整空格数):
sed -e 's;\t; ;' < yourFile.py > yourNedFile.py
Run Code Online (Sandbox Code Playgroud)
Kap*_*man 10
如果您使用Sublime Text进行Python开发,则可以使用Anaconda包来避免错误.安装Anaconda后,在Sublime Text中打开文件,右键单击空白区域→选择Anaconda →单击autoformat.做完了.或者按Ctrl+ Alt+ R.
我最近遇到了同样的问题,发现我只需要将.py文件的charset转换为UTF-8,就像Python 3使用的那样.
顺便说一句,我一直使用4个空格标签,所以问题不是由它们造成的.
在崇高的文本,WHILE 编辑一个Python的文件:
Sublime Text 菜单> Preferences > Settings - Syntax Specific:
Python.sublime-settings
{
"tab_size": 4,
"translate_tabs_to_spaces": true
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
650395 次 |
| 最近记录: |