Python笔记记录
python2和python3的不同: Unicode(统一码、万国码),在3里面可以直接写中文了。
python2里rae_input与python3中的input效果一样
在计算机内存中,统一用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换成UTF-8保存到文件。
用记事本编辑的时候,从文件读取的UTF-8字符被转换成Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换成UTF-8保存到文件:
浏览网页的时候,服务器会把动态生成的Unicode内容转换成UTF-8在传输到浏览器:
python基础:
字符串
转义字符:\ 可以转移很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义
如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''
的格式表示多行内容
如果写成程序并存为.py文件,就是:
布尔值
True & False 可以用and、or、not进行运算
Python字符串问题
由于Python的字符串类型是str
,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str
变为以字节为单位的bytes
。
Python对bytes
类型的数据用带b
前缀的单引号或双引号表示: x = b'ABC'
要注意区分'ABC'
和b'ABC'
,前者是str
,后者虽然内容显示得和前者一样,但bytes
的每个字符都只占用一个字节
以Unicode表示的str
通过encode()
方法可以编码为指定的bytes
,例如:
纯英文的str
可以用ASCII
编码为bytes
,内容是一样的,含有中文的str
可以用UTF-8
编码为bytes
。含有中文的str
无法用ASCII
编码,因为中文编码的范围超过了ASCII
编码的范围,Python会报错。
在bytes
中,无法显示为ASCII字符的字节,用\x##
显示。
反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes
。要把bytes
变为str
,就需要用decode()
方法:
计算str包含多少个字符,可以用len()函数
格式化
%运算符就是用来格式化字符串的,在字符串内部,%s表示用字符串替换,%d
表示用整数替换,有几个%?
占位符,后面就跟几个变量或者值,顺序要对应好。
常用占位符有:
format()
另一种格式化字符串的方法是使用字符串的format()
方法,它会用传入的参数依次替换字符串内的占位符{0}
、{1}
……,不过这种方式写起来比%要麻烦得多:
list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
比如,列出班里所有同学的名字,可以用一个list表示: classmates = ['tom', 'jane', 'boy']
可以用len()来获取list元素个数,可以用索引来访问list中每一个位置的元素
也可以把元素插入到指定的位置,比如索引号为1
的位置:
classmates.insert(1, 'Jack')
要删除list末尾的元素,用pop()方法
tuple
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改
比如,列出班里所有同学的名字 classmates = ('tom', 'jane', 'boy')
注意: 只有1个元素的tuple定义时必须加一个逗号,
,来消除歧义: t = (1,)
dict
键-值存储(key-value)
例如 d = {'Tom' : 23, 'Jane' : 26, 'Michael' : 18}
如果要增加字典的值,则可以 d['Adam'] = 99
判断key是否存在: 'Tom' in d 通过返回的布尔值来判断是否存在
获取value可以这样:d.get('Tom')
删除key: d.pop('Tom')
通过key计算位置的算法称为哈希算法(Hash)
set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合: s = set([1, 2, 3])
重复元素在set中自动被过滤
通过add(key)方法可以添加元素到set中; 例:s.add(4)
通过remove(key)方法可以删除元素;例:s.remove(4)
函数
调用函数
求绝对值的函数abs,调用abs函数: abs(-20) 返回结果就是20
调用max函数,返回最大的那个值: max(2, 7)
数据类型转换
整型:int 浮点型:float 字符型:str 布尔型:bool
函数举例:添加了错误和异常处理 (数据类型检查可以用内置函数isinstance()实现)
def my_abs(x):
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
if x >= 0:
return x
else:
return -x
函数的参数
位置参数
def my_abs(x, n, b): 其中x n b都是位置参数
默认参数
def my_abs(x, n, b=3): 其中b=3就是默认参数
可变参数
def calc(*numbers): 就是可以传任意个数的参数,这些可变参数在函数调用时自动组装为一个tuple
关键字参数
def person(name, age, **kw): 也可以传入任意个数的参数,但这些关键字参数在函数内部自动组装过程一个dict
命名关键字参数
def person(name, age, *, city, job): 命名关键字参数需要一个特殊的分隔符*,*后面的参数被视为命名关键字参数
调用方式如下: person('Tom', 24, city='Beijing', job='Engineer')
注: 如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*
了:
def person(name, age, *args, city, job):
命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名
Python笔记记录的更多相关文章
- 20.Python笔记之SqlAlchemy使用
Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...
- Python:笔记(5)——错误、调试和测试
Python:笔记(5)——错误.调试和测试 错误处理 1.TRY语句 这个和Java中的语法是及其相似的,catach换成except. 说明:同样,不管有没有错误,fianlly都会执行的! 补充 ...
- 【和孩子一起学编程】 python笔记--第一天
[该随笔记录本人在阅读过程写的笔记和一些问题,格式比较随意,不定时更新] 由于该书使用的python版本为2.5,本人使用的为3.6. 第一章: 遇到的第一个问题: 1.3节 输出指令: print ...
- Python笔记之不可不练
如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...
- boost.python笔记
boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- Python笔记——类定义
Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...
- Activiti 学习笔记记录(2016-8-31)
上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件
随机推荐
- Applet、Scriptlet与Servlet
Applet.Scriptlet与Servlet - 青春念邵的博客 - 博客频道 - CSDN.NEThttp://blog.csdn.net/mo_fan_qing_wa/article/deta ...
- python,小练习(计算两点之间直线长度)
#首先引入数学函数 import math #创建一个点的类 class Point(): #初始化点的坐标(x,y) def __init__(self,x=0,y=0): self.x = x s ...
- 基本类型变量、引用类型变量的在java中的存放位置
一.局部变量存储在方法栈中 在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法 ...
- Fragment和FragmentActivity的使用方法
认识:首先我们知道Fragment是我们在单个Activity上要切换多个UI界面,显示不同内容.模块化这些UI面板以便提供给其他Acitivity使用便利.同时我们显示的Fragment也会受到当前 ...
- vue后台项目记录
1.当我们用axios进行接口访问时,必须同时使用Qs,否则后端接收不到所传的数据! npm 安装qs,然后引用 import Qs from 'qs' // 创建axios实例 const serv ...
- Python os.remove() 删除文件
概述 os.remove() 方法用于删除指定路径的文件.如果指定的路径是一个目录,将抛出OSError. 在Unix, Windows中有效 语法 remove()方法语法格式如下: os.remo ...
- HTML5 播放器
之前一个前端群里 大牛 做了一个自适应的HMLT5播放器 最近根据其思路做了一个相对单一移动端的demo,demo用的图片和歌曲json的数据设计 都是群里大牛做的,在这谢谢~: 同时借鉴的几篇文章: ...
- CAN总线相关的几个gitlab代码
https://github.com/brtiberio/ATV71_CANopen.git https://github.com/linux-can/can-utils.git https://gi ...
- 转载:UML学习(二)-----类图(silent)
原文:http://www.cnblogs.com/huiy/p/8552607.html 1.什么是类图 类图(Class diagram)主要用于描述系统的结构化设计.类图也是最常用的UML图,用 ...
- js用replaceAll全部替换的方法
1 前言 js中字符串整体替换,只有自带的replace,并没有replaceAll,如果我们需要把字符串中的字符统一替换,可以用正则表达式,由于经常使用就在String直接加个原生方法,方便调用. ...