导航:首页 > 编程语言 > python缩进是失败的设计

python缩进是失败的设计

发布时间:2022-05-23 01:28:43

python 缩进错误,

要求严格的代码缩进是python语法的一大特色,就像C语言家族(C、C++、Java、C#等等)中的花括号一样重要,在大多数场合还有必要。在很多代码规范里面也都有要求代码书写按照一定的规则进行换行和代码缩进,但是这些要求只是纯粹是方便人(程序员)来阅读、使用或修改的,对于编译器或者解释器而言,完全是视而不见的。但是对Python解释器而言,每行代码前的缩进都有语法和逻辑上的意义。Python的这个特性,也经常在Python使用者和非Python使用者中引起争论。
Python的代码缩进之起源,有人说事继承于ABC(没听过但感觉很古老的语言),有人说是避免花括号,我猜可能是python发明者一时心血来潮的决定,大概也只有他能解释这个问题。不管怎样,作为发展了十余年的一名语言,这条语法规则已经不大可能改变了。
实际上,严格要求(强制)的代码缩进,就像一把双刃剑,有好处也有坏处。好处显而易见,在严格要求的代码缩进之下,代码非常整齐规范,赏心悦目,提高了可读性,在一定程度上也提高了可维护性。有人说,这种约束,对团队开发非常有利,当然,也不见得,这就要看强制代码缩进的坏处。Python严格的代码缩进,对于从其他语言转过来的人(现在计算机和相关专业第一门语言一般都是C/C++或Java吧,他们的语法风格基本是一直的),可能要适应一段时间。代码缩进十分严格,如果不按规律办事,不小心的话就会出现语法错误,比如unexpected indent之类的。甚至有时也会出现逻辑错误。
在实际情况中,由于代码缩进而出现语法错误或逻辑错误,在我看来有这两种主要情况,一是混用tab和空格缩进,二是编辑器对缩进的处理各异。这里给出一个例子,代码是这样的:

图中使用的Notepad++编辑器,箭头代表一个tab,点表示一个空格,默认情况下不会显示箭头和点,需要专门在视图-显示符号-显示空格和制表符 中启用这个功能。如果没有箭头和点,一般认为执行结果应该是显示a,实际是显示a、c,原因很简单,1个tab,python会认为是8个空格。如果换成其他编辑器,可能print 'c'就不会和print 'b'同列显示了。对于同一个文本,简单的修改,不同编辑器做保存,也可能导致缩进出现不同。
我觉得为了避免因代码缩进而产生不必要的麻烦,写python代码应该,使用唯一的缩进方式(要么tab,要么空格),使用固定和统一的编辑器,此外,还应该利用好编辑器的一些特性。对于notepad++而言,除了上面所说的显示空格和制表符外,还有两个特性可以使用:一是,编辑菜单下的blank operation有两个选项tab to space和space to tab,如果对上图的那段代码做tab to space,代码列对齐基本不变,箭头都变成点,但是执行结果是a;二是,在 设置-首选项-语言下可以选上“以空格代替”,这样以后每次按tab键都会自动转换为空格。
其他的编辑器,也有对应的一些处理技巧,比如,列表中有人提出,对VIM可以这样设置:
set list
set listchars=tab:\|\ ,trail:-,nbsp:_
更多的编辑器特性,google上面应该还有很多,这里就不赘述了。
处理好代码缩进的问题,应该算是python的基本功吧。

⑵ python3总是提示缩进错误

你需要一个编辑文本工具。
最简单的,推荐你使用notpad++。
若果使用的事自带的编辑工具,全选代码,alt+f5 。

⑶ Python语言缩进问题

可能是TAB跟空格的问题,解决方案:
把缩进都删除;
每级缩进只用一个空格,这样问题是解决了;
最好的建议是File--New
Window,新建一个py文件,在这个里面输入代码。

⑷ python编辑器空行缩进错误

Win10中使用python3.4以上高版本的试试看。。。检查输入法。。。

⑸ python缩进错误,求教。

importrandom
secret=random.randint(1,100)
guess=0
tries=0
print("AHOY!I'mtheDreadPirateRoberts,andIhaveasecret!")
print("Itisanumberfrom1to99.I'llgiveyou6tries.")
whileguess!=secretandtries<6:
guess=int(input("What'syouguess?"))
ifguess<secret:
print("Toolow,yescurvydog!")
elifguess>secret:
print("Toohigh,landlubber!")
tries=tries+1
ifguess==secret:
print("Avast!Yougotit!Foundmysecret,youdid!")
else:
print("Nomoreguesses!Betterlucknexttime,matey!")
print("Thesecretnumberwas",secret)

python是依靠缩进判断语句块的,因此while,if的子语句要多缩进一个单位

学的什么书,告诉一下,省得下次答的时候还是自己敲代码

⑹ python for 循环 报缩进错误,请求指导

我也是这样打就可以了,result试试看前进一个字符def max(num1,num2): if num1>num2: result = num1 else: result = num2 return resultdef main(): i = 5 j=2 k = max(i,j) print(k)main()

⑺ python用IDLE老是出现缩进问题

你这样写是不对的。for那一行是没有缩进的,第二行你用了两个Tab,第三行你用了一个tab,所以有错误。你写的格式相当于下:
for i in range(5):
mun=mun+input('enter a number:')
print(mun)
这样python解释器看不懂你的缩进等级

⑻ python的缩进问题

22行是while True:
那么22行后面需要缩进,
23是注释,所以24行需要缩进

⑼ python缩进问题,用Geany输入冒号再点enter会有箭头如下图那样,运行时会报错,为什么

是否是IndentationError 或TabError(缩进错误或tab使用错误)?
在Geany EMACS Notepad++里
····和|—>两种显示的占位是一样大(打不出四格箭头,在这里),一个是tab一个是空格
但是它们含义不同,对python来说,故不能混用,
还有文本编写器会帮你自动缩进特定的tab数或空格数,但是这次是你用空格编写,可是文本编辑器用tab补足(于是引发错误)
更正方法,1 替换每个tab为四个空格
2,配置Geany 找到编进或者tab制表符的选项设置,自动更换tab之类的东西

⑽ 谁能详细的介绍一下python 缩进

Python的缩进要求是强制的,因为缩进不对直接影响了代码逻辑。

案例一:

缩进不缩进,代码是否逻辑错误,软件都会提示,省心多了。

阅读全文

与python缩进是失败的设计相关的资料

热点内容
多个文件解压缩 浏览:538
python字符串替换函数 浏览:825
app会员卡怎么做 浏览:921
我爱你python编码 浏览:365
一台计算机作为服务器一般可以运行什么软件 浏览:421
应用加密桌面还显示头像咋办 浏览:523
微软硬盘加密密钥 浏览:156
空调压缩机和风扇 浏览:511
代码可以编译运行 浏览:918
银行卡加密码大全真号 浏览:447
单片机测esr 浏览:412
app怎么设置消息功能 浏览:916
明词pdf 浏览:427
云域控服务器有什么用 浏览:577
字节和B站程序员 浏览:747
app推荐书要怎么做 浏览:303
unix网络编程第一卷 浏览:852
c需要pdf 浏览:865
超级解压的美甲 浏览:72
安卓手机如何永久取消静音 浏览:722