变量及数据类型

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)

序列及通用操作

  1. print(lst1+lst2) # "+":序列的链接
  2. print(lst1*3,lst2*2) # "*":序列重复
  3. print(lst[0],lst[2],lst[9]) # 索引从0开始,eg lst[2]中,下标索引是2,指向lst的第3个值
  4. print(lst[-1]) # 索引-1代表最后一个值
  5. print(lst[2:5]) # 切片可以理解成列表的值区间,且是一个左闭右开区间,这里lst[2:5]代表的区间是:索引2的值 - 索引4的值
  6. 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 科学计数法小数位数少的时候自动识别用浮点数,数据复杂的时候自动识别用科学计数法
    1. # 更强大的格式化方法.format
    2.  
    3. print("User ID: {0}".format("root"))
    4. print("{} 呵呵 {}".format("a","b"))
    5. # {} 这里代表占位符,其中可以有数字也可以没有
    6.  
    7. print("{}{}{}".format('a','b','c'),'\n',
    8. "{0}{1}{2}{0}".format('a','b','c'),'\n')
    9. #print("{}{}{}{}".format('a','b','c'))
    10. # {}和{0}的区别:都是占位符,后者有了明确指定
    11.  
    12. print("我的工作是{work}".format(work = '设计'))
    13. # 也可以用变量来指示

    更强大的格式化方法.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() 字典个数判断

字典的元素访问

  1. dic = {'a':1, "b":2, "c":3}
  2. print(dic['a'])
  3. #print(dic[1]) # 不能用序列的索引方式
  4. # 字典里面也就同样的意思,但字典没有顺序,以key来作为指向,所以指向的key必须存在
  5.  
  6. poi = {'name':'shop', 'city':'shanghai', 'information':{'address':'somewhere', 'num':66663333}}
  7. print(poi['information']['address'])
  8. # 对于嵌套字典,输出嵌套内容,通过重复指向来输出
  9.  
  10. print(poi.get('name'))
  11. print(poi.get('type',print('nothing')))
  12. # .get(key)方法:直接查看key的value,如果没有相应key则返回None,添加print参数可以多返回一个值
  13.  
  14. print(poi.keys(),type(poi.keys()))
  15. print(list(poi.keys()))
  16. # .keys()方法:输出字典所有key,注意这里的输出内容格式是视图,可以用list()得到key的列表,类似range()
  17.  
  18. print(poi.values(),type(poi.values()))
  19. print(list(poi.values()))
  20. # .values()方法:输出字典所有values,原理同.keys()方法
  21.  
  22. print(poi.items(),type(poi.items()))
  23. print(list(poi.items()))
  24. # .items()方法:输出字典所有items(元素),原理同.keys()方法

字典的元素遍历

  1. poi = {'name':'shop', 'city':'shanghai', 'information':{'address':'somewhere', 'num':66663333}}
  2. #前三项输出key 后两项输出value
  3. for key in poi.keys():
  4. print(key)
  5.  
  6. for keys in poi.keys():
  7. print(keys)
  8.  
  9. for values in poi:
  10. print(values)
  11.  
  12. for value in poi.values():
  13. print(value)
  14.  
  15. for values in poi:
  16. 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 ... 调用部分

基础模块

  1. # python标准模块 —— random随机数
  2.  
  3. import random
  4.  
  5. x = random.random()
  6. y = random.random()
  7. print(x,y*10)
  8. # random.random()随机生成一个[0:1)的随机数
  9.  
  10. m = random.randint(0,10)
  11. print(m)
  12. # random.randint()随机生成一个[0:10]的整数
  13.  
  14. st1 = random.choice(list(range(10)))
  15. st2 = random.choice('abcdnehgjla')
  16. print(st1,st2)
  17. # random.choice()随机获取()中的一个元素,()种必须是一个有序类型
  18.  
  19. lst = list(range(20))
  20. sli = random.sample(lst,5)
  21. print(sli)
  22. # random.sample(a,b)随机获取a中指定b长度的片段,不会改变原序列
  23.  
  24. lst = [1,3,5,7,9,11,13]
  25. random.shuffle(lst)
  26. print(lst)
  27. # random.shuffle(list)将一个列表内的元素打乱
  28.  
  29. # python标准模块 —— time时间模块
  30.  
  31. import time
  32.  
  33. for i in range(2):
  34. print('hello')
  35. time.sleep(1)
  36. # time.sleep()程序休息()秒
  37.  
  38. print(time.ctime())
  39. print(type(time.ctime()))
  40. # 将当前时间转换为一个字符串
  41.  
  42. print(time.localtime())
  43. print(type(time.localtime()))
  44. # 将当前时间转为当前时区的struct_time
  45. # wday 0-6表示周日到周六
  46. # ydat 1-366 一年中的第几天
  47. # isdst 是否为夏令时,默认为-1
  48.  
  49. print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
  50. # time.strftime(a,b)
  51. # a为格式化字符串格式
  52. # b为时间戳,一般用localtime()
  53.  
  54. %y 两位数的年份表示(00-99
  55.  
  56. %Y 四位数的年份表示(000-9999
  57.  
  58. %m 月份(01-12
  59.  
  60. %d 月内中的一天(0-31
  61.  
  62. %H 24小时制小时数(0-23
  63.  
  64. %I 12小时制小时数(01-12
  65.  
  66. %M 分钟数(00=59
  67.  
  68. %S 秒(00-59
  69.  
  70. %a 本地简化星期名称
  71.  
  72. %A 本地完整星期名称
  73.  
  74. %b 本地简化的月份名称
  75.  
  76. %B 本地完整的月份名称
  77.  
  78. %c 本地相应的日期表示和时间表示
  79.  
  80. %j 年内的一天(001-366
  81.  
  82. %p 本地A.M.或P.M.的等价符
  83.  
  84. %U 一年中的星期数(00-53)星期天为星期的开始
  85.  
  86. %w 星期(0-6),星期天为星期的开始
  87.  
  88. %W 一年中的星期数(00-53)星期一为星期的开始
  89.  
  90. %x 本地相应的日期表示
  91.  
  92. %X 本地相应的时间表示
  93.  
  94. %Z 当前时区的名称
  95.  
  96. %% %号本身

基础模块


数据读写

基础操作

  • 本地文件的界定:指向一个本地存储的文件,是一个链接或者一个映射  (详情见序列及字符串-转义字符延伸)
  • 读取:open('路径', '模式', enconding = '编码' )
  • 模式:r:读取文件,默认;w:写入;rw:读取+写入;a:追加
  • 简答的读取方法:.read() → 读取后,光标将会留在读取末尾
  • .readline() 读取行
  • 遍历前20个文件:for语句+f.readlines()[0:20]
  • .seek(0)  移动光标 0初始
  • .close()  关闭文件链接
  • 在申明了目录之后,就可以直接输出文件名了 → 相对路径
    1. # 存储:pickle.dump(obj, file, [,protocol])
    2.  
    3. import pickle
    4.  
    5. data = {'a':[1,2,3,4], 'b':('string','abc'), 'c':'hello'}
    6. print(data)
    7. # 创建一个字典变量data
    8.  
    9. pic = open( 'C:\\Users\\Hjx\\Desktop\\data.pkl', 'wb')
    10. # 以二进制来存储:rb, wb, wrb, ab
    11.  
    12. pickle.dump(data,pic)
    13. pic.close()
    14. # 将一个字典数据存成了pkl文件
    15.  
    16. # 读取:pickle.load(file)
    17.  
    18. f = open( 'C:\\Users\\Hjx\\Desktop\\data.pkl', 'rb')
    19.  
    20. st = pickle.load(f)
    21. print(st)
    22. # 直接读取pkl文件内的数据,该数据为一个字典

    储存和读取pkl文件

    1. # 文件写入 - write
    2.  
    3. path = 'C:\\Users\\Hjx\\Desktop\\test_write.txt'
    4. f = open(path, 'w', encoding = 'utf8')
    5. f.write('hello world!')
    6. f.close()
    7. # 执行后直接创建“test_write.txt”文件,并写入“hello world!”
    8.  
    9. #写入列元素-.writelines(list)
    10. path = 'C:\\Users\\Hjx\\Desktop\\'
    11. f = open(path + 'test_write2.txt', 'w', encoding = 'utf8')
    12. lst = ['a','b','c','d','e']
    13.  
    14. for i in range(len(lst)):
    15. lst[i] = lst[i] + '\n'
    16.  
    17. f.writelines(lst)
    18. f.close()
    19. # 通过遍历给每个元素最后加上"\n"

    写入/写入列

基础模块

  1. # os模块:系统模块 - 常用命令
  2.  
  3. import os # 导入模块
  4.  
  5. print(os.name) # 输出字符串指示正在使用的平台。如果是window 则用'nt'表示,对Linux/Unix用户,它是'posix'。
  6.  
  7. print(os.getcwd()) # 函数得到当前工作目录,即当前Python脚本工作的目录路径。
  8.  
  9. print(os.listdir()) # 返回指定目录下的所有文件和目录名。
  10.  
  11. #os.chdir('C:\\Users\\Hjx\\Desktop\\' ) # 切换到目标路径
  12. #print(os.getcwd())
  13.  
  14. #os.remove('text2.txt') # 删除一个文件
  15.  
  16. print(os.path.split('C:\\Users\\Hjx\\Desktop\\text.txt')) # 函数返回一个路径的目录名和文件名
  17.  
  18. print(os.path.exists('C:\\Users\\Hjx\\Desktop\\heheh.txt'))
  19. # 用来检验给出的路径是否真地存在,这里不存在改文件故False,但路径存在故True

OS模块

Python 基础总结篇的更多相关文章

  1. Python 基础学习篇

    注:技术尚浅,时间匆忙,如有错误或者不当之处值得商榷的,请留言,吾必思而改之. 第一篇 :Python基础- 安装/变量/输入/及循环语句使用 第二篇:  Python基础- 常用数据类型 第三篇: ...

  2. python基础-第二篇-基本数据类型

    一.运算符 1.算数运算: 算数运算符相信大家都不陌生吧,尤其是加减乘除,好!那我就带着大家看看最后三个,这三个到底是干什么玩意的? %,取两数相除的余数,看图: **,x的多少次幂,看图: //,取 ...

  3. python基础总结篇——使用Mysql

    python操作Mysql,很方便,使用的MySQLdb的库,基本的操作如下: 查询: try: conn = MySQLdb.connect(host=self.ip, user=self.user ...

  4. Python基础-函数篇

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数  函数与函数式编程 1.面向对象: 华山派-- ...

  5. Python基础第二篇

    一.三元运算 if True: name='a' else: name='b' #上面的代码用三元运算表示: name="a" if True else "b" ...

  6. Python基础第一篇

    一.第一句python代码 1.python执行过程:1.加载内存-词法分析-语法分析-编译-执行 2.创建hello.py文件,输入内容 #!/usr/bin/env python print &q ...

  7. python基础-安装篇

    1.安装之前我们要先去python的官网下载python的安装包 下载地址:https://www.python.org/downloads/ Python 官网有两个版本一个是3.5.2(最新版)一 ...

  8. Python基础第一篇-------python的介绍

    一.python的介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本 ...

  9. python基础-第九篇-9.1初了解Python线程、进程、协程

    了解相关概念之前,我们先来看一张图 进程: 优点:同时利用多个cpu,能够同时进行多个操作 缺点:耗费资源(重新开辟内存空间) 线程: 优点:共享内存,IO操作时候,创造并发操作 缺点:抢占资源 通过 ...

随机推荐

  1. 子进程回收资源两种方式,僵尸进程与孤儿进程,守护进程,进程间数据隔离,进程互斥锁,队列,IPC机制,线程,守护线程,线程池,回调函数add_done_callback,TCP服务端实现并发

    子进程回收资源两种方式 - 1) join让主进程等待子进程结束,并回收子进程资源,主进程再结束并回收资源. - 2) 主进程 “正常结束” ,子进程与主进程一并被回收资源. from multipr ...

  2. linux命令行常用光标移动快捷键(转)

    转自:https://www.cnblogs.com/aslongas/p/5899586.html Linux 命令行快捷键 涉及在linux命令行下进行快速移动光标.命令编辑.编辑后执行历史命令. ...

  3. Spring 中的异常处理

    工作中遇到这样的同事,问他活干完吗,他说开发好了,结果测试时发现各种异常情况未处理,联调测试时各种未知错误,最后联调完成比他预期的两倍工作量还多.这样的开发如果是新人还可以原谅,如果有工作经验且出现多 ...

  4. nowcoder911L 最优子区间

    题目链接 思路 用\(f(i,j)\)表示前i个元素,以i为右端点,j为左端点时的答案. 用个"区间修改,单点查询"的线段树维护出第二维.在从左往右枚举i的过程中.将\([lst_ ...

  5. Ztree + bootstarp-table 使用

    Ztree + bootstarp-table  使用 一. Ztree 1.引入js/css文件  Ztree官网 <!--ztree--> <link rel="sty ...

  6. [LeetCode] 327. Count of Range Sum 区间和计数

    Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive.Ra ...

  7. 微信小程序前端调用后台方法并获取返回值

    wxml代码 <wxs src="../../wxs/string.wxs" module="tools" /> <!-- 调用tools.i ...

  8. [转载]3.15 UiPath图片操作保存图片的介绍和使用

    一.保存图像 (Save Image)的介绍 可以将图像保存到磁盘的一种活动 二.保存图像 (Save Image)在UiPath中的使用 1.打开设计器,在设计库中新建一个Sequence,为序列命 ...

  9. SpringBoot+EventBus使用教程(二)

    简介 继续上篇,本篇文章介绍如何集成spring-boot-starter-guava-eventbus使用EventBus,最新的版本好像已经不叫spring-boot-starter-guava- ...

  10. 1+x证书《Web前端开发》等级考试样题

    Web前端开发初级理论考试样题2019 http://blog.zh66.club/index.php/archives/149/ Web前端开发初级实操考试样题2019 http://blog.zh ...