python 语法基础

全文引自公众号生信修炼手册
https://mp.weixin.qq.com/s/XRLoYCpWEci5Phz5zc_tUg

学一门语言,基础语法一定要扎实。很多入门的编程书籍,都会花大量的篇幅来介绍基础语法,对于毫无编程经验的新手而言,这样的书籍无疑是很友好的,但是对于有编程经验的开发者而言,很多的基础语法是通用的, 只需花费较少的时间浏览下基础语法,将精力集中在语言独有的特征上即可。

在这里推荐几本基础的,适合新手查看的入门书籍

下面是我自己总结的一些基础语法

  1. 变量名称

变量名称由数字,字母,下划线构成,且不能以数字开头
变量名称区分大小写
变量名称不能是语言本身的关键词,比如def等

  1. 注释

单行注释以井号#开头,多行注释以三个单引号'''或者双引号"""开头,用法如下

# 这里是单行注释,独占一行
print('hello wordld')
print('hello world') # 这里是单行注释,放在语句的后面
'''
这里是多行注释
允许多行文本
'''
print('hello wordld')
"""
这里是多行注释
允许多行文本
"""
print('hello wordld')

在python中,单引号与双引号的功能是相同的,为了更加省时省力,一般用单引号,单引号键盘输入更加方便。

  1. 数据类型

变量的基本作用就是存储数据,用法如下

num = 3

num就是变量,=表示赋值,3就是这个变量存储的值。存储的值拥有不同的类型,常见的类型包括以下几种

  • int
  • float
  • string
  • bool

前两种表示数字,其中int表示整数,float表示浮点数,也就是小数; string表示字符串,字符串以单引号或者双引号括起来,bool型只有两种取值,True和False,注意布尔型值的两侧没有引号。

不同类型的数据之间可以转换,用法如下

# 数字转字符串
str(3)
str(3.1)
# 字符串转数字
int('3')
float('3.1')
# 整形转浮点型
float(3)

在python中,有一种特殊的数据类型None,表示空值,没有值,类似R语言中的NULL。

  1. 运算符

针对数字的数学运算,常见的有以下几种

加 +
减 -
乘 *
乘方 **
除  /  
整除 //
取余 %

用法如下

print(3 + 2)    # 5
print(3 - 2)    # 1
print(3 * 2)    # 6
print(3 ** 2)   # 9
print(3 / 2)    # 1.5
print(10 // 3)  # 3
print(3 % 2)    # 1

针对字符串的运算,包括以下几种

  • 字符串连接 +
  • 字符串重复 *
    用法如下
print('abc' + 'def') # abcdef
print('abc' * 3)     # abcabcabc

当我们对变量的值进行运算,然后重新赋值,类似下面这个语句

num = 3
num = num + 2

此时,可以将赋值符号与运算符相结合,进行简写, 用法如下

num += 2  # num = num + 2
num -= 2  # num = num - 2
num *= 2  # num = num * 2
num /= 2  # num = num / 2
num **= 2  # num = num ** 2
num //= 2  # num = num // 2
num %= 2  # num = num % 2

需要注意的是,在其他语言中会有x++, x—`的语句,表示在原来值的基础上加1,在python中不存在这样的用法。

同时针对数字和字符串的比较运算符,包括以下几种

大于 >
小于 <
大于等于 >=
小于等于 <=
不等于 !=
相等 ==

针对布尔值的逻辑运算符,常用于条件判断语句中,包括以下几种

and
or
not

用法如下

3 > 2 and  5 > 3
3 < 2 or   5 > 3
not 3 < 2
  1. 控制结构

控制结构包括条件判断和循环两种,在python中,摒弃了传统的用大括号包围代码块的特点,改用缩进来表示,条件判断对应if语句,写法如下

# 单个if
if x > 3:
    print(1)
# if .. else
if x > 3:
    print(1)
else:
    print(2)
# if ..elif ..else
if x > 3:
    print 1
elif x > 2:
    print 2
elif x > 3:
    print 3
else:
    print 4

循环有for循环和while循环两种,for循环通过成员运算符in来实现,用法如下

letters = ['a', 'b', 'c']
for i in letters:
    print(i)

for循环用于针对每个元素进行相同操作的场景,while循环用于给定条件下的操作,用法如下

while x <= 10:
    x +=1

在python中,针对for和while循环,还加入了else语句,用于循环结束后的在执行一条语句,用法如下

for i in letters:
    print(i)
else:
    print('hello')

简单的循环几乎用不到else分支,但是其实else分支尤其特定的使用场景,后续在深入讨论。

循环还需要控制控制语句,有以下两种

  • 1.跳出循环, break
  • 2.跳过循环, continue
  1. 数据结构

数据结构将基本的数据类型组合起来,方便访问和操作,python常见的数据有以下几种

  • list
  • 元组, tuple
  • 集合,set
  • 字典, dict
    写法如下
letters = ['a', 'b', 'c'] # 方括号表示列表
letters = ('a', 'b', 'c') # 圆括号表示元组
letters = set((['a', 'b', 'c'))  # 集合
letters = {'1' : 'a', '2' : 'b', '3' : 'c' } # 大括号表示字典

数据结构的相关操作是重中之重,后续再深入讨论。

  1. 函数

函数通过def关键词来定义,函数具有函数名称,参数列表,返回值等特征,最基本的用法如下

# 定义
def add(a,  b):
    return(a, b)
# 调用
total = add(2, 3)

关于函数,在python中其实有很多的用法细节,后续在深入讨论。

  1. 模块

模块是别人已经开发测试好的,具备完整功能的代码,通过模块可以大大扩展语言的功能。模块的用法在编程语言中广泛存在。要使用模块,必须先导入模块,导入模块的几种常见语法如下

#  一次性导入模块中的所有方法,简单粗暴
import os
# 和上述用法一样,模块名太长,设置了别名
import numpy as np
# 只导入模块中的某一个函数,按需导入
from os import system

导入模块之后,就可以使用模块中的方法了。python中的模块分为两种,第一种是内置模块,也称为标准库,python安装好之后就可以使用了,第二种是第三方模块,需要单独安装之后才可使用,最常用的安装方式是pip安装,基本用法如下

pip install numpy
  1. 面向对象

python原生支持面向对象的开发功能, 这也是区别于perl等脚本语言的一大特点。对于简单的脚本编程,其实用到面向对象的机会不多,在初学的时候,可以不用花费很多精力在这块。只需记住一点,类的函数称之为方法,其调用方式和普通函数有区别

# python
line.split("\t")
# perl
split /\t/, $line

传统的函数调用先写函数名称,后面是参数,而类的方法在实例化对象的基础上,用点号连接方法名称。Python内置的很多变量类型也是类的实例,所以其操作都是基于类的方法来操作的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349