【廖雪峰python教程学习】——(一)python基础
文章目录
- 1. 数据类型和变量
- 2. 字符串和编码
- 2.1 字符编码
- 2.2 字符串
- 2.3 格式化
- 2.4 小结
- 3. 列表和元组
- 3.1 List
- 3.2 Tuple
- 4. 条件判断
- 5. 循环
- 5. dict和set
- 5.1 dict
- 5.2 set
1. 数据类型和变量
- Python还允许用r’’’'表示内部的字符串默认不转义
- 如果字符串内部既包含’又包含" 可以用转义字符\来标识
- Python允许用’’’ … ‘’'的格式表示多行内容
- 在Python中赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量[动态语言]
- [静态语言:Java…]在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错
- 在Python中,通常用全部大写的变量名表示常量
print(*objects, sep=' ', end='\n', file=sys.stdout)
objects --表示输出的对象。输出多个对象时,需要用 , (逗号)分隔。
sep -- 用来间隔多个对象,默认是空格。
end -- 用来设定以什么结尾。默认值是换行符 \n,可以换成其他字符。
file -- 要写入的文件对象。
2. 字符串和编码
2.1 字符编码
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码
2.2 字符串
Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
以Unicode表示的str通过encode()方法可以编码为指定的bytes
要把bytes变为str,就需要用decode()方法
用len()函数计算str中包含多少字符
2.3 格式化
- %运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换
- 有几个%占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%,括号可以省略
- 格式化整数和浮点数还可以指定是否补0和整数与小数的位数;%s永远起作用,它会把任何数据类型转换为字符串;
- 有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%
- format():用传入的参数依次替换字符串内的占位符{0}、{1}……
- f-string:与普通字符串的不同之处在于字符串如果包含{xxx},就会以对应的变量替换:
2.4 小结
python的除法:
- 真正的除法:/ 返回真正的商,不管除数(被除数)的数据类型,都返回浮点型
- 地板除法:// 直接舍去小数部分,返回整数部分
- 取余:% 返回余数,没有就返回0
3. 列表和元组
3.1 List
一种有序的集合,可以随时添加和删除其中的元素
- len()获取list元素个数
- 用索引访问list中每一个位置的元素(索引从0开始)确保索引不要越界,记得最后一个元素的索引是len(classmates)-1;用-1做索引直接获取最后一个元素,-2倒数第二个,将-?想象成倒数第?个
- 用append()函数可以向list末尾追加元素;insert(i,内容) 将元素插入到指定位置I
- pop() 删除list末尾元素 ,pop(i)删除指定位置元素,i是索引位置
- 要把某个元素替换成别的元素,可以直接赋值给对应的索引位置
- list里面的元素数据类型可以不同,list元素也可以是另一个list
- 获取s中L的元素 s[][],将s看成是一个二维数组
3.2 Tuple
tuple和list非常类似,但是tuple一旦初始化就不能更改
没有append()、insert()等方法,其他获取元素的方式相同(利用索引),但无法赋值成另外的元素
因为tuple不可变,所以代码更安全。
只有1个元素的tuple定义时必须加一个逗号,来消除歧义,避免被误会成小括号
”可变“的tuple
:tuple里面的元素存在list,其中list里面的元素可变,但是作为tuple元素指向的list没有改变
4. 条件判断
if语句执行从上往下判断,如果在某个判断上是True,将该判断对应的语句执行后,就忽略掉剩下的elif和else if
判断条件还可以简写,eg.只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
input()返回的数据类型是str,str不能直接和整数比较, 必须先将str转换成整数——利用int()函数完成, 但int()函数发现一个字符串并不是合法的数字时就会报错,程序就退出了
5. 循环
python中有两种循环
① for…in循环
依次把list或tuple中的每个元素迭代出来,for x in …循环就是把每个
元素代入变量x,然后执行缩进块的语句
range()函数:可以生成一个整数序列,再通过list()函数可以转换为list
②while循环
只要条件满足,就不断循环,条件不满足时退出循环。
通常配合if语句得使用:break可以提前退出循环;continue语句,跳过当前的这次循环,直接开始下一次循环
5. dict和set
5.1 dict
字典,键值对
- 一个key只能对应一个value
- 如果key不存在,dict就会报错
- 通过in判断key是否存在
- 通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value
- 用pop(key)方法删除key
- dict内部存放的顺序和key放入的顺序是没有关系的
- dict中的key是不可变对象,dict利用hash算法根据key来计算value的存储位置
【在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key】
5.2 set
一组key的集合,不存储value
- 创建set需要提供一个list作为输入集合,重复元素在set中被自动过滤
- 通过add(key)方法可以添加元素到set中,remove(key)删除元素
- set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集&、并集|等操作
- set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等
tuple虽然是不变对象,但试试把(1, 2, 3)和(1, [2, 3])放入dict或set中
对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的
【廖雪峰python教程学习】——(一)python基础相关推荐
- 廖雪峰Git教程学习笔记
廖雪峰git简单教程学习笔记 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b ...
- java廖雪峰_廖雪峰Java教程学习笔记(一)——Java程序基础
(一)Java程序基本结构 Java是面向对象的语言,一个程序的基本单位就是class.在class内部,可定义若干方法. 类名要求: 类名必须以英文字母开头,后接字母,数字和下划线的组合 习惯以大写 ...
- 廖雪峰JS教程学习记录---字符串
1.由于多行字符串用\n写起来比较费事,所以最新的ES6标准新增了一种多行字符串的表示方法,用'...'表示`这是一个 多行 字符串`; 2.字符串常见的操作如下: s.length; // 13 要 ...
- 廖雪峰javascript教程学习记录
$1.数据类型和变量 1.不区分整数和浮点数,统一用Number 2.字符串String 3.布尔值 注意: (1) 实际上,JavaScript允许对任意数据类型做比较; 要特别注意相等运算符==. ...
- 廖雪峰JS教程学习记录----Map和Set
Map和Set Map Map是一组键值对的结构,具有极快的查找速度. 1.解决问题: JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值 ...
- mysql 廖雪峰_mysql查询(廖雪峰sql教程学习摘录)
mysql默认不区分大小写 条件查询 select * from students ...
- Python语言学习:python语言的特点、入门、基础用法之详细攻略
Python语言学习:python语言的特点.入门.基础用法之详细攻略 相关内容 Python 基础教程 目录 python语言的特点 python语言的入门 python语言的基础用法 python ...
- Python教程分享之Python基础知识点梳理
Python语言是入门IT行业比较快速且简单的一门编程语言,学习Python语言不仅有着非常大的发展空间,还可以有一个非常好的工作,下面小千就来给大家分享一篇Python基础知识点梳理. Python ...
- python教程学习
python教程学习 一. ubuntu基本使用 1.简介 1.1. 目录 1.2. 常用命令基本使用 1.3 终端命令 1.4 查阅命令帮助信息 2. 文件目录相关 2.1 **通配符的使用** 2 ...
- Linux基础(B站视频笔记—— Python教程_600集Python从入门到精通教程)
Python教程_600集Python从入门到精通教程(懂中文就能学会) 07 虚拟机简介 09 Linux内核和发行版 13 为什么要学习Linux终端命令 16 六个常见的终端命令 17 终端命令 ...
最新文章
- Unity3D脚本属性
- 家长学校.net keti.html,家长学校教科研的工作制度
- 一个页面区分管理者和普通用户如何设计_产品经理要做的操作权限/数据权限设计...
- java线程锁的作用,大厂面经合集
- [UIView beginAnimations:context:]与[UIView animateWithDuration:animations:]值得注意的一个区别...
- 【C 语言】内存四区原理 ( 栈内存与堆内存对比示例 | 函数返回的堆内存指针 | 函数返回的栈内存指针 )
- python matplotlib.pyplot.imshow() (在2D常规栅格上显示图像(数据))
- WebConfig 加密解密的原理是什么?
- php跨域session共享,PHP中利用COOKIE与SESSION联合实现SESSION跨域
- python中什么是主要数据类型_python中基本数据类型是什么
- Java 疑问自问自答
- 网易2018校园招聘编程题真题 合唱
- 编译cloog for gcc 4.8.5 问题
- vue 微信支付的坑_微信支付踩坑
- mysql chunk_【MySQL参数】-innodb_buffer_pool_chunk_size
- input正则邮箱_用正则表达式匹配邮箱地址
- 2018计算机系统结构全国卷,2018年10月高等教育自学考试全国统一命题考试02325计算机系统结构试卷及答案.doc...
- 如何查看Linux版本.
- ros入门真的没有那么难,我一般不说有手就行^_^
- 金蝶打开提示中间层连接失败