Li's Bioinfo-Blog
  • |
  • 主页
  • 分类
  • 标签
  • 归档
  • 关于
  • 搜索
Home » Tags

Python

Python基础-(1)初识

print()打印 1 2 3 4 5 6 7 8 print("Hello, world!") #打印多个字符串,默认用空格链接 print("A", "B", "C") print("A", "B", "C",sep=",") #`+`可直接拼接字符串 print("A"+"B","C") #AB C input()取用户输入 1 2 x = int(input("请输入x:")) print(x) 关于python脚本程序 1 2 3 4 5 6 7 8 9 # 方式一:使用shell的python命令显示运行python脚本 python hello.py # 方式二:在python脚本首行指定python解释器,如下所示 #!/usr/bin/env python #然后可执行 chmod a+x hello.py #直接运行 ./hello.py 关于反斜杠\ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ### (1) 转义符 print('Let\'s, go') print("Let's, go") ### (2) 转义转义符:将转义符当作普通的转斜杠字符 # \n 表示换行 print("Hello, \nworld") # 将 `\n`当作普通字符打印 print(r'Hello, \nworld') ### (3) 字符串/表达式/语句换行 print("Hello, \ world!") print \ ("Hello, world!") 赋值语句与序列解包 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #简单用法 x = 1 #序列解包 x, y, z = 1, 2, 3 ## 其实上面表达式右边本质是一个元组序列 print(x,y,z) x, y, z = [1, 2, 3] print(x,y,z) #一般来说左右两边的元素数要相同,但可以使用星号运算符收集多余的值 x, y, *z = 1,2,3,4,5 print(x, y) ## 1 2 x, *y, z = 1,2,3,4,5 print(x, y, z) ## 1 [2, 3, 4] 5

Create:&nbsp;<span title='2022-04-10 00:00:00 +0000 UTC'>2022-04-10</span>&nbsp;|&nbsp;Update:&nbsp;2022-05-14&nbsp;|&nbsp;Words:&nbsp;435&nbsp;|&nbsp;1 min&nbsp;|&nbsp;Lishensuo

Python基础-(2)列表、元组、字符串、字典

关于序列 序列:有顺序的元素排列;第一个元素的索引为0 列表list,元组tuple,字符串str都属于序列;但一般情况下,只有list可修改,后二者不可修改 一、序列通用操作 1、索引–访问元素里的单个元素 indexing 第一个元素的索引为0; 倒数第n个元素的索引为-n 1 2 3 4 greet = 'Hello' greet[0] greet[-1] 'Hello'[0] 2、切片–访问某个范围的多个元素 slicing 需要提供两个索引指定范围的边界。 第一个索引是起始点的编号,第二个索引是边界终点的编号**+1** 1 2 3 4 5 6 7 8 9 numbers = [1,2,3,4,5,6,7,8,9,10] numbers[1:3] # [2, 3] numbers[-5:-3] # [6, 7] numbers[3:] numbers[:9] numbers[:] 3、序列相加/相乘 1 2 3 4 5 # 序列相加(连接) [1,2,3] + [4,5,6] # 序列相乘 'hello' * 3 4、确认是否包含某元素 1 2 3 4 5 'A' in 'ABC' # True 'li' in ['li', 'wang','zhou'] # True 5、补充:关于set集合 集合set内没有重复元素,且没有顺序,所以本质上不属于序列; 可使用set()函数创建集合,或者使用{}创建; 主要用于成员资格检查(类似上面的第4点),以及集合的交、并、补等操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ##创建集合 set(range(5)) # {0, 1, 2, 3, 4} {4,6,1,9,0} # {0, 1, 4, 6, 9} ##成员资格检查 0 in {4,6,1,9,0} # True ##集合操作 a = {1,2,3} b = {1,2,4} c = {1,2} ###(1)交集 a.intersection(b) # 通过函数调用,b可以是list等可迭代对象 (下同) a & b # 通过符号调用,b必须是set对象 (下同) # {1, 2} ###(2)是否子集 c.issubset(a) c <= a # True ###(3)差集 a.difference(b) a-b # {3} ###(4)全集 a.union(b) a | b # {1, 2, 3, 4} 二、列表的特有操作 1、利用索引与切片直接修改列表 索引 1 2 x = [1,2,3] x[1] = 1 切片 1 2 3 4 5 6 7 8 9 10 11 #由于字符串不能修改,需要先将字符串转为列表 names = list('python') names[1:3] = list('YT') #由于赋值的字符串的长度可以与被修改的字符串长度不同,所以可以引申用法 ## 变相的插入 names = list('python') names[1:1] = list('AAA') ## 变相的删除 names = list('python') names[1:3] = [] 2、列表的方法–增删改查 增 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # (1) append: 增加元素到末尾 numbers = [1, 2, 3] numbers.append(4) ##原地修改,无返回值 # (2) extend: 增加列表里的元素到末尾 numbers = [1, 2, 3] numbers.extend([4, 5, 6]) ##原地修改,无返回值 # (3) insert: 在指定索引位置插入元素 numbers = [1, 2, 3] numbers.insert(2, "four") # [1, 2, 'four', 3] ##原地修改,无返回值 删 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # (1) pop: 删除最后一个元素 numbers = [1, 2, 3] numbers.pop() ##原地修改,并返回被删除的值 # (2) remove: 删除指定元素的值 numbers = [1, 2, 3] numbers.remove(1) # [2, 3] ##原地修改,无返回值 # 关于list列表的删除操作,有一个函数`del`支持根据索引删除元素 numbers = [1, 2, 3] del numbers[1] # [1, 3] 改 1 2 3 4 5 6 7 8 9 # (1) reverse: 逆转当前列表元素的顺序 numbers = [1, 2, 3] numbers.reverse() ##原地修改,无返回值 # (2) sort: 顺序排列当前列表的元素, 默认升序排列 numbers = [2, 1, 3] numbers.sort() numbers.sort(reverse=True) 查 1 2 3 4 5 6 7 # (1) count: 查看某一元素的频率 numbers = [1, 2, 2, 3, 3, 3] numbers.count(2) # (2) index: 查看某一元素值的索引 numbers = [1, 2, 3] numbers.index(2) 3、filter()搭配lamda列表筛选 filter()函数包含如下两个参数 ...

Create:&nbsp;<span title='2022-04-10 00:00:00 +0000 UTC'>2022-04-10</span>&nbsp;|&nbsp;Update:&nbsp;2022-05-14&nbsp;|&nbsp;Words:&nbsp;2292&nbsp;|&nbsp;5 min&nbsp;|&nbsp;Lishensuo

Python基础-(3)条件与循环语句

一、条件语句 1、布尔值 在python中,这些值均为视为假:False, None, 0, '',(), [], {}。其余所有可能的值都视为真 1 2 3 4 5 6 7 bool(None) # False bool('') # False bool("anything") # True 2、if语句结构 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 thisnum = 6 ##层级1 if thisnum > 0: print("This number is positive.") ##层级2 if thisnum > 0: print("This number is positive.") else: print("This number is negative.") ##层级3 if thisnum > 0: print("This number is positive.") elif thisnum == 0: print("This number is zero.") else: print("This number is negative.") 3、运算符 and, or, not 1 2 3 4 5 6 7 thisnum = 5 if thisnum <= 9 and thisnum > 0: print("This is a natural number") #也可以使用链式比较 if 0 < thisnum <= 9: print("This is a natural number") 二、for循环语句 1、for语句结构 1 2 3 4 5 6 numebrs = [1,2,3,4,5,6] #等价于 numbers = list(range(0,7)) for number in range(0,7): print(number) 2、迭代方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #(1)迭代字典 d = {'x':1, 'y':2, 'z':3} ##迭代字典的键 for key in d: print(key, 'value is', d[key]) ##迭代字典的每一项 for key, value in d.items(): print(key, 'value is', value) #(2) zip()可缝合多个等长序列,用于迭代 name=['AA',"BB","CC"] age=[12,15,11] list(zip(name, age)) ## [('AA', 12), ('BB', 15), ('CC', 11)] for name,age in zip(name, age): print(name, 'is', age, 'years old') #(3) enumerate()同时迭代索引 strs = ['A', 'B', 'C'] for index, st in enumerate(strs): print(index, st) ## 0 A ## 1 B ## 2 C 3、break/continue break:结束循环 1 2 3 4 5 6 from math import sqrt for n in range(99,0,-1): root = sqrt(n) #平方根 if root == int(root): print(n) break continue:跳过当前循环 1 2 3 4 5 #打印奇数 for i in range(0,9): if i%2==0: continue print(i) 4、for语句创建列表 1 2 3 4 5 6 7 8 9 10 11 12 [x*x for x in range(5)] # [0, 1, 4, 9, 16] ##筛选符合条件的变量x [x*x for x in range(5) if x%2==0] # [0, 4, 16] ##组合两个列表,不同于zip() As = [1,2] Bs = ['a','b'] [(x, y) for x in As for y in Bs] # [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')] 三、其它语句 pass 占位符,什么都不做; ...

Create:&nbsp;<span title='2022-04-10 00:00:00 +0000 UTC'>2022-04-10</span>&nbsp;|&nbsp;Update:&nbsp;2022-04-10&nbsp;|&nbsp;Words:&nbsp;682&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo

Python基础-(4)函数Function

1、定义函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # def语句定义函数 def hello(name): print("Hello,", name) # 添加return语句有两个作用 ## (1) 表示函数的结束 ## (2) 指定函数的返回值 def square(number): res = number*number return res square(4) # 可以在函数开头编辑一个文档字符串,用以解释函数功能,可作为函数的一部分储存起来 def square(number): 'Calaulate the square of the input number' res = number*number return res help(square) #可以在帮助文档里找到这个字符串 # 定义多个参数 def hello(time,name): print("Good",time, ",", name) hello(name="LI",time="morning") 2、参数类型 (1)在定义函数时,可以设置参数的默认值。但需要注意的是这类参数需要放到最后。 ...

Create:&nbsp;<span title='2022-04-10 00:00:00 +0000 UTC'>2022-04-10</span>&nbsp;|&nbsp;Update:&nbsp;2022-04-10&nbsp;|&nbsp;Words:&nbsp;580&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo

Python基础-(5)类Class与实例Instance

面向对象的设计思想是抽象出Class(类),根据Class创建Instance(实例)。 类是一个相对抽象的概念,而实例是其具体化。例如将学生视为类,那么李华,王丽等具体的学生就是实例。 ...

Create:&nbsp;<span title='2022-04-10 00:00:00 +0000 UTC'>2022-04-10</span>&nbsp;|&nbsp;Update:&nbsp;2022-05-29&nbsp;|&nbsp;Words:&nbsp;1423&nbsp;|&nbsp;3 min&nbsp;|&nbsp;Lishensuo

Python基础-(6)捕捉异常Error

1、什么是异常 异常通常是指因各种原因的出错程序代码不能正常运行,从而返回报错信息,中断程序。 报错信息由两部分组成(1)Traceback:追溯出错的源头(2)异常所属的类,以及提示的上下文。 ...

Create:&nbsp;<span title='2022-04-10 00:00:00 +0000 UTC'>2022-04-10</span>&nbsp;|&nbsp;Update:&nbsp;2022-05-30&nbsp;|&nbsp;Words:&nbsp;813&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo

Python基础-(7)模块/包Module

1、加载模块 模块简单来说是用来定义函数、类、变量的python脚本文件。 模块的分类 根据来源不同:可分为内置模块、第三方模块以及自建模块。 无论哪一种模块,都需要放在正确的路径下,让python可以找到,然后才可以成功加载。 ...

Create:&nbsp;<span title='2022-04-10 00:00:00 +0000 UTC'>2022-04-10</span>&nbsp;|&nbsp;Update:&nbsp;2022-04-10&nbsp;|&nbsp;Words:&nbsp;928&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo

Python基础-(8)常用基础模块Module

1. sys 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ##(1) sys.argv 给脚本传参 #如下定义一个sys.py脚本 #!/usr/bin/env python import sys print(sys.argv[0]) #第0个参数为脚本名 print(sys.argv[1]) python sys.py first # sys.py # first ##(2) sys.path 一个列表,包含要在其中查找模块的目录名称 sys.path.append() 2. os 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ## (1) os.system 执行shell命令 os.system("pwd") os.system("ls -lh") ## (2) os.path 路径操作相关 os.path.abspath(".") #返回绝对路径 os.path.basename("/home/test/file.txt") #单独返回文件名 os.path.dirname("/home/test/file.txt") #单独返回路径名 os.path.split("/home/test/file.txt") #返回由文件名和路径名组成的元组 #('/home/test', 'file.txt') os.path.splitext("file.txt") #将文件名与后缀名分开 #('file', '.txt') os.path.exists("/home/test/file.txt") #判断文件或者目录是否存在 #False ## 此外os模块还支持对目录、文件的常规操作,例如创建、删除、重命名等 3. time 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 import time time.sleep(3) #解释器等待指定秒数 time.time() #当前时间至新纪元的秒数(时间戳) # 1649984110.885341 time.localtime() #默认返回当前时间戳的时间元组 time.localtime(100000000) #返回指定时间戳时间元组 # time.struct_time(tm_year=1973, tm_mon=3, tm_mday=3, tm_hour=17, tm_min=46, tm_sec=40, tm_wday=5, tm_yday=62, tm_isdst=0) tuple(time.localtime(100000000)) # 返回tuple # (1973, 3, 3, 17, 46, 40, 5, 62, 0) ###将时间元组格式化输出 time.asctime(time.localtime()) # 'Fri Apr 15 08:59:43 2022' ###(1)按自定义格式输出 #常见的item有: %Y-年, %m-月, %d-日, %H-时, %M-分, %S-秒, %a-星期几, %b-英文月份 #全部的item参考:https://www.runoob.com/python/python-date-time.html time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # '2022-04-15 09:12:29' time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) # 'Fri Apr 15 09:12:49 2022' ###(2)将格式字符串转换为时间戳 a = "2022-04-15 09:12:29" time.mktime(time.strptime(a,"%Y-%m-%d %H:%M:%S")) # 1649985149.0 关于时间元组的格式: ...

Create:&nbsp;<span title='2022-04-17 00:00:00 +0000 UTC'>2022-04-17</span>&nbsp;|&nbsp;Update:&nbsp;2022-04-17&nbsp;|&nbsp;Words:&nbsp;2529&nbsp;|&nbsp;6 min&nbsp;|&nbsp;Lishensuo

Python基础-(9)文本读写与pickle保存

1、打开文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ## (1) r 只能读取。若文件不存在,会报错。 f = open("test.txt", "r") #由于默认mode="r", 等价于 f = open("test.txt") ##文件对象f具有读取的相关方法 ## (2) w 只能写入。若文件已存在,会覆盖原有内容;若不存在会新建。 f = open("test.txt", "w") ##文件对象f具有写入的相关方法 ## (3) x 只能写入。若文件已存在,会报错;若不存在会新建。 ## (4) a 只能写入。若文件已存在,会追加;若不存在会新建。 ## (5) r+ 可读可写。若文件不存在会报错;已存在会追加。 f = open("test.txt", "r+") ##文件对象f具有读取和写入的相关方法 ## (6) w+ 可读可写。若文件不存在会新建;已存在会覆盖。 f = open("test.txt", "w+") 在打开文件,进行读取/写入等操作后,待退出时,记得f.close()。 ...

Create:&nbsp;<span title='2022-04-17 00:00:00 +0000 UTC'>2022-04-17</span>&nbsp;|&nbsp;Update:&nbsp;2022-09-20&nbsp;|&nbsp;Words:&nbsp;1158&nbsp;|&nbsp;3 min&nbsp;|&nbsp;Lishensuo

Python-Dunder双下划线特殊方法

特殊类变量 在定义类时,Python 提供了一些特殊方法(也称为“魔术方法”或“dunder 方法”,因为它们的名称前后都有双下划线 __, double underscore),这些方法用于为类定义特殊行为。 ...

Create:&nbsp;<span title='2024-10-16 00:00:00 +0000 UTC'>2024-10-16</span>&nbsp;|&nbsp;Update:&nbsp;2024-10-16&nbsp;|&nbsp;Words:&nbsp;1027&nbsp;|&nbsp;3 min&nbsp;|&nbsp;Lishensuo
Next Page »
© 2025 Li's Bioinfo-Blog Powered by Hugo & PaperMod
您是本站第 位访问者,总浏览量为 次