Python基础学习总结(三)
4.if语句
If语句可以检查判定当前条件,并执行相应措施。
if a in A:
if a 条件:
执行命令1
4 else:
执行命令2 if判断条件还可以简写
if x:
print('True')
只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
4.1条件测试(条件判断)
1.每个if语句的核心都是条件判断True或False,这种表达式称为条件测试。
2.Python根据条件测试的值True或False来判断是否执行下面的代码,如果if语句的判断为True,就执行下面代码,判断为False会忽略下面的代码。
3.在python中,任何不为0,Null或空对象的东西都为True。
4.2检查是否相等
1.Python比较大小是区分大小写。
2.!= 表示不相等,感叹号表示不,可以比较数字,字符。
4.3检查多个条件
1.使用关键词and连接,都满足为True,一个没有满足都为False。为改善可读性,可将每个测试写在( )中。
2.使用关键词or连接,满足一个就为True,都不满足才为False。
4.4检查特定的值是否包含在列表中
1.使用关键词in来判断包含关系。
2.使用关键词 not in 来判断不包含关系。
4.5布尔表达式
1.布尔表达式是条件测试的别名,结果一样都是True或False。布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写)
2.布尔值可以用and、or和not运算。布尔操作符。
>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> not True
False
4.6if 语句
1.简单if语句,一个测试,一个操作,注意缩进,和冒号。
2.if-else语句 一个条件测试,2个操作。
3.if-elif-else结构 多条件测试,elif是else if的缩写,完全可以有多个elif。
if <条件判断1>:
<执行1
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
4.if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else。
5.可省略else,用elif代替,避免引入更多错误信息。
6.语法格式== 、>= 和<= 等比较运算符两边各添加一个空格,例如,if age < 4: 要比 if age<4: 好。
5.字典
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
特点:
1.无序的,字典是动态数据,字典由{ }组成,分号隔开。字典包含键和值,一 一对应。
2.与键相关联的值可以是数字、字符串、列表乃至字典,可将任何Python对象用作字典中的值。
3.正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。
set:
1. set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
2.set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:&交集; | 并集;
3.set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。
4.通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果。
5.通过remove(key)方法可以删除元素。
list和dict对比
和list比较,dict有以下几个特点:
1.查找和插入的速度极快,不会随着key的增加而变慢;
2.需要占用大量的内存,内存浪费多。
而list相反:
1.查找和插入的时间随着元素的增加而增加;
2.占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
5.1访问字典的值
1.键值访问
知道键值可以访问值:
>>> test = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> test['a']
1
>>> test['b']
2
要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
>>> 'a' in test
True
>>> 'b' in test
True
>>> 'e' in test
False
2.get方法
是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
>>>d.get('Thomas')
>>>d.get('Thomas', -1) #在d中不存在'Thomas',返回-1
-1
>>> picnicItems = {'apples': 5, 'cups': 2}
>>> 'I am bringing ' + str(picnicItems.get('cups', 0)) + ' cups.'
'I am bringing 2 cups.'
>>> 'I am bringing ' + str(picnicItems.get('eggs', 0)) + ' eggs.'
'I am bringing 0 eggs.
注意:返回None的时候Python的交互式命令行不显示结果。
3.setdefault()方法
setdefault()方法提供了一种方式,在一行中完成这件事。传递给该方法的第一个参数,是要检查的键。第二个参数,是如果该键不存在时要设置的值。如果该键确实存在,方法就会返回键的值。
>>> spam = {'name': 'Pooka', 'age': 5}
>>> spam.setdefault('color', 'black') #键不存在,返回'black'
'black'
4.pprint 模块
导入 pprint 模块,就可以使用 pprint()和pformat()函数,它们将“漂亮 打印”一个字典的字。
pprint.pprint(someDictionaryValue)
print(pprint.pformat(someDictionaryValue))
5.2添加键和值
字典是动态数据,可以随时在其中添加键和值,通过key加入数据:
alien_0 = {'color': 'green', 'points': 5}
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)
5 {'color': 'green', 'points': 5, 'x_position': 0, 'y_position': 25}
5.3删除键和值
1.要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
>>> test = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> test.pop('a')
1
>>> test
{'b': 2, 'c': 3, 'd': 4}
2.使用del :
>>> del test['c']
>>> test
{'b': 2, 'd': 4}
5.4遍历字典 item()
Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组。
for key, value in user_0.items():
实际:
for name, language in favorite_languages.items():
简单变量名:
for k, v in user_0.items()
注意,即便遍历字典时,键—值对的返回顺序也与存储顺序不同。Python不关心键—值对的存储顺序,而只跟踪键和值之间的关联关系。
判断一个对象是可迭代对象,方法是通过collections模块的Iterable类型判断;
>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身。
使用内建的isinstance函数可以判断一个变量是不是字符串。
5.4.1遍历字典所有的键(for循环)
Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子:
for name in favorite_languages.keys():
遍历字典时,会默认遍历所有的键,因此,如果将上述代码中的for name in favorite_languages.keys(): 替换为for name in favorite_languages: ,输出将不变。 如果显式地使用方法keys() 可让代码更容易理解,你可以选择这样做,但如果你愿意,也可省略它。
5.4.2按顺序遍历字典所有的键
sorted()
使用函数sorted() 来获得按特定顺序排列的键列表的副本。
按首字母排序:
一种办法是在for 循环中对返回的键进行排序。为此,可使用函数sorted() 来获得按特定顺序排列的键列表的副本。
5.4.3遍历字典中所有的值
values()
使用方法values() ,它返回一个值列表,而不包含任何键。
for language in favorite_languages.values():
为剔除重复项,可使用集 合set()。集合 类似于列表,但每个元素都必须是独一无二的:
for language in set(favorite_languages.values()):
5.5嵌套
还可以使用两层循环,可以生成全排列。
>>> a = [1, 2, 3]
>>> for n in a:
... for m in a:
... print(n, m)
...
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
5.5.1字典列表
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}
aliens = [alien_0, alien_1, alien_2]
5.5.2在字典中存储字典
字典中嵌套字典
5.6退出循环(break)
在循环中,break语句可以提前退出循环。这个语句通常必须配合if语句使用。
5.7continue
在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。这个语句通常也必须配合if语句使用。
Python基础学习总结(三)的更多相关文章
- Python基础学习篇章三
一. Python对象类型 1. 对象是Python最基本的概念,一个Python程序可以分解为模块.语句.表达式.和对象.它们的关系如下:(1)程序由模块构成 (2)模块包含语句 (3)语句包含表达 ...
- Python基础学习(三)
了解了Python的基础使用,接下来继续练手廖雪峰老师的教学案例. 一.变量可以指向函数 说明,一个函数可以赋值给一个变量,该变量就会具有该函数的功能,举例: gg = abs print( gg(- ...
- python基础学习(三)变量和类型
变量的作用:变量就是用来存储数据的. 变量的定义 在python中,变量在使用之前需要进行赋值,变量只有赋值后才能使用,如果变量没有赋值就使用会出现什么情况呢?如下图,使用之前变量未定义,会报错,如下 ...
- python基础学习第三天
#变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间#基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中#变量可以指定不同的数据类型,这些变量可以存储整数.小数 ...
- Python基础学习三
Python基础学习三 1.列表与元组 len()函数:可以获取列表的元素个数. append()函数:用于在列表的最后添加元素. sort()函数:用于排序元素 insert()函数:用于在指定位置 ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- Python 基础学习 总结篇
Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...
随机推荐
- Public Bike Management (30)(DFS,VRCTOR,模拟)(PAT甲级)
#include<bits/stdc++.h>using namespace std;const int inf = 1e9;int sum,n,tar,m;int num[507];in ...
- spring-第二章-AOP
一,回顾 1.控制反转(IOC) 以前创建对象,由我们自己决定,现在我们把管理对象的声明周期权力交给spring; 2.依赖注入(DI) A对象需要B对象的支持,spring就把B注入给A,那么A就拥 ...
- “全栈2019”Java第六十二章:接口与常量详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- ios 相机 自定义 相片的截取
前段时间公司需要做一个身份识别的功能,而系统相机无法满足要求,so自己自定义了. 上代码: .h文件 #import <UIKit/UIKit.h> #import <AVFound ...
- linux新服务器分区挂载
新买一台服务器,需要自己手动对硬盘进行分区挂载:(这是centos下,其他版本应该也类似) 1.查看没有分区的硬盘:fdisk -l 由图上信息可知,该服务器由三块硬盘 vda.vdb.vdc,其 ...
- Maven依赖的JAR包下载慢?赶紧看过来
相信许多JAVA开发者在日常工作中时常会碰到这种情况,那就是编译Maven工程时,工程所依赖的jar包文件下载非常慢,甚至经常出现下载不成功的问题,今天,小编就给大家讲讲如何提升Maven依赖包的下载 ...
- webpack---less+热更新 使用
最近尝试用less写界面,webpack进行打包,然后发现每次修改less时都需要重新执行webpack打包一下,于是就想到了webpack热更新这个功能. 一.使用less less是一门css预处 ...
- weex 初始化
文档教程 一. 已有项目集成weex, 有时候会报错, 因为sdk中用到了socket pod 'WeexSDK' pod 'SocketRocket' 二. 在app启动方法 -didFinish ...
- P4027 [NOI2007]货币兑换
传送门 首先有一个显然的贪心,每次操作都要做到底,为了最优不会出现只卖一部分或者只买一部分的操作 所以设 $f[i]$ 表示前 $i$ 天得到的最大价值,那么对于每一个 $i$,枚举所有 $j< ...
- Serical Port
QextSerialPort 虽然这次不用写串口,但今后可能要用到的三方类库. 这个帖子下面普及了串口的概念.VC++模块的部分