编程学习第五天,import/argv

今天是学习Python的第五天,实际上已经过了大概七天吧,因为昨天又没干活,把前四天的复习了一下,在看第一天的时候突然有种想用Linux的冲动,于是去下了VM10,下了uBuntu15.10优麒麟、RHEL 6,然后心血来潮又在京东花了59买了本《鸟哥的linux私房菜》。当年在长沙陪着初恋时,她学的就是Linux,那时候我一无所有,每天就着这本书来充实自己,以为自己会在这条路上走的更远,只是可惜败给了现实,败给了父母,最后并没有在这条路上走下去,当时拜读了王垠的《完全用linux工作》,深受鼓舞,前面的种种都导致我现在对linux有一种莫名的好感,如今能回过头学回来,也算有希望完成夙愿吧。


那今天就继续Python学习吧,废话说的够多的了

习题12提示别人

这节跟昨天我的发现一样,主要是运用raw_input()括号内可以输入字符串,从而作为提示显示出来。

然后这节使用了pydoc命令

在Terminal下命令是pydoc raw_input,在win下是python -m pydoc raw_input

pydoc命令的功能目测是把后面命令的帮助文档打印出来,比如raw_input:

raw_input(...)
    raw_input([prompt]) -> string


    Read a string from standard input.  The trailing newline is stripped.
    If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
    On Unix, GNU readline is used if enabled.  The prompt string, if given,
    is printed without a trailing newline before reading.

可以看到第一行是用法,而且把该函数输出类型也标出来了,是string型,后面则是一些详细的说明,再比如input:

input(...)
    input([prompt]) -> value


    Equivalent to eval(raw_input(prompt)).

可以清楚的看到input()等价于eval(raw_input()),跟前几天学的东西一模一样。

通过这两个例子可以看到pydoc具体的用途,以后有任何Python命令不明白,直接用该命令即可,非常棒。


习题13参数、解包、变量

本节首先学习了import命令:

from sys import argv

这是将Python功能引入脚本的方法,Python本来不会将所有功能给我们,而是我们需要什么就调用什么,这样可以让程序保持精简,而且再读代码的时候也可以通过import知道我们调用了哪些功能。

这里提到的“功能”,实际上的名字应该是“模组”,英文名"modules",也称为“库(libraries)”,以后再提到调用什么功能,我们就要这样说了:“把sys模组import进来”。。

argv是“参数变量(argument variable)”的意思,argument是参数,variable是变量。

而习题到这还没有结束,参数要赋给变量,需要解包的过程,这里的代码如下:

script, first, second, third = argv

运行程序的方法是这样:python ex13.py first 2nd 3rd

输出是这样的:
The script is called: .\ex13.py
Your first variable is: first
Your second variable is: 2nd
Your third variable is: 3rd


这行代码就是“解包”,解包的对象是"agrv",过程是这样:参数传入程序后,在该行代码时将agrv解包,依次从左到右赋给左边的变量名,script是脚本名也就是'ex13.py',first=='first',second=='2nd',third=="3rd"。

至于为什么ex13.py也传进去了,我觉得python命令默认就是把这个文件名作为参数传到Python里,然后再去解析相对应的文件,所以在我们需要通过python命令获取参数时,当我们传递了ex13.py——也就是我们要运行的脚本名时——也将对应的字符串传过去了,于是我们获取agrv参数变量时,也包括了传进来的脚本名。

另外当只有一个变量时,获取的参数将是这样:
The script is called: ['.\\ex13.py']

(也许可以旁证python运行脚本时是将脚本名视为参数变量的。)

或是这样:

The script is called: ['.\\ex13.py', 'first', '2nd', '3rd']

也就是说只有一个参数时获取的应该是个数组。

(而且Python是根据数组第一个参数来找到脚本运行)

需要注意,参数的数量必须与变量的数量一致,多了会报too many values,少了会报need more than X values to unpack。

argv是sys包里的一个模组,假如我用argvv就会不认识报错,可以明白sys包的argv模组应该就是专门用于接收python运行命令的模组。


argv和raw_input()的区别:argv是我们需要在脚本运行前也就是执行命令时输入,而raw_input()是脚本运行过程中需要我们输入。

相同的是命令行输入的参数都被视为字符串,比如需要输入数字型时,就需要用int()先转化为数字。


本节总结:本节习题学习了import命令,主要是from xxx import xxx,引入模组的概念使得程序简洁,可读性高,需要什么引用什么也避免了浪费资源加载一堆没用的模组,然后还学到了解包的概念,agrv作为接收命令参数的模组,当传递了除脚本名以外的参数时,可以将其解包赋给对应数量的变量,解包的概念也就在这过程中明确了。


今天就到这吧,边看边学导致进度略慢,我应该好好反思一下……

最近特别想去听伍佰演唱会,5.7在山西太原,1080的内场票,火车来回800,单程时间25小时左右,演唱会的名字叫《无尽闪亮的摇滚·全经典》,个人来说从大学第一次唱伍佰的歌就是那首《突然的自我》,几乎每次去ktv我都必须唱这首,曾经有一次我说:我在大学开始唱这首歌,每次去ktv我都会唱,我想也许我会唱一辈子这首歌了。关于演唱会,我原来希望的是听一场五月天的歌,因为五月天对于我的青春也是个特别深刻的符号,我没有把伍佰的歌听全,但是对于五月天,我是几乎把他们发行过的歌曲都听了几遍,只是可惜的是今年并没有五月天的演唱会,至少在大麦网上没搜到,而纵观全年,只有伍佰的演唱会吸引到我,从很久之前我就想过我这辈子一定要听一次演唱会,如今这个机会摆在我面前,可是我却犹豫了,是因为地理原因吧,离得太远了,路上就要花费两天约50小时的时间,为了这么一场演唱会,到底值不值?还是我不应该去思考值不值,单靠直觉我是非常想去的,那么就这么简单的决定吗?我什么时候变得这样畏首畏尾了呢?也许也有花钱的因素在里面,来回一趟就要花2000多元,确实是比较大的一次花销,我想这才是关键……钱真的很让人难过……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值