`
303178394
  • 浏览: 36354 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

沉默成本,跪在坚持----Java程序员学Python学习笔记(一)

阅读更多
  搬运工又来了,从自己的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


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





 

2
4
分享到:
评论
5 楼 303178394 2013-09-27  
kanme818 写道
303178394 写道
kanme818 写道
这不是head first python第一章么,楼主还是一口气看完这本书吧。

看的差不多了,都是写成word,慢慢的搬博客,顺便当复习。

刚开始看

PYTHON篇感觉没head first design的对象村有意思 整个系列还是挺不错的,都是很轻松的图文学习
4 楼 kanme818 2013-09-27  
303178394 写道
kanme818 写道
这不是head first python第一章么,楼主还是一口气看完这本书吧。

看的差不多了,都是写成word,慢慢的搬博客,顺便当复习。

刚开始看
3 楼 303178394 2013-09-27  
kanme818 写道
这不是head first python第一章么,楼主还是一口气看完这本书吧。

看的差不多了,都是写成word,慢慢的搬博客,顺便当复习。
2 楼 冬天秋天 2013-09-27  
有时候当做一个事情已经投入很大一块成本,这时候想放弃就是一件难事,就算知道他是错的。
1 楼 kanme818 2013-09-27  
这不是head first python第一章么,楼主还是一口气看完这本书吧。

相关推荐

Global site tag (gtag.js) - Google Analytics