python代码求帮忙解读
本帖最后由 tencentma 于 2022-9-9 13:35 编辑下方是一个菜鸟教程上的python代码,我不太明白,希望大神能帮忙把每一句解读一下,谢谢啊。比如第二句Lfirst = input[0 : d] ,input还能这么用?单独打印Lfirst为啥提示错误。感谢。
Python3 实例给定一个字符串,从头部或尾部截取指定数量的字符串,然后将其翻转拼接。
实例
def rotate(input,d):
Lfirst = input
Lsecond = input
Rfirst = input
Rsecond = input
print( "头部切片翻转 : ", (Lsecond + Lfirst) )
print( "尾部切片翻转 : ", (Rsecond + Rfirst) )
if __name__ == "__main__":
input = 'Runoob'
d=2# 截取两个字符
rotate(input,d)
执行以上代码输出结果为:
头部切片翻转 :noobRu
尾部切片翻转 :obRuno 这里的input是一个变量 楼主你好萌 发表于 2022-9-9 13:43
这里的input是一个变量
谢谢,一句话就说明白了,我懂了!想问下if __name__ == "__main__":这一句一般什么时候用啊,找了教材没看太懂。 # 这是定义一个名字为 rotate的函数需要传两个参数
def rotate(input, d):
# 传进来的参数赋值给 Lfirst
# input 表示传进来的第一个参数从下标0开始切片,切到第2个参数也就是d的下标为止
Lfirst = input
# 同上 也就是把上面切片剩下的所有字符赋值给Lsecond
Lsecond = input
# 传进来的第一个参数从下标0开始切片至 (参数总长度减出第二个参数)的长度的下标 赋值给Rfirst
Rfirst = input
# 同上一行切片剩下的字符赋值给Rsecond
Rsecond = input
# 输出,接受赋值的变量输出就是结果了
print("头部切片翻转 : ", (Lsecond + Lfirst))
print("尾部切片翻转 : ", (Rsecond + Rfirst))
'''
本例中传入的第一个参数是 input 第二个参数是在d, 也就是传入'Runoob',2
Lfirst 赋值结果为 Runoob 从0到2的下标 Ru
Lfirst 赋值结果为 Runoob 从2到最后的下标 noob
Rfirst 赋值结果为 Runoob 从0到(6-2)=4的下标 Runo
Rsecond赋值结果为 Runoob 从(6-2)=4的下标至最后 ob
'''
if __name__ == "__main__":
# 定义变量
input = 'Runoob'
# 定义变量
d = 2# 截取两个字符
# 调用函数
rotate(input, d)
# 执行以上代码输出结果为:
#
# 头部切片翻转 :noobRu
# 尾部切片翻转 :obRuno 这里的input并不是让你输入值,而是传入函数的一个参数,你也可以把所有的input改成a/b之类,对结果没有影响。另外打印Lfirst需要放入定义的函数rotate里,比如放在print( "尾部......这句后面,如果你想在主函数中输出Lfirst的值,可以在定义的rotate(input,d)里加一句return Lfirst,然后输出rotate(input,d)就行。 if __name__ == "__main__":
涉及是本代码执行还是另一个模块调用, 这句是起来判断的作用,如果是本程序执行,那么这句下面执行的代码执行,
如果 是别的代码调用本代码的函数 ,那么if __name__ == "__main__":下面包含的代码不执行 if __name__ == "__main__":是做判断脚本是通过import 导入还是直接执行的,只有直接执行脚本的时候才会执行里面的语句。 一般是用于测试当前脚本是否工作正常的内容放在里面。然后防止在import的时候执行这些代码。
Lfirst是函数内的变量,变量有作用域, 在函数外是无法访问的。想要访问需要在函数内进行访问,作用域分为LEGB,这块可以百度学习。 tencentma 发表于 2022-9-9 13:52
谢谢,一句话就说明白了,我懂了!想问下if __name__ == "__main__":这一句一般什么时候用啊,找了教材没 ...
main相当于主函数,使代码更有逻辑 本帖最后由 Liliright 于 2022-9-9 14:18 编辑
我也想知道
tencentma 发表于 2022-9-9 13:52
谢谢,一句话就说明白了,我懂了!想问下if __name__ == "__main__":这一句一般什么时候用啊,找了教材没 ...
比如有两个文件,test1.py,test2.py。
要分模块开发,测试。
如果完成了test1的功能,要在当前的test1中测试一下功能是否正常,那么这个时候有两种途径
第一:可以在test1中写if __name__ == "__main__":,在他下面写你要测试调用的方法功能。
第二:直接在test中调用你要测试的功能。
测试没问题之后,你要在test2中引入这个test1的功能,也就是import test1
然后你test2开发完成,要进行测试。
因为你在test2中import了test1,所以在test2测试的时候,如果你的test1是第二种写法,就会在test2中调用你测试test1的功能,可能造成方法多次调用,进行不必要的操作。但是第一种就不会。
总的来说,他就是一个判断入口的方法,如果你是在本文件中进行运行测试,那么当你运行时他就会执行main下面的内容,在别的文件中import调用,main下的内容不被执行。
页:
[1]
2