写脚本不熟练的程序员不是好程序员----小话python(1)

作者:陈曦

日期:2012-6-30 11:18:06

环境:[Mac 10.7.1 Lion Intel-based i3,支持64位指令 Python 2.7.1 gcc4.2.1]

转载请注明出处


Q1: 脚本的本质是什么?

A:它就是一段代码,只不过让对应的解释器执行即可;和它相对应的是编译型代码,需要编译成可执行文件或者目标文件,在指定平台上运行或者使用。


Q2: 为什么写脚本不熟练的程序员不是好程序员?

A: 如果程序员主要写的就是特定类型的脚本,那肯定是这样;如果不是,当主要工作不是写脚本时,程序员要做的不仅仅是写本职工作,还不可避免地需要处理相关的测试和验证工作。例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么。在此时,如果一味希望采用编译型语言来编写这样的代码,实践中的时间和精力是不够的,所以,脚本成了很好地选择。


Q3: 在您所了解的脚本中,最喜欢哪个?

A:对于windows下批处理,linux shell, mac shell, python, perl, VBScript这些脚本中,最喜欢的就是python.原因在于,它从一方面很像c语言,简洁,很多时候代码很易懂易写;另一方面很像c++,支持面向对象的处理。


Q4: 给个mac下python语言的hello代码吧。

A:首先得确定已经安装了python解释器。

可以看出,已经安装了。如果没有,可以使用macport进行安装。

编写如下代码,保存为hello.py:

print "hello, python!\n"

运行:


Q5: 每次命令行输入python,感觉还挺烦的,有没有更简单的方式?

A:那么建立一个python的软链接吧,取名为p.只要没有冲突就行。


此时,可以使用p命令代替python.


Q6: 对于创建变量和使用变量呢,这样的代码如何写?

A: 对于创建变量和使用变量,它没有什么很奇怪的语法,不像bash或者perl那样,需要一个$符号,有时还需要$()这种形式。从大二开始学习了bash, 到现在依然会忘记$符号有时该如何处理。python才看1天,就记住了它的处理方式,因为它对变量的声明和定义根本不需要$。

i = 5
print i
i = i + 1
print i
i = '12'
print i

保存为var.py.

运行:


可以看出,它的处理很简洁,i是变量,初始化的时候是i,使用的时候依然是i,很容易看懂。


Q7: 有时,可能需要计算大整数运算结果,如果使用编程语言,比如c语言等等来计算,可能需要编写大整数计算的代码,这可能是个耗时的过程,python可以提供类似的计算功能吗?

A: 是的。python解释器可以提供的一个基本功能就是计算功能, 同时它可以提供直接输入功能,简单明了。如下:


Q8: 可是c语言同样提供了double这样的类型,可以操作很大的数据,上面的过程用c代码同样可以方便实现?

A: 是的,是可以实现,但是如果需要计算一个表达式非要使用c语言,那过程显得太复杂了。


Q9: 有时,需要计算的表达式很多,如果像上面那样一个一个输入,岂不太复杂了?

A: python提供的基本功能就是解释字符串,把表达式放进字符串中,让python来解释即可。


上面的eval可以对字符串参数进行计算。需要计算很多个表达式的时候,我们可以将表达式放在一个文件中:

1+1
2*3
12%3
12**2
14.5+34.5-12.5

保存为expr_cal. 然后编写脚本读取文件中的数据,一行一行计算值:
file = open("expr_cal", "r")
all_lines = file.readlines()

for line in all_lines:
    print eval(line)

file.close()

保存为expr_cal.py. 然后执行:

可以看到,上面的代码已经正确地执行了。


Q10: 有时,对于编码问题,很讨厌的一个问题,为了确定某个字符的某种编码的数据是什么,python可以提供简单的方式吗?

A: 是的。如下:

上面可以看到,字符串 “你好” 对应的unicode编码,UTF8编码和GB2312编码对应的数据,方便易查。在出现编码问题的时候,不要慌张,python轻松给出结果。


Q11: 对于复数的运算,python有没有提供对应的实现?

A: 是的。复数运算也很简单和直接:


Q12: 有的时候会忘记平台默认的换行符是什么,有什么方法可以得到吗?

A: 使用os的linesep可以得到它。如下:

如果在其它平台,可能得到不同的结果。


Q13: 在开发和修复bug过程中,可能需要对某个指定大小文件进行操作,那么如何快速生成一个指定大小的文件?

A: python提供了文件操作接口,可以很方便解决这个问题。如下,生成一个100MB大小的文件,最后一个字节为0:

运行完后,可以找到这样大小的文件:


Q14: 在网络访问过程中,经常需要确定某个网页对应的html数据,而且有时需要对于html的数据进行搜索,有什么比较好的方法?

A: 使用脚本实现是个不错的选择,对于数据的分析比较直接,虽然使用浏览器来查看源代码也是一种方式。如下:

上面读取的数据没有完全显示。


从上面可以看出,其实脚本发挥着很大的作用。工欲善其事必先利其器,python就是一个很好的器。


作者:陈曦

日期:2012-6-30 11:18:06

环境:[Mac 10.7.1 Lion Intel-based i3,支持64位指令 Python 2.7.1 gcc4.2.1]

转载请注明出处



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值