《笨方法学习python3》练习13: Parameters, Unpacking, Variables

EX13: Parameters, Unpacking, Variables

  • 例子:

    from sys import argv
    script, first, second, third = argv
    
    print("The script is called:", script)
    print("Your first variable is:", first)
    print("Your second variable is:", second)
    print("Your third variable is:", third)
    
  • 学习内容:argv

    • argv
      • argv即所谓的参数变量(argument variable),这是一个非常标准的编程术语。这个变量保存着你运行脚本时传递给python脚本的参数。

      • argvinput()有什么不同:不同点在于用户输入时机,argv是在用户执行命令时输入,而input()是在命令执行过程中输入。

  • 改变代码(寻找可能情况及错误)

    • 脚本输入参数与要求输入个数不符

      输入:

      from sys import argv
      script, first, second, third = argv
      
      print("The script is called:", script)
      print("Your first variable is:", first)
      print("Your second variable is:", second)
      print("Your third variable is:", third)
      

      结果:

      1. 不写参数
      python TEST.py
      Traceback (most recent call last):
        File "TEST.py", line 2, in <module>
          script, first, second, third = argv
      ValueError: not enough values to unpack (expected 4, got 1)
      

      值错误:进行解包的参数个数不够(规定四个,只输入了一个)

      不输入参数也能有一个参数的原因是:TEST.py会默认成为一个参数。

      1. 写入少于要求个数的参数
      python TEST.py 1 2
      Traceback (most recent call last):
        File "TEST.py", line 2, in <module>
          script, first, second, third = argv
      ValueError: not enough values to unpack (expected 4, got 3)
      
      1. 写入超过要求个数的参数
      python TEST.py 1 2 3 4
      Traceback (most recent call last):
        File "TEST.py", line 2, in <module>
          script, first, second, third = argv
      ValueError: too many values to unpack (expected 4)
      

      值错误:进行解包的参数过多。

    • 不限定argv的参数个数

      输入:

      from sys import argv
      print(">>>> 访问整个参数列表: ", argv)
      print(">>>> 访问第二个参数: ", argv[1])
      
      # import sys
      # print(">>>> 访问整个参数列表: ", sys.argv)
      # print(">>>> 访问第二个参数: ", sys.argv[1])
      

      结果:

      python TEST.py jdkasjl ajldajkdl asdadadsad
      >>>> 访问整个参数列表:  ['TEST.py', 'jdkasjl', 'ajldajkdl', 'asdadadsad']
      >>>> 访问第二个参数:  jdkasjl
      

      传递给python脚本的参数是以列表的形式存储在argv中,如果没有参数名,可以通过列表索引访问,即argv[1]sys.argv[1],视import形式而定

    • f-string改写

      输入:

      from sys import argv
      script, first, second, third = argv
      
      print(f"The script is called: {script}")
      print(f"Your first variable is: {first}")
      print(f"Your second variable is: {second}")
      print(f"Your third variable is: {third}")
      

      结果:

      python TEST.py 1 2 3
      The script is called: TEST.py
      Your first variable is: 1
      Your second variable is: 2
      Your third variable is: 3
      

      能够正常运行。

    • 强制转换数据类型用在变量赋值时更好

      输入:

      from sys import argv
      script, first, second = argv
      first = int(first)
      
      print("Your first variable is:", first)
      print("Your second variable is:", int(second))
      print("first数据类型: ", type(first))
      

      结果:

      python TEST.py 1
      Your first variable is: 1
      first数据类型:  <class 'int'>
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值