python语法基础

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

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

python简明教程 https://bop.mol.uno/ think python https://cycleuser.gitbooks.io/think-python/content/ 廖雪峰的python教程 https://www.liaoxuefeng.com/wiki/1016959663602400

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

1. 变量名称

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

2. 注释

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

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

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

3. 数据类型

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

num = 3

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

  1. int
  2. float
  3. string
  4. bool

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

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

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

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

4. 运算符

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

  1. 加 +
  2. 减 -
  3. 乘 *
  4. 乘方 **
  5. 除 /
  6. 整除 //
  7. 取余 %

用法如下

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

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

  1. 字符串连接 +
  2. 字符串重复 *

用法如下

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中不存在这样的用法。

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

  1. 大于 >
  2. 小于 <
  3. 大于等于 >=
  4. 小于等于 <=
  5. 不等于 !=
  6. 相等 ==

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

  1. and
  2. or
  3. not

用法如下

3 > 2 and  5 > 3
3 < 2 or   5 > 3
not 3 < 2

5. 控制结构

控制结构包括条件判断和循环两种,在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中,针对forwhile循环,还加入了else语句,用于循环结束后的在执行一条语句,用法如下

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

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

循环还需要控制控制语句,有以下两种 1.跳出循环, break 2.跳过循环, continue

6. 数据结构

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

  1. 列表, list
  2. 元组, tuple
  3. 集合,set
  4. 字典, dict

写法如下

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

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

9. 函数

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

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

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

10. 模块

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

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

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

pip install numpy

11. 面向对象

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

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

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

本文分享自微信公众号 - 生信修炼手册(shengxinxiulian),作者:lzyg

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python中函数的基础用法

    python中的内置函数提供了基础功能,在实际开发中,我们需要将这些基础功能进行搭配组合,来有效解决我们的问题。如何将我们自己构建的代码作为一个可复用的工具,最...

    生信修炼手册
  • 使用edgeR进行两组间的差异分析

    edgeR 接受raw count的定量表格,然后根据样本分组进行差异分析,具体步骤如下

    生信修炼手册
  • 使用cell ranger拆分10X单细胞转录组原始数据

    cell ranger是10X genomics公司提供的,专门用于分析10X 单细胞转录组数据的pipeline, 包含了原始数据拆分,表达定量,聚类分析等多...

    生信修炼手册
  • 都说程序员穿衣就是这么丑,你该看看人家硅谷精英!

    昨天,看到一篇题为「程序员为什么都穿得那么丑」的文章,当时简直气炸,心想你凭什么吐槽我们程序员,天天加班写代码已经很辛苦了根本没时间注意着装好嘛!

    一墨编程学习
  • Numpy中的数学和统计方法

    下面的所有统计方法,即可以当做数组的实例方法调用,也可以当做Numpy函数来调用。

    触摸壹缕阳光
  • python 函数

    函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

    py3study
  • R语言︱非结构化数据处理神器——rlist包

    本文作者:任坤,厦门大学王亚南经济研究院金融硕士生,研究兴趣为计算统计和金融量化交易,pipeR,learnR,rlist等项目的作者。

    素质
  • 一文读懂什么是中台?什么是数据中台?

    按照数据咨询公司Thoughtworks首席咨询师王健给出的10个字定义,中台就是:

    CloudBest
  • Image Captioning with RNNs

    0.导语1.下载数据集2.Look at the data3.Vanilla RNN3.1 step forward3.2 step backward3.3 f...

    公众号guangcity
  • 如何快速找到并验证影响因变量Y的自变量X呢?

    声明:本文讨论主题的不是严谨意义上的“因果关系”,而是探讨自变量与因变量的关系(实际上不是真的因果关系),主要关注点在于找到并验证影响(或预测)因变量Y的自变量...

    1480

扫码关注云+社区

领取腾讯云代金券