python3基础三

一.if语句

if condition_1:

statement_block_1

elif condition_2:

statement_block_2

else:

statement_block_3

1.每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块

2.使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块

3.在Python中没有switch – case语句

4.条件:(1)检查是否相等: ==;(2)检查是否不相等:!=;(3)比较数字:==,<=,>=;(4)布尔表达式: True  ;  False

(5)检查多个条件 : 1.条件一and条件二(同时满足);2.条件一or条件二(至少一个满足)

(6)检查特定值是否包含在列表中:1.特定值 in 列表 ;2.特定值 not in 列表

5.三元运算

1 #比较两数,输出最大的值
2 a=int(input(‘数字A:‘))
3 b=int(input(‘数字b:‘))
4 c=a if a>b else b
5 print(c)
6 ------------------------------
7 数字A:14
8 数字b:41
9 41

if...else...

 1 #比较三数,输出最大的值
 2 a=int(input(‘数字A:‘))
 3 b=int(input(‘数字b:‘))
 4 c=int(input(‘数字c:‘))
 5 d=(a if a>b else b) if(a if a>b else b) else c
 6 print(d)
 7 ----------------------------------------------------
 8 数字A:124
 9 数字b:121
10 数字c:21
11 124

三数最大值

二.while循环

while 判断条件:

语句

1.注意冒号和缩进

2.Python中没有do..while循环

3.可以通过设置条件表达式永远不为 false 来实现无限循环,可以使用 CTRL+C 来退出当前的无限循环

4.使用标志

 1 #定义一个变量作为标志,用于判断整个程序是否属于活动状态
 2 active=True
 3 while active:
 4     message=input()
 5     if message == ‘quit‘:
 6         active=False
 7     else:
 8          print(message)
 9 ---------------------------------------------------
10 d
11 d
12 33
13 33
14 quit

标志

三.else语句

1.如果 else 语句和 while 循环语句一起使用,则当条件变为 False 时,则执行 else 语句

2.如果 else 语句和 for 循环语句一起使用,else 语句块只在 for 循环正常终止时执行!

3.if语句中当不满足当前条件时,从而执行下一条else语句

四.for语句

for <variable> in <sequence>:

< statements>

else:

<statements>

1.for循环可以遍历任何序列的项目,如一个列表或者一个字符串

五.break和continue语句及循环中的else子句

1.break 语句可以跳出 for 和 while 的循环体

2.从 for 或 while 循环中终止,任何对应的循环 else 块将不执行

3.continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环

4.循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被break终止时不执行

六.pass语句

1.pass是空语句,是为了保持程序结构的完整性

2.pass 不做任何事情,一般用做占位语句

七.输入输出语句

1.2.x中print (空格)"变量名";3.7中print("变量名")

2.print()输出函数

1 #print(self, *args, sep=‘ ‘, end=‘\n‘, file=None)
2 # ?    *args:表示任何多个无名参数,它是一个tuple;
3 # ?    sep:指定输出的多个参数之间的间隔符,默认是一个空格;
4 # ?    end:指定最后一个参数输出之后输出的字符,默认是换行符。
5 print(2,3,4,5)
6 print(2,3,4,5,sep=‘+‘,end=‘\r\n‘)
7 ----------------------------------------------------------------------
8 2 3 4 5
9 2+3+4+5

print()

3.将输出的值转成字符串: repr() 或 str()

(1).str(): 函数返回一个用户易读的表达形式

(2).repr(): 产生一个解释器易读的表达形式

 1 s="hello,world"
 2 print(str(s))
 3 print(repr(s))
 4 a=‘hello world\n‘
 5 print(a)
 6 print(repr(a)) # repr() 函数可以转义字符串中的特殊字符
 7 print(str(a))
 8 print(repr((s,a,(‘glle‘,‘runs‘))))#repr(一个参数),参数可以是 Python 的任何对象
 9 -----------------------------------------------------------------------------------------
10 hello,world
11 ‘hello,world‘
12 hello world
13
14 ‘hello world\n‘
15 hello world
16
17 (‘hello,world‘, ‘hello world\n‘, (‘glle‘, ‘runs‘))

str()和repr()

4.使用 str.format() 函数来格式化输出值,使输出的形式更加多样

 1 # print(‘{}{}‘.format(‘‘,‘‘))括号及其里面的字符(称作格式化字段)将会被format()中的参数替换
 2 # 在括号中的数字用于指向传入对象在 format() 中的位置
 3 print(‘{0} 和 {1}‘.format(‘Google‘, ‘Runoob‘))
 4 print(‘{1} 和 {0}‘.format(‘Google‘, ‘Runoob‘))
 5
 6
 7 # 如果在 format() 中使用了关键字参数, 那么它们的值会指向使用该名字的参数
 8 print(‘{name}名字: {old}‘.format(name=‘小明‘, old=‘18‘))
 9
10
11 # 位置及关键字参数可以任意的结合
12 print(‘站点列表 {0}, {1}, 和 {other}。‘.format(‘Google‘, ‘Runoob‘,  other=‘Taobao‘))
13
14
15 # ‘!a‘ (使用 ascii()),
16 # ‘!s‘ (使用 str())
17 # ‘!r‘ (使用 repr())
18 # 可以用于在格式化某个值之前对其进行转化
19 import math
20 print(‘常量 PI 的值近似为: {}。‘.format(math.pi))
21 print(‘常量 PI 的值近似为: {!a}。‘.format(math.pi))
22
23 # 可选项 ‘:‘ 和格式标识符可以跟着字段名。在 ‘:‘ 后传入一个整数, 可以保证该域至少有这么多的宽度
24 print(‘常量 PI 的值近似为 {0:.3f}。‘.format(math.pi))#float保留3位小数
25 print(‘{0:10}---{1:10d}‘.format(‘ta‘,4))#至少有10的宽度
26
27 # 如果你有一个很长的格式化字符串, 而你不想将它们分开, 那么在格式化时通过变量名而非位置会是很好的事情。
28 # 最简单的就是传入一个字典, 然后使用方括号 ‘[]‘ 来访问键值
29 table = {‘Google‘: 1, ‘Runoob‘: 2, ‘Taobao‘: 3}
30 print(‘Runoob: {0[Runoob]}; Google: {0[Google]:d}; Taobao: {0[Taobao]:d}‘.format(table))
31 print(‘Runoob: {Runoob:d}; Google: {Google:d}; Taobao: {Taobao:d}‘.format(**table))
32 #也可以通过在 table 变量前使用 ‘**‘ 来实现相同的功能
33 ---------------------------------------------------------------------------------------
34 Google 和 Runoob
35 Runoob 和 Google
36 小明名字: 18
37 站点列表 Google, Runoob, 和 Taobao。
38 常量 PI 的值近似为: 3.141592653589793。
39 常量 PI 的值近似为: 3.141592653589793。
40 常量 PI 的值近似为 3.142。
41 ta        ---         4
42 Runoob: 2; Google: 1; Taobao: 3
43 Runoob: 2; Google: 1; Taobao: 3

str.format()

1 print(‘{2:10s}{0:10d}{1:10f}‘.format(33,11,‘22‘))
2 print(‘{2:^10s}{0:<10d}{1:>10f}‘.format(33,11,‘22‘))
3 #域宽为10 s,d,f表示字符串,整型,浮点型
4 #<,>,^分别左对齐,右对齐,居中
5 -------------------------------------------------------------------------
6 22                33 11.000000
7     22    33         11.000000

补充

5.% 操作符也可以实现字符串格式化

6.input()函数读取键盘输入

Python2中raw_input将用户输入的内容当做‘字符串’,传递给接受的变量,input会将用户输入的内容当做‘代码’进行处理,input=raw_input+eval

python3中只有input相当于python2中的raw_input,可以用eval函数实现python2中的input功能

 1 #input(*args, **kwargs)
 2 #kwargs:表示关键字参数,它是一个dict
 3 # input() 置函数从标准输入读入一行文本,默认的标准输入是键盘
 4 #input 可以接收一个Python表达式作为输入,并将运算结果返回
 5 #使用input时,python将用户输入解读为字符串,可用int()来获取数值输入
 6 print(input(‘name:‘))
 7 a=input("old:")
 8 print(a)
 9 print(type(a))
10 b=int(a)
11 print(b)
12 print(type(b))
13 ----------------------------------------------------------------------
14 name:alex
15 alex
16 old:16
17 16
18 <class ‘str‘>
19 16
20 <class ‘int‘>

input()

*input和split读取多个输入

 1 n1,n2=input(‘shuru1: ‘).split(‘#‘)#输入两个字符串,以#表示分隔
 2 n3,n4,n5=input(‘shuru2:‘).split()##输入三个字符串,默认以空格表示分隔
 3 s1=int(n1)+int(n2)
 4 print(s1)
 5 s2=int(n1)+int(n3)-int(n5)+int(n4)
 6 print(s2)
 7 --------------------------------------------------------
 8 shuru1: 12#655
 9 shuru2:231 33 23
10 667
11 253

split

八.迭代器iterator

1.迭代是指重复反馈过程的活动,目的是为了接近并达到所需的目标或结果。每一次的过程的重复被称为一次迭代,所得到的结果会被用来作为下一次迭代的初始值。

2.迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器也是可迭代对象,也可作用于for in

3.迭代器是一个可以记住遍历的位置的对象。

4.迭代器只能往后,不能往前;迭代器一般不能多次迭代;取完之后再取元素会报错

5.迭代器适合用于遍历一些巨大或无限的集合,仅仅在迭代到某个元素时才处理该元素

6.迭代器有两个基本的方法:iter()(把可迭代对象转换成迭代器进行使用) 和 next()(遍历)。

 1 list=[1,2,34,3,4,‘32‘,‘als‘]
 2 it=iter(list)    # 创建迭代器对象,字符串,列表或元组对象都可用于创建迭代器
 3 print(next(it))  # 输出迭代器的下一个元素
 4 print(next(it))  # 输出迭代器的下一个元素,
 5 # 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。
 6 # 迭代器中访问完一个少一个,迭代器没有len
 7 for x in it:     #迭代器对象可以使用常规for语句进行遍历
 8     print(x)     #迭代器只能往前不会后退
 9 --------------------------------------------------------------
10 1
11 2
12 34
13 3
14 4
15 32
16 als

iter()和next()

九.生成器generator

1.在 Python 中,使用了 yield 的函数被称为生成器(generator)函数,这个函数的执行结果就是生成器

2.跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个特殊的迭代器。

3.在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

 1 def test():
 2     print(‘xxx‘)
 3     yield 1
 4     print(‘a‘)
 5     yield 2
 6     print(‘b‘)
 7     yield 3
 8     print(‘c‘)
 9     yield 7
10     print(‘d‘)
11
12 g=test()
13 print(g)#<generator object test at 0x02DEE900>
14
15 print(next(g))#xxx   1
16 print(next(g))#a      2
17 ----------------------------------------------------------------
18 <generator object test at 0x0568E900>
19 xxx
20 1
21 a
22 2

yield

4.调用一个生成器函数,返回的是一个迭代器对象。

 1 #如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator
 2 import sys
 3 def fibonacci(n):  # 生成器函数 - 斐波那契
 4     a, b, counter = 0, 1, 0
 5     while True:
 6         if (counter > n):
 7             return
 8         yield a
 9         a, b = b, a + b
10         counter += 1
11 f = fibonacci(10)  # f 是一个迭代器,由生成器返回生成
12 while True:
13     try:
14         print (next(f), end=" ")
15     except StopIteration:
16         sys.exit()
17 -------------------------------------------------------------------
18 0 1 1 2 3 5 8 13 21 34 55

5.生成器表达式创建方式:把列表推导式的[]修改为()

1 l=(i for i in range(1,10)if i%2==0)
2 l2=[i for i in range(1,10)if i%2==0]
3
4 print(l)
5 print(l2)
6 ----------------------------------------
7 <generator object <genexpr> at 0x0573E900>
8 [2, 4, 6, 8]

生成器表达式创建

6.生成器的send()方法

 1 #send方法有一个参数,指定的是上一次被挂起的yeild语句的返回值
 2 #相比于.__next__(),可以额外的给yield语句传值
 3 #注意第一次调用 t.send(None)
 4
 5 def test():
 6     print(‘xx‘)
 7     res1=yield 1#‘ooo‘
 8     print(res1)
 9
10     res2=yield 2
11     print(res2)
12
13 g=test()
14
15 print(g.__next__())#调用.__next__()方法时,执行函数xx   1
16 # print(g.__next__())#调用.__next__()方法时,执行函数None 2
17 print(g.send(‘ooo‘))#调用send方法,给上次的yeild指定返回值ooo 2
18 -------------------------------------------------------------
19 xx
20 1
21 ooo
22 2

send()

7.关闭生成器.close()方法

 1 def test():
 2     print(‘xxx‘)
 3     yield 1
 4     print(‘a‘)
 5     yield 2
 6     print(‘b‘)
 7     yield 3
 8     print(‘c‘)
 9 g=test()
10 print(g.__next__())
11 g.close()#关闭生成器,无法再访问
12 # print(g.__next__())异常StopIteration
13 ----------------------------------------------------
14 xxx
15 1

.close

8.如果碰到return,会直接终止,抛出StopIteration异常提示,生成器只会遍历一次

十.补充

1.assert关键字

 1 #assert断言
 2 #当关键字后面的条件为假时,程序自动崩溃并抛出AssertionError的异常
 3 #关键字后面的条件为真时,自动忽略
 4 assert 3>4
 5 #一般来说,我们可以用它在程序中置入检查点
 6 #当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就很有用
 7 ---------------------------------------------------------------------------------------
 8 Traceback (most recent call last):
 9   File "E:/python_work/example/2018.4.2.py", line 21, in <module>
10     assert 3>4
11 AssertionError

assert

2.可迭代对象iterable:list,dict,set,str,generator(生成器),iterator(迭代器)

3.可迭代对象都可用for来遍历

原文地址:https://www.cnblogs.com/yu-liang/p/8570167.html

时间: 2024-10-08 20:50:44

python3基础三的相关文章

Python基础--Python3基础语法

Python3 基础语法 编码 默认情况下,Python3源码文件以UTF-8编码,所有字符串都是Unicode字符串.当然也可以为源码文件指定不同的编码,例如: # -*- coding: cp-1252 -*- 标识符 1.第一个字符必须是字母表中字母或下划线: 2.标识符的其他的部分有字母.数字和下划线组成: 3.标识符对大小写敏感. 注:在Python3中,非ASCII标识符也是允许的. Python保留字 保留字即关键字,我们不能把它们用作任何标识符名称.Python的标准库提供了一个

Python全栈开发【基础三】

Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 1 def 函数名(参数): 2 3 ... 4 函数体 5 ... 6 返回值 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算 参数:为函数体提供数据 返回值:当函数执行完毕后,可以给调用者返回数据. 总结使用函数的好处: 1.减少代码重用 2.保持一致性,易维护

JS基础三

1.delete删除对对象的属性和方法的定义.强制解除对它的引用,将其设置为 undefined delete 运算符不能删除开发者未定义的属性和方法. 2.void 运算符对任何值返回 undefined.该运算符通常用于避免输出不应该输出的值,没有返回值的函数真正返回的都是 undefined. 3.前增量运算符,就是数值上加 1,形式是在变量前放两个加号(++): var iNum = 10; ++iNum; 第二行代码把 iNum 增加到了 11,它实质上等价于: var iNum =

Python3 基础 —— 模块 Module 介绍

1.模块的作用 在交互模式下输出的变量和函数定义,一旦终端重启后,这些定义就都不存在了,为了持久保存这些变量.函数等的定义,Python中引入了模块(Module)的概念.一个Python模块其实就是一个脚本文件,具有后缀".py",例如 hello.py 就是一个模块文件名,和普通文件一样可以被永久保存在本地存储磁盘中. 2.模块的内容 Python模块中存放的是一些程序代码,例如,变量定义.函数定义或是代码语句.下面是hello.py模块的内容,其中有一个变量 a,一个函数 fun

SQL基础三(例子)

-------------------对分组统计的结果进一步筛选(having子句使用)------------------------------ select * from student2010 --1.查询qypt08class表中各院系的人数,只显示人数多于400的记录 select yx,sum(rs) from qypt08class group by yx having sum(rs)>400 --2.统计stucou表中各门课程的选修人数,只显示人数少于30的记录(显示coun

Object Pascal 语法之语言基础(三)

1.6 Object Pascal 的运算符 运算符是程序代码中对各种类型的数据进行计算的符号,通常分为算数运算符.逻辑运算符.比较运算符和按位运算符. 1.算术运算符Object Pascal 语言的算术运算符,如表1-9 所示.表1-9 Object Pascal 语言算术运算符 操作符 操作 操作数据类型 结果类型 + 加 整型.实型 整型.实型 - 减 整型.实型 整型.实型 * 乘 整型.实型 整型.实型 / 除 整型.实型 整型.实型 mod 取余 整型 整型 div 整除 整型 整

色彩及图像基础(三)

色彩及图像基础(三) 学习时间:2014.04.30 学到了-- 1. 图像压缩的基础在于: ①原始图像信息存在着很大的冗余度: ②人眼对图像的亮度信息敏感.对颜色分辨率弱. 2. 数据压缩的两类基本方法: ①无损压缩:将相同的或相似的数据或数据特征归类,使用较少的数据量描述原始数据,达到减少数据量的目的. ②有损压缩:利用人眼的视觉特性有针对性地简化不重要的数据,以减少总的数据量. 3. 图像的编码方法:行程编码.增量调制编码和霍夫曼编码. 行程编码: 1. RLE(Run-Length En

【蓝鸥Unity开发基础三】课时3 Terrain地形系统【未完】

[蓝鸥Unity开发基础三]课时3  Terrain地形系统[未完] 推荐视频讲师博客:http://11165165.blog.51cto.com/ 一.Terrain地形系统 Terrain地形系统 资源包的导入 场景漫游 立方体是:长宽高1m 二.Terrain地形系统 1.Terrain组件:提升地形/沉降地形工具 点击左键-- 提升地形 点击左键+Shift--沉降地形 选择笔刷的形状.笔刷的大小,笔刷的硬度--绘制地形 2.Terrain:平坦地形工具:设置地形目标高度 平滑地形工具

【蓝鸥Unity开发基础三】课时2 游戏对象和基本操作

[蓝鸥Unity开发基础三]课时2 游戏对象和基本操作 一.首先,让我们先看一下下面的图片--金字塔架构 推荐视频讲师博客:http://11165165.blog.51cto.com/ 一个游戏有多个场景组成, 场景是由多个游戏对象组成, 每一个游戏对象身上由多个组件组成的, 每个组件都是为了完成某个特定的功能! 二.创建一个游戏环境--01 1.快捷键--CTRL+S 2.创建的环境会在视图中显示 3.在Create视图中邮件--选3D Object 4.创建一个--Plane 5.创建一个