设为首页 收藏本站
查看: 891|回复: 0

[经验分享] 写脚本不熟练的程序员不是好程序员----小话python(1)

[复制链接]

尚未签到

发表于 2017-5-6 12:02:26 | 显示全部楼层 |阅读模式
  作者:陈曦
  日期: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解释器。
DSC0000.png

  可以看出,已经安装了。如果没有,可以使用macport进行安装。
  编写如下代码,保存为hello.py:

print "hello, python!\n"


运行:
DSC0001.png

  

  Q5: 每次命令行输入python,感觉还挺烦的,有没有更简单的方式?
  A:那么建立一个python的软链接吧,取名为p.只要没有冲突就行。
DSC0002.png

  

DSC0003.png

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

  

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

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


保存为var.py.  运行:
DSC0005.png

  

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

  Q7: 有时,可能需要计算大整数运算结果,如果使用编程语言,比如c语言等等来计算,可能需要编写大整数计算的代码,这可能是个耗时的过程,python可以提供类似的计算功能吗?
  A: 是的。python解释器可以提供的一个基本功能就是计算功能, 同时它可以提供直接输入功能,简单明了。如下:
DSC0006.png

  

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

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

  Q9: 有时,需要计算的表达式很多,如果像上面那样一个一个输入,岂不太复杂了?
  A: python提供的基本功能就是解释字符串,把表达式放进字符串中,让python来解释即可。
DSC0007.png

  

  上面的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. 然后执行:
DSC0008.png

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

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

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

  Q11: 对于复数的运算,python有没有提供对应的实现?
  A: 是的。复数运算也很简单和直接:
DSC00010.png

  

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

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

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

  Q13: 在开发和修复bug过程中,可能需要对某个指定大小文件进行操作,那么如何快速生成一个指定大小的文件?
  A: python提供了文件操作接口,可以很方便解决这个问题。如下,生成一个100MB大小的文件,最后一个字节为0:
DSC00012.png

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

  

  Q14: 在网络访问过程中,经常需要确定某个网页对应的html数据,而且有时需要对于html的数据进行搜索,有什么比较好的方法?
  A: 使用脚本实现是个不错的选择,对于数据的分析比较直接,虽然使用浏览器来查看源代码也是一种方式。如下:
DSC00014.png

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

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

  作者:陈曦
  日期:2012-6-30 11:18:06
  环境:[Mac 10.7.1 Lion Intel-based i3,支持64位指令 Python 2.7.1 gcc4.2.1]
  转载请注明出处
  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-373787-1-1.html 上篇帖子: python学习笔记3.1.3x 之if 语句以及while语句 下篇帖子: Python基础教程之第4章 字典: 当索引不好用时
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表