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

[经验分享] 沉默成本,跪在坚持----Java程序员学Python学习笔记(一)

[复制链接]

尚未签到

发表于 2017-5-7 14:39:36 | 显示全部楼层 |阅读模式
搬运工又来了,从自己的logdown博客搬东西过来了。

  厦门已入秋,天气已凉,看着窗外高架上奔驰的车辆,突然觉得自己好久没写博文了,该动动手了。今天的主题还是分两块,一块是随笔,说说沉默成本,另一块则是把之前python学习的一些笔记整理下发出来。
  有时候当做一个事情已经投入很大一块成本,这时候想放弃就是一件难事,就算知道他是错的。
  举个栗子吧,前天和同事去吃自助,感觉很一般,没那么好吃,但是钱都花了还是自助,不好吃也得吃回本。又比如,有时候等的士,等了20分钟发现这个路段很难打的,但是已经等了这么久了,走了不是白等,干脆继续等下去。这些都是沉没成本!经常困扰我们的问题就是“我们已经投入了这么多了……”“我们已经走了这么远了……”“我们已经牺牲了这么多了……”。纠结于过去的沉没成本很容易让人犹豫不决。
  有时候有些项目,进行了一半,需求、设计全都做完了,编码已经开始了,突然被领导喊停,也就是不纠结与沉没的成本,这也许是对的,这也是领导的决策,但做的人肯定心里还是会耿耿于怀。我也不清楚这些项目坚持下去能否成功,毕竟有的项目中还是有些亮点让我觉得他有价值的。放弃只是出于公司整体策略、人力物力等考虑。
  坚持了最后失败了那是固执不懂变通跪在坚持,中途转向失败了,那就是不够坚持。坚持了成功了,那就是跪在坚持,转向了成功了那就是懂得取舍。可见决策是多么奇妙而又结果导向的事情。
  总之我想说的就是,决策时候别太在乎那块已经投入的成本,单纯判断事情的对错是非去做决定吧。程序员就是烦,这么一句话就balabala了这么多,开始进入正题。
  
  学习python,我找了挺多书的,主要是Head First Python(其实我很喜欢这个系列的书的),昨天伯乐在线的编程大赛的语言识别器,我也用学到的python做了个版本,之后有机会也发出来和大家分享下。
  版本:python2.6
  系统:centos
  
  1、python是一种动态范型的语言。
    比如他的命名可以很灵活:movies = [“了不起的盖茨比”,”环太平洋”,”摩登时代”],不用声明变量类型,这样就定义了一个列表。
   
  2、而列表中可以用的方法很多:
  >>> print(movies)
['\xe4\xba\x86\xe4\xb8\x8d\xe8\xb5\xb7\xe7\x9a\x84\xe7\x9b\x96\xe8\x8c\xa8\xe6\xaf\x94', '\xe7\x8e\xaf\xe5\xa4\xaa\xe5\xb9\xb3\xe6\xb4\x8b', '\xe6\x91\xa9\xe7\x99\xbb\xe6\x97\xb6\xe4\xbb\xa3']

“**打印出列表**
>>> print(movies[0])
了不起的盖茨比

** “打印出列表中某个索引的值**
>>> movies.pop()
'\xe6\x91\xa9\xe7\x99\xbb\xe6\x97\xb6\xe4\xbb\xa3'

**“堆栈推出最尾巴的一个元素**
>>> print(movies)
['\xe4\xba\x86\xe4\xb8\x8d\xe8\xb5\xb7\xe7\x9a\x84\xe7\x9b\x96\xe8\x8c\xa8\xe6\xaf\x94', '\xe7\x8e\xaf\xe5\xa4\xaa\xe5\xb9\xb3\xe6\xb4\x8b']
>>> movies.append("摩登时代")

**“在最尾加上**
>>> print(movies)
['\xe4\xba\x86\xe4\xb8\x8d\xe8\xb5\xb7\xe7\x9a\x84\xe7\x9b\x96\xe8\x8c\xa8\xe6\xaf\x94', '\xe7\x8e\xaf\xe5\xa4\xaa\xe5\xb9\xb3\xe6\xb4\x8b', '\xe6\x91\xa9\xe7\x99\xbb\xe6\x97\xb6\xe4\xbb\xa3']
>>> movies.extend(["god is gril","roma love"])

**“合并上另外一个列表**
>>> print(movies)
['\xe4\xba\x86\xe4\xb8\x8d\xe8\xb5\xb7\xe7\x9a\x84\xe7\x9b\x96\xe8\x8c\xa8\xe6\xaf\x94', '\xe7\x8e\xaf\xe5\xa4\xaa\xe5\xb9\xb3\xe6\xb4\x8b', '\xe6\x91\xa9\xe7\x99\xbb\xe6\x97\xb6\xe4\xbb\xa3', 'god is gril', 'roma love']
>>> movies.remove("roma love")

**“移除指定索引的列表元素**
>>> print(movies)
['\xe4\xba\x86\xe4\xb8\x8d\xe8\xb5\xb7\xe7\x9a\x84\xe7\x9b\x96\xe8\x8c\xa8\xe6\xaf\x94', '\xe7\x8e\xaf\xe5\xa4\xaa\xe5\xb9\xb3\xe6\xb4\x8b', '\xe6\x91\xa9\xe7\x99\xbb\xe6\x97\xb6\xe4\xbb\xa3', 'god is gril']
>>> movies.insert(1,1989)

**“在指定位置插入**
>>> print(movies)
['\xe4\xba\x86\xe4\xb8\x8d\xe8\xb5\xb7\xe7\x9a\x84\xe7\x9b\x96\xe8\x8c\xa8\xe6\xaf\x94', 1989, '\xe7\x8e\xaf\xe5\xa4\xaa\xe5\xb9\xb3\xe6\xb4\x8b', '\xe6\x91\xa9\xe7\x99\xbb\xe6\x97\xb6\xe4\xbb\xa3', 'god is gril']

  另外还有很多方法,比如len(movies)是获取列表的长度,if "god is girl" in movies:可以判断列表中是否有某个值
  
三、说到列表就顺便说map(我也不知道python中怎么叫他,反正我用java习惯这么叫的了)
  translate = {'./langs/eng_com.dic':'English','./langs/de.dic':'Deutsch','./langs/fr.dic':'French','./langs/portugueseU.dic':'PortugueseU','./langs/es.dic':'Spaish'};
  
  这就是一个map,而底层的switch case,其实也就是用这个实现的,比如,translate.get(filename),也就相当于switch(filename) case 'xxx':xxx; case 'yyy' yyy;
  
四、for 循环
  for 目标标示符 in 列表 :
  列表处理代码

注意:python是一个很讲究缩进的程序语言,同级的列表处理代码一定要缩进方式相同。

>>> for movie in movies:
...     print(movie);
...
了不起的盖茨比
1989
环太平洋
摩登时代
god is gril

**python的for循环很灵活,比如我用for data in open(filename):这样data就是文件中每一行的内容,诸如此类的应用例子很多  **
五、while循环
具体使用方式大概类似于for,相比之下,没有特殊操作,都用for

>>>
count = 0;
while count < len(movies):
...  print(movies[count])
...  count=count+1
...
了不起的盖茨比
环太平洋
摩登时代

六、单引号和双引号
  python中单引号和双引号作用相同,如果要打印双引号可以用\字符或者单引号方式
  >>> print('"ddd"')
"ddd"
>>> print("\"ddd")
"ddd

七、大小写
  python是敏感型语言,msg 和MSG是不同的对象
  
八、列表中可以嵌套列表
  >>> movies = ["了不起的盖茨比",2013,["小李二多",["A","B","C"]],"摩登时代",2012,["徐挣",["D","E"]]]
>>> print(movies)
['\xe4\xba\x86\xe4\xb8\x8d\xe8\xb5\xb7\xe7\x9a\x84\xe7\x9b\x96\xe8\x8c\xa8\xe6\xaf\x94', 2013, ['\xe5\xb0\x8f\xe6\x9d\x8e\xe4\xba\x8c\xe5\xa4\x9a', ['A', 'B', 'C']], '\xe6\x91\xa9\xe7\x99\xbb\xe6\x97\xb6\xe4\xbb\xa3', 2012, ['\xe5\xbe\x90\xe6\x8c\xa3', ['D', 'E']]]
>>> print(movies[2][1][1])
B
>>> print(movies[5][1][1])
E

九、if
If 条件:
True处理代码
Else:
False处理代码

**注意,python中的True和False首字母要大写**
十、isinstance
  类似java的instanceof
  >>> isinstance(movies,list)
True

十一、BIF内建函数

比如有open() len() isinstance()等。

用这个命令去查看,dir(__builtins__)

列表中的东西可以用help命令去查看,比如
Help(isinstance)

十二、定义函数
def函数名 (参数):
函数代码组

比如
>>> def printList (theList):
...   for obj in theList:
...     if(isinstance(obj,list)):
...       printList(obj)
...     else:
...       print(obj)
...
>>> printList(movies)
了不起的盖茨比
2013
小李二多
A
B
C
摩登时代
2012
徐挣
D
E


今天就先到这里。可能有点乱,等全部写完以后做个目录吧。

运维网声明 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-374300-1-1.html 上篇帖子: [转]不过这还是仁者见仁智者见智的问题,我支持python 下篇帖子: 搜索引擎–Python文本文件分割、PyLucene建立索引和索引搜索
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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