房间里的空调吵的不行...不知是干什么了,但是现在在重新签房租的敏感时期,我也不太敢和房东说,唉。
先记录今天遇到的一个的问题:
def print70(s): len = len(s) spaces = 70 - len print(spaces+s) print70(‘xuetao‘)
代码运行结果:
这个报错我其实有些不太理解,我用len做变量名,难道是覆盖了函数名?
假设是这样的,我来做个测试:
在main函数的环境下,其实这个赋值语句是能正常运行的,而且是正常的结果。
但是仔细想想啊,python会把函数定义这部分代码先运行,运行完这部分代码时,其实len这个变量已经不是一个函数了。
修改一下原先的代码,测试一下
def print70(s): len = len(s) spaces = 70 - len print(spaces+s) # print70(‘xuetao‘) print(type(len))
结果还是不算特别清晰,这时候len是一个函数或方法,但是和在之前在main环境下直接看len已经不一样了?
继续修改代码,直接来个狠的。
print(type(len)) def print70(s): len = len(s) spaces = 70 - len print(spaces+s) # print70(‘xuetao‘) print(type(len)) print(len)
我有些凌乱了...
如果把注释去掉,调用print70函数,又是那个报错
无法理解,暂且记着吧。
--------------
更新
联系3.3不知道大家有没有好办法,我的代码写的好蠢,求优化
def drawSonLine1(): print(‘- - - - +‘, end=‘ ‘) def drawSonLine2(): print(‘ ‘*8 + ‘|‘, end=‘ ‘) def drawLine1(): print(‘+‘, end=‘ ‘) drawSonLine1() drawSonLine1() drawSonLine1() drawSonLine1() print() # 换行 print() # 空出一行 def drawLine2(): print(‘|‘, end=‘ ‘) drawSonLine2() drawSonLine2() drawSonLine2() drawSonLine2() print() #换行 print() #空出一行 def draw(): drawLine1() drawLine2() drawLine2() drawLine2() drawLine2() drawLine1() drawLine2() drawLine2() drawLine2() drawLine2() drawLine1() drawLine2() drawLine2() drawLine2() drawLine2() drawLine1() drawLine2() drawLine2() drawLine2() drawLine2() drawLine1() draw()
时间: 2024-10-11 13:49:31