热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

搬运工又来了,从自己的logdown博客搬东西过来了。 厦门已入秋,天气已凉,看着窗外高架上奔驰的车辆,突然觉得自己好久没写博文了&#xff0c
搬运工又来了,从自己的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
... 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





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



推荐阅读
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文介绍如何使用 Python 将一个字符串按照指定的行和元素分隔符进行两次拆分,最终将字符串转换为矩阵形式。通过两种不同的方法实现这一功能:一种是使用循环与 split() 方法,另一种是利用列表推导式。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文介绍如何使用 Python 编写程序,检查给定列表中的元素是否形成交替峰值模式。我们将探讨两种不同的方法来实现这一目标,并提供详细的代码示例。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
author-avatar
mobiledu2502868793
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有