Python 基础总结篇
变量及数据类型
Numbers数字分为:int整型,long长整型,float浮点型,complex复数
String字符串由数字、字母、下划线组成的一串字符,用于表示文本的数据类型
bool布尔型:True,False,用于做判断(True实际值是1,False实际值是0)
List列表,支持字符,数字,字符串以包含列表(即嵌套),用[]标识,有序对象
Tuple元祖,用()标识,不能二次赋值,可以理解成不可变的列表(只读列表),有序对象
Dict字典,用{}标识,由索引(key)和它对应的值value组成,无序对象字
简单的数据类型转换方法
- int(x)函数:将x转为整数,如果是四舍五入则是round(x)函数
- float(x)函数:将x转为浮点数
- str(x)函数:将x转为字符串
- dict(x)函数: 将x转为字典 #dic = dict(m = 10 ,n = 'aa', h = [1,2,3]) 或 lst1=[("a","fff"),("b","ggg")] →dic1 = dict(lst1)→{'a': 'fff', 'b': 'ggg'}
序列及字符串(list/str)
序列及通用操作
- print(lst1+lst2) # "+":序列的链接
- print(lst1*3,lst2*2) # "*":序列重复
- print(lst[0],lst[2],lst[9]) # 索引从0开始,eg lst[2]中,下标索引是2,指向lst的第3个值
- print(lst[-1]) # 索引-1代表最后一个值
- print(lst[2:5]) # 切片可以理解成列表的值区间,且是一个左闭右开区间,这里lst[2:5]代表的区间是:索引2的值 - 索引4的值
- print(lst[0:5:2]) # List[i:j:n]代表:索引i - 索引j,以n为步长
列表的特征
- 可包含任意类型的对象:数值、字符串、列表等
- 通过下标索引访问序列中的值 → 序列的顺序是不能改变的,通过索引来定位列表的元素
- 可随意变换列表长度,相当于随意指定新的列表
- 可嵌套
- 可原位改变
- 列表生成器:range()是生成器,指向了一个范围 #range(0,10,2)代表指向了0,2,4,6,8这几个值,最后的2代表步长
可变列表list常用操作
- list.append() 添加元素
- 添加多个元素用.extend()方法:用新列表扩展原来的列表(直接拓展)
- .remove方法:移除列表中某个值的第一个匹配项
- del语句:删除list的相应索引值
- lst.clear():移除所有值
- .insert(i,m)方法:在索引i处插入m,这里索引i代表第(i+1)个值
- .copy()方法:复制一个新的列表(分别指向两个列表) 与字典相同
- .sort():默认升序排序/字母顺序(参数reverse:反向排序,针对数字)
- 函数sorted() :排序并复制
字符串相关注释
- 双引号单引号无区别,但文本中有引号的时候要相互交替使用
- 需要多行字符串时候用三引号 ''' ''',""" """
转义字符
- \',\" :分别输出单引号,双引号
- \n:空行
- 输出\,所以文件路径用“/”或者“\\”
- 延伸-数据读写# 本地文件的界定:指向一个本地存储的文件,是一个链接或者一个映射
- path1 = 'C:/Users/Hjx/Desktop/text.txt' # 单个反斜杠:/
- path2 = 'C:\\Users\\Hjx\\Desktop\\text.txt' # 两个斜杠:\\(第一个\是转义符)
- path3 = r'C:\Users\Hjx\Desktop\text.txt' # r用于防止字符转义
序列通用功能
- in/not in :判断是否存在
- 文本连接:print('我很帅' + "没错"
- 文本复制:print('handsome '*4)
- .index()方法:print(st.index('g'))
- 计算字符串长度:len()
字符串的常用功能
- .replace(old,new,count):修改字符串,count:更换几个
- .split(obj):拆分字符串,生成列表
- .join():连接字符串,对象为列表
- .startswith(“xie”) 判断是否以“xie”开头;str.endswith (“xie”) 判断是否以“xie”结尾
- .upper() 全部大写
- .lower() 全部小写
- .swapcase() 大小写互换
- .capitalize() 首字母大写
- .isnumeric() 如果 string 只包含数字则返回 True,否则返回 False
- .isalpha() 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
- .rstrip() 删除字符末尾的空格
- %s %i %f都是格式化字符串,s/i/f分别代表插入字符串的源数据类型:整型/字符型/浮点型
- %+.2f 输出两位小数并显示加号 %e %E
- %g 科学计数法小数位数少的时候自动识别用浮点数,数据复杂的时候自动识别用科学计数法
- # 更强大的格式化方法.format
- print("User ID: {0}".format("root"))
- print("{} 呵呵 {}".format("a","b"))
- # {} 这里代表占位符,其中可以有数字也可以没有
- print("{}{}{}".format('a','b','c'),'\n',
- "{0}{1}{2}{0}".format('a','b','c'),'\n')
- #print("{}{}{}{}".format('a','b','c'))
- # {}和{0}的区别:都是占位符,后者有了明确指定
- print("我的工作是{work}".format(work = '设计'))
- # 也可以用变量来指示
更强大的格式化方法.format
字典(dict)
字典的特点
- 键值对,一定共同出现,不能只有一个
- 不允许同一个键出现两次:创建时如果同一个键被赋值两次,后一个值会被记住
- key必须是字符串,value则可以是任意对象:数值,字符串,序列,字典
- 字典是一个无序集合,序列由于没有key来做对应,所以以顺序来对应值
- dic = {'var1':1, 'var2':'hello', 'var3':[1,2,3], 'var4':{'a':1,'b':2}}
- 任意添加元素:dic['var5'] = '添加一个值'
- 任意修改元素:dic['var4'] = '任意修改其中一个值'
- 任意删除元素:del dic['var1'] 删除字典 del dic
字典常用操作
- .update() 更新/合并一个字典,把第二个字典合并到第一个字典,改变了第一个字典
- .copy() 复制一个新的字典 与列表相同
- in / not in 判断是否包含,这里的判断对象是key
- len() 字典个数判断
字典的元素访问
- dic = {'a':1, "b":2, "c":3}
- print(dic['a'])
- #print(dic[1]) # 不能用序列的索引方式
- # 字典里面也就同样的意思,但字典没有顺序,以key来作为指向,所以指向的key必须存在
- poi = {'name':'shop', 'city':'shanghai', 'information':{'address':'somewhere', 'num':66663333}}
- print(poi['information']['address'])
- # 对于嵌套字典,输出嵌套内容,通过重复指向来输出
- print(poi.get('name'))
- print(poi.get('type',print('nothing')))
- # .get(key)方法:直接查看key的value,如果没有相应key则返回None,添加print参数可以多返回一个值
- print(poi.keys(),type(poi.keys()))
- print(list(poi.keys()))
- # .keys()方法:输出字典所有key,注意这里的输出内容格式是视图,可以用list()得到key的列表,类似range()
- print(poi.values(),type(poi.values()))
- print(list(poi.values()))
- # .values()方法:输出字典所有values,原理同.keys()方法
- print(poi.items(),type(poi.items()))
- print(list(poi.items()))
- # .items()方法:输出字典所有items(元素),原理同.keys()方法
字典的元素遍历
- poi = {'name':'shop', 'city':'shanghai', 'information':{'address':'somewhere', 'num':66663333}}
- #前三项输出key 后两项输出value
- for key in poi.keys():
- print(key)
- for keys in poi.keys():
- print(keys)
- for values in poi:
- print(values)
- for value in poi.values():
- print(value)
- for values in poi:
- print(poi[values])
条件及循环语句(if,while,for)
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块
基础函数
- 输入函数 input() 注:input()返回结果都为字符串,如果需要变为数字则用到int()/float()
- 两种条件判断:if-else ------- 多种条件判断:if-elif-...-else
- 单语句多条件判断:or and 注: or(满足其1)and(同时满足)
- for循环 可以遍历任何序列的项目,如一个列表或者一个字符串。 (循环套循环,注意:尽量不要多于3个嵌套)
- while循环 执行语句可以是单个语句或语句块,判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。当判断条件假false时,循环结束。 ---- -while-else语句
循环控制语句
- break:在语句块执行过程中终止循环,并且跳出整个循环
- continue:在语句块执行过程中跳出该次循环,执行下一次循环
- pass:pass是空语句,是为了保持程序结构的完整性
定义函数(def)
基础理解
- return语句退出函数,并返回一个表达式。不带参数值的return语句返回None
- 默认参数 可在定义f(x,y=2)设置默认参数
- 可变参数 f(*x) 加*则为可变参数 注:默认会把可变参数传入一个元祖
- 局部与全局变量:定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
- 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中
- global x 将x定义为全局变量
- 匿名函数Lambda lambda作为匿名函数,是不需要函数名的 → 需要一个函数 如:f = lambda a,b,c:a+b+c 只能处理一行
模块与包
基础使用
- print(包.__file__)查看现有包所在路径
- 包名.path.append('C:/Users/Hjx/Desktop/') 改路径
- import 调用包 as 简化名
- 包. 使用包内函数
- from ... import ... 调用部分
基础模块
- # python标准模块 —— random随机数
- import random
- x = random.random()
- y = random.random()
- print(x,y*10)
- # random.random()随机生成一个[0:1)的随机数
- m = random.randint(0,10)
- print(m)
- # random.randint()随机生成一个[0:10]的整数
- st1 = random.choice(list(range(10)))
- st2 = random.choice('abcdnehgjla')
- print(st1,st2)
- # random.choice()随机获取()中的一个元素,()种必须是一个有序类型
- lst = list(range(20))
- sli = random.sample(lst,5)
- print(sli)
- # random.sample(a,b)随机获取a中指定b长度的片段,不会改变原序列
- lst = [1,3,5,7,9,11,13]
- random.shuffle(lst)
- print(lst)
- # random.shuffle(list)将一个列表内的元素打乱
- # python标准模块 —— time时间模块
- import time
- for i in range(2):
- print('hello')
- time.sleep(1)
- # time.sleep()程序休息()秒
- print(time.ctime())
- print(type(time.ctime()))
- # 将当前时间转换为一个字符串
- print(time.localtime())
- print(type(time.localtime()))
- # 将当前时间转为当前时区的struct_time
- # wday 0-6表示周日到周六
- # ydat 1-366 一年中的第几天
- # isdst 是否为夏令时,默认为-1
- print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
- # time.strftime(a,b)
- # a为格式化字符串格式
- # b为时间戳,一般用localtime()
- %y 两位数的年份表示(00-99)
- %Y 四位数的年份表示(000-9999)
- %m 月份(01-12)
- %d 月内中的一天(0-31)
- %H 24小时制小时数(0-23)
- %I 12小时制小时数(01-12)
- %M 分钟数(00=59)
- %S 秒(00-59)
- %a 本地简化星期名称
- %A 本地完整星期名称
- %b 本地简化的月份名称
- %B 本地完整的月份名称
- %c 本地相应的日期表示和时间表示
- %j 年内的一天(001-366)
- %p 本地A.M.或P.M.的等价符
- %U 一年中的星期数(00-53)星期天为星期的开始
- %w 星期(0-6),星期天为星期的开始
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称
- %% %号本身
基础模块
数据读写
基础操作
- 本地文件的界定:指向一个本地存储的文件,是一个链接或者一个映射 (详情见序列及字符串-转义字符延伸)
- 读取:open('路径', '模式', enconding = '编码' )
- 模式:r:读取文件,默认;w:写入;rw:读取+写入;a:追加
- 简答的读取方法:.read() → 读取后,光标将会留在读取末尾
- .readline() 读取行
- 遍历前20个文件:for语句+f.readlines()[0:20]
- .seek(0) 移动光标 0初始
- .close() 关闭文件链接
- 在申明了目录之后,就可以直接输出文件名了 → 相对路径
- # 存储:pickle.dump(obj, file, [,protocol])
- import pickle
- data = {'a':[1,2,3,4], 'b':('string','abc'), 'c':'hello'}
- print(data)
- # 创建一个字典变量data
- pic = open( 'C:\\Users\\Hjx\\Desktop\\data.pkl', 'wb')
- # 以二进制来存储:rb, wb, wrb, ab
- pickle.dump(data,pic)
- pic.close()
- # 将一个字典数据存成了pkl文件
- # 读取:pickle.load(file)
- f = open( 'C:\\Users\\Hjx\\Desktop\\data.pkl', 'rb')
- st = pickle.load(f)
- print(st)
- # 直接读取pkl文件内的数据,该数据为一个字典
储存和读取pkl文件
- # 文件写入 - write
- path = 'C:\\Users\\Hjx\\Desktop\\test_write.txt'
- f = open(path, 'w', encoding = 'utf8')
- f.write('hello world!')
- f.close()
- # 执行后直接创建“test_write.txt”文件,并写入“hello world!”
- #写入列元素-.writelines(list)
- path = 'C:\\Users\\Hjx\\Desktop\\'
- f = open(path + 'test_write2.txt', 'w', encoding = 'utf8')
- lst = ['a','b','c','d','e']
- for i in range(len(lst)):
- lst[i] = lst[i] + '\n'
- f.writelines(lst)
- f.close()
- # 通过遍历给每个元素最后加上"\n"
写入/写入列
基础模块
- # os模块:系统模块 - 常用命令
- import os # 导入模块
- print(os.name) # 输出字符串指示正在使用的平台。如果是window 则用'nt'表示,对Linux/Unix用户,它是'posix'。
- print(os.getcwd()) # 函数得到当前工作目录,即当前Python脚本工作的目录路径。
- print(os.listdir()) # 返回指定目录下的所有文件和目录名。
- #os.chdir('C:\\Users\\Hjx\\Desktop\\' ) # 切换到目标路径
- #print(os.getcwd())
- #os.remove('text2.txt') # 删除一个文件
- print(os.path.split('C:\\Users\\Hjx\\Desktop\\text.txt')) # 函数返回一个路径的目录名和文件名
- print(os.path.exists('C:\\Users\\Hjx\\Desktop\\heheh.txt'))
- # 用来检验给出的路径是否真地存在,这里不存在改文件故False,但路径存在故True
OS模块
Python 基础总结篇的更多相关文章
- Python 基础学习篇
注:技术尚浅,时间匆忙,如有错误或者不当之处值得商榷的,请留言,吾必思而改之. 第一篇 :Python基础- 安装/变量/输入/及循环语句使用 第二篇: Python基础- 常用数据类型 第三篇: ...
- python基础-第二篇-基本数据类型
一.运算符 1.算数运算: 算数运算符相信大家都不陌生吧,尤其是加减乘除,好!那我就带着大家看看最后三个,这三个到底是干什么玩意的? %,取两数相除的余数,看图: **,x的多少次幂,看图: //,取 ...
- python基础总结篇——使用Mysql
python操作Mysql,很方便,使用的MySQLdb的库,基本的操作如下: 查询: try: conn = MySQLdb.connect(host=self.ip, user=self.user ...
- Python基础-函数篇
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 函数与函数式编程 1.面向对象: 华山派-- ...
- Python基础第二篇
一.三元运算 if True: name='a' else: name='b' #上面的代码用三元运算表示: name="a" if True else "b" ...
- Python基础第一篇
一.第一句python代码 1.python执行过程:1.加载内存-词法分析-语法分析-编译-执行 2.创建hello.py文件,输入内容 #!/usr/bin/env python print &q ...
- python基础-安装篇
1.安装之前我们要先去python的官网下载python的安装包 下载地址:https://www.python.org/downloads/ Python 官网有两个版本一个是3.5.2(最新版)一 ...
- Python基础第一篇-------python的介绍
一.python的介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本 ...
- python基础-第九篇-9.1初了解Python线程、进程、协程
了解相关概念之前,我们先来看一张图 进程: 优点:同时利用多个cpu,能够同时进行多个操作 缺点:耗费资源(重新开辟内存空间) 线程: 优点:共享内存,IO操作时候,创造并发操作 缺点:抢占资源 通过 ...
随机推荐
- 子进程回收资源两种方式,僵尸进程与孤儿进程,守护进程,进程间数据隔离,进程互斥锁,队列,IPC机制,线程,守护线程,线程池,回调函数add_done_callback,TCP服务端实现并发
子进程回收资源两种方式 - 1) join让主进程等待子进程结束,并回收子进程资源,主进程再结束并回收资源. - 2) 主进程 “正常结束” ,子进程与主进程一并被回收资源. from multipr ...
- linux命令行常用光标移动快捷键(转)
转自:https://www.cnblogs.com/aslongas/p/5899586.html Linux 命令行快捷键 涉及在linux命令行下进行快速移动光标.命令编辑.编辑后执行历史命令. ...
- Spring 中的异常处理
工作中遇到这样的同事,问他活干完吗,他说开发好了,结果测试时发现各种异常情况未处理,联调测试时各种未知错误,最后联调完成比他预期的两倍工作量还多.这样的开发如果是新人还可以原谅,如果有工作经验且出现多 ...
- nowcoder911L 最优子区间
题目链接 思路 用\(f(i,j)\)表示前i个元素,以i为右端点,j为左端点时的答案. 用个"区间修改,单点查询"的线段树维护出第二维.在从左往右枚举i的过程中.将\([lst_ ...
- Ztree + bootstarp-table 使用
Ztree + bootstarp-table 使用 一. Ztree 1.引入js/css文件 Ztree官网 <!--ztree--> <link rel="sty ...
- [LeetCode] 327. Count of Range Sum 区间和计数
Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive.Ra ...
- 微信小程序前端调用后台方法并获取返回值
wxml代码 <wxs src="../../wxs/string.wxs" module="tools" /> <!-- 调用tools.i ...
- [转载]3.15 UiPath图片操作保存图片的介绍和使用
一.保存图像 (Save Image)的介绍 可以将图像保存到磁盘的一种活动 二.保存图像 (Save Image)在UiPath中的使用 1.打开设计器,在设计库中新建一个Sequence,为序列命 ...
- SpringBoot+EventBus使用教程(二)
简介 继续上篇,本篇文章介绍如何集成spring-boot-starter-guava-eventbus使用EventBus,最新的版本好像已经不叫spring-boot-starter-guava- ...
- 1+x证书《Web前端开发》等级考试样题
Web前端开发初级理论考试样题2019 http://blog.zh66.club/index.php/archives/149/ Web前端开发初级实操考试样题2019 http://blog.zh ...