122-找到一本很好的的Python学习书

刘小泽写于19.6.3 编程练习是一个重点,尤其后期需要个人根据自己需求去处理文本数据时,好的编程能力可以大大提高效率,Python的重要性不用多说,最近在看简明Python教程:https://legacy.gitbook.com/book/lenkimo/byte-of-python-chinese-edition/details,感兴趣的小伙伴可以看一看

值得思考的一句话

构建一项软件设计有两种方式:一种是将软件设计得足够简单以至于明显找不到缺陷;另一种是软件设计得足够复杂以至于找不到明显的缺陷 ——查尔斯·安东尼·理查德·霍尔爵士

Python重要的特性

  • 专注于解决问题的方案,而不是语言本身
  • FLOSS(自由/开放源代码软件)成员之一,分享自由开放
  • 不需要编译成二进制,直接从源代码运行。不必担心如何进行编译,或者如何保证适当的库被正确的链接、加载等步骤,这一切都在内部完成
  • 面向对象(程序结合了数据与功能的对象)
  • 嵌入/扩展:可以将C、C++嵌入,保证程序快速运行,或者希望算法某部分不公开
  • 丰富的库:http://pypi.python.org/pypi

安装

mac直接brew install python3即可,安装成功后利用python3 -V检测版本;

windows的稍微复杂一下,这里不再赘述,可以看书中的介绍

第一步 入门

关于运行python程序

有两种方式:交互式解释器、直接运行源代码

解释器如下:

python3
Python 3.6.3 (v3.6.3:2c5fed86e0, Oct  3 2017, 00:32:08)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello World")
Hello World

退出的话用ctrl/cmd + D 或者exit()

但是,不能每次都一行一行地从解释器中敲,多数情况需要编辑好,然后保存为文件直接运行

选择一款编辑器

这个就像Harry Potter中选择魔杖一样,一款好的编辑器可以帮助我们更轻松地进行python程序的编写。

最基本的要求就是语法高亮,利用不同颜色来区分Python程序中的不同部分

书中推荐:新手可以从 PyCharm开始,专注于学习Python而不是编辑器

基本步骤:

创建项目=》新建Python脚本=》输入代码=》右键"Run"运行

之后找到这个脚本的路径,就可以直接运行了

python3 ~/Library/Preferences/PyCharmEdu2019.1/scratches/scratch.py
Hello World
写代码要注意

Python区分大小写,例如这里的printPrint

另外要确保每一行的第一个字符前面都没空格或制表符

获得帮助

利用内置的help在解释器中可以查询任何函数或语句信息,只需要将它们放在引号中查询,比如help('len') ,退出再按q

基础内容

Python可以利用变量与常量来实现输出更多内容

注释

#这个东西是需要尽可能使用的,比如说明重要的决定、解释重要细节、说明要解决的问题等,可以让自己在未来几个月还能明白这个代码做了什么。保证代码能让六个月后的自己看懂!

字面常量

意思就是"字面意义上的值或者内容”,并且这些内容是不能改变的

数字

两种类型:整数和浮点数,其中浮点数例如:3.23或者52.3E-4,其中E表示10的幂

字符串 string

它是字符(character)的序列(sequence)

单引号

用来指定字符串,其中包含的空格和制表符都会按原样保留

双引号

与单引号一样的作用,其中可以包含单引号,例如:"what's your name?"

三引号

更厉害,可以自由包含单引号、双引号,用来指定多行字符串

格式化

这个有点像linux中shell脚本的$1、$2等等,用于替换每个参数值到格式所在的位置,例如:

age = 20
name = 'haha'
print('{0} was {1} years old'.format(name, age))
print('who is {0}?'.format(name))
# 结果会看到
# haha was 20 years old

它将{0} 对应到了变量name ,也就是format的第一个参数,并且format会自动完成字符串转换的工作

这里注意:python的索引第一位是0

其实,{}中的数字只是一个可选选项,其实还可以这样:

print('{} was {} years old'.format(name, age))
print('who is {}?'.format(name))
关于打印

print一般会在打印的字符结尾加换行符\n,如果不想换行,可以自己指定结尾是'' 表示空白,或者用' '表示空格

# 以空白结尾
print('a',end='')
print('b',end='')
# 结果是ab

# 以空格结尾
print('a',end=' ')
print('b',end=' ')
print('c')
# 结果是a b c
关于转义

例如:想要生成一个包含单引号的字符串,是不能用'what's your name' 这样的书写方式的,因为python看到三个单引号,不知道从哪里开始到哪里结束

于是可以用反斜杠\ 将第二个单引号转义

如果对反斜杠本身进行转义,要使用\\

以上内容均与linux有相似之处

原始字符串

如果存在大量的需要转义的字符,每个都加\有点冗余,于是可以在字符串前加一个r或者R ,例如:r"Newlines are indicated by \n"

标识符命名

第一个字符必须是字母或者下划线;另外区分大小写

Yunze Liu
Yunze Liu
Bioinformatics Sharer

Co-founder of Bioinfoplanet(生信星球)

Next
Previous

Related