用python中getopt模块中getopt函数解析从命令行输入的参数时一些代码不知道什么意思?



```python
import sys
import getopt
 
def site():
    name = None
    url = None
 
    argv = sys.argv[1:] #sys.argv[1:]表示什么呢,也不是第一个参数啊?
 
   #try子句的作用是啥,opts,args表示啥?
    try:
        opts, args = getopt.getopt(argv, "n:u:",  
                                   ["name=",
                                    "url="])  # 长选项模式
     
    except:
        print("Error")
 
#下面的for循环每句代码都是啥意思?
    for opt, arg in opts:
        if opt in ['-n', '--name']:
            name = arg
        elif opt in ['-u', '--url']:
            url = arg
     
 
    print( name + " " + url)
 
#python中没有主函数吗,这里的site前面是不是隐用一个空行告知site已经处在主函数内部?
site()

```

问题还真多,说明你对python的语法一点都不熟悉啊
一个一个来吧
1.[1:]是切片操作,x[a:b:c]表示将x从a位置开始到b位置每隔c进行切片,返回一个新list,其中abc都可以省略。a的默认值是0,b默认值是-1,c默认值是1.
如果a和b是负值,表示从后往前数;如果c是负值,表示倒序
2.getopt返回一个元组,里面有2个元素。那么用2个参数来接收的时候,元组会自动拆箱,分别给2个变量赋值。当然,也可以反过来,把两个值赋值给一个变量,自动装箱。
3.try,except是捕获异常,如果代码执行出现异常则会被捕获,进入except继续执行
4.for里面有2个变量,跟上面的2一样,因为opts里面是2项,所以迭代的时候要用2个变量来接,否则会被装箱变成元组
5.python没有主函数,写在主py文件里的代码就直接运行