一.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.三元运算

 #比较两数,输出最大的值
a=int(input('数字A:'))
b=int(input('数字b:'))
c=a if a>b else b
print(c)
------------------------------
数字A:14
数字b:41
41

if...else...

 #比较三数,输出最大的值
a=int(input('数字A:'))
b=int(input('数字b:'))
c=int(input('数字c:'))
d=(a if a>b else b) if(a if a>b else b) else c
print(d)
----------------------------------------------------
数字A:124
数字b:121
数字c:21
124

三数最大值

二.while循环

while 判断条件:

语句

1.注意冒号和缩进

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

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

4.使用标志

 #定义一个变量作为标志,用于判断整个程序是否属于活动状态
active=True
while active:
message=input()
if message == 'quit':
active=False
else:
print(message)
---------------------------------------------------
d
d
33
33
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()输出函数

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

print()

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

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

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

 s="hello,world"
print(str(s))
print(repr(s))
a='hello world\n'
print(a)
print(repr(a)) # repr() 函数可以转义字符串中的特殊字符
print(str(a))
print(repr((s,a,('glle','runs'))))#repr(一个参数),参数可以是 Python 的任何对象
-----------------------------------------------------------------------------------------
hello,world
'hello,world'
hello world 'hello world\n'
hello world ('hello,world', 'hello world\n', ('glle', 'runs'))

str()和repr()

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

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

str.format()

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

补充

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

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

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

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

input()函数让程序暂停工作,等待用户输入一些文本,用户按回车键后程序继续运行。我们可以将文本赋值存储在一个变量中,

 #input(*args, **kwargs)
#kwargs:表示关键字参数,它是一个dict
# input() 置函数从标准输入读入一行文本,默认的标准输入是键盘
#input 可以接收一个Python表达式作为输入,并将运算结果返回
#使用input时,python将用户输入解读为字符串,可用int()来获取数值输入
print(input('name:'))
a=input("old:")
print(a)
print(type(a))
b=int(a)
print(b)
print(type(b))
----------------------------------------------------------------------
name:alex
alex
old:16
16
<class 'str'>
16
<class 'int'>

input()

*input和split读取多个输入

 n1,n2=input('shuru1: ').split('#')#输入两个字符串,以#表示分隔
n3,n4,n5=input('shuru2:').split()##输入三个字符串,默认以空格表示分隔
s1=int(n1)+int(n2)
print(s1)
s2=int(n1)+int(n3)-int(n5)+int(n4)
print(s2)
--------------------------------------------------------
shuru1: 12#
shuru2:231 33 23
667
253

split

八.迭代器iterator

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

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

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

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

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

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

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

iter()和next()

九.生成器generator

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

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

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

 def test():
print('xxx')
yield 1
print('a')
yield 2
print('b')
yield 3
print('c')
yield 7
print('d') g=test()
print(g)#<generator object test at 0x02DEE900> print(next(g))#xxx 1
print(next(g))#a 2
----------------------------------------------------------------
<generator object test at 0x0568E900>
xxx
1
a
2

yield

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

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

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

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

生成器表达式创建

6.生成器的send()方法

 #send方法有一个参数,指定的是上一次被挂起的yeild语句的返回值
#相比于.__next__(),可以额外的给yield语句传值
#注意第一次调用 t.send(None) def test():
print('xx')
res1=yield 1#'ooo'
print(res1) res2=yield 2
print(res2) g=test() print(g.__next__())#调用.__next__()方法时,执行函数xx 1
# print(g.__next__())#调用.__next__()方法时,执行函数None 2
print(g.send('ooo'))#调用send方法,给上次的yeild指定返回值ooo 2
-------------------------------------------------------------
xx
1
ooo
2

send()

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

 def test():
print('xxx')
yield 1
print('a')
yield 2
print('b')
yield 3
print('c')
g=test()
print(g.__next__())
g.close()#关闭生成器,无法再访问
# print(g.__next__())异常StopIteration
----------------------------------------------------
xxx
1

.close

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

十.补充

1.assert关键字

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

assert

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

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

python3 基础三的更多相关文章

  1. python002 Python3 基础语法

    python002 Python3 基础语法 编码默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码: # -* ...

  2. Python3基础(十二) 学习总结·附PDF

    Python是一门强大的解释型.面向对象的高级程序设计语言,它优雅.简单.可移植.易扩展,可用于桌面应用.系统编程.数据库编程.网络编程.web开发.图像处理.人工智能.数学应用.文本处理等等. 在学 ...

  3. Python3基础(八) 模块

    在程序中定义函数可以实现代码重用.但当你的代码逐渐变得庞大时,你可能想要把它分割成几个文件,以便能够更简单地维护.同时,你希望在一个文件中写的代码能够被其他文件所重用,这时我们应该使用模块(modul ...

  4. Python3基础语法和数据类型

    Python3基础语法 编码 默认情况下,Python3源文件以UTF-8编码,所有字符串都是unicode字符串.当然你也可以为原码文件制定不同的编码: # -*- coding: 编码 -*- 标 ...

  5. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  6. Bootstrap <基础三十二>模态框(Modal)插件

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 如果您想要单独引用该插件的功能,那么您需要引用  ...

  7. Bootstrap <基础三十一>插件概览

    在前面布局组件中所讨论到的组件仅仅是个开始.Bootstrap 自带 12 种 jQuery 插件,扩展了功能,可以给站点添加更多的互动.即使不是一名高级的 JavaScript 开发人员,也可以着手 ...

  8. Bootstrap <基础三十>Well

    Well 是一种会引起内容凹陷显示或插图效果的容器 <div>.为了创建 Well,只需要简单地把内容放在带有 class .well 的 <div> 中即可.下面的实例演示了 ...

  9. Bootstrap<基础三> 排版

    Bootstrap 使用 Helvetica Neue. Helvetica. Arial 和 sans-serif 作为其默认的字体栈. 使用 Bootstrap 的排版特性,您可以创建标题.段落. ...

随机推荐

  1. 判断浏览器是否ie6

    if ($.browser.msie && ($.browser.version == "6.0") && !$.support.style) { ...

  2. Nuget下载 MySql.Data 连接MySql数据库

    打开VS项目,右键项目选择 右上角搜索框中搜索 MySql.Data 然后可以选择安装,但是可能会出现这个提示 这是因为版本的问题,所以,自己去官网重新下载,我这里选择的是这个版本, 官网地址: ht ...

  3. [转帖]一文看懂mysql数据库本质及存储引擎innodb+myisam

    一文看懂mysql数据库本质及存储引擎innodb+myisam https://www.toutiao.com/i6740201316745740807/ 原创 波波说运维 2019-09-29 0 ...

  4. [转帖]持久化journalctl日志清空命令查看配置参数详解

    持久化journalctl日志清空命令查看配置参数详解 最近 linux上面部署服务 习惯使用systemd 进行处理 这样最大的好处能够 使用journalctl 进行查看日志信息. 今天清理了下 ...

  5. sql query skill

    https://www.w3resource.com/sqlite/sqlite-select-query-statement.php /* SELECT ChipID FROM "tb_X ...

  6. 【百度之星2019】Strassen

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6719 在本题中,我们只有两种方法计算两个的矩阵的乘积,第一种为定义法,需要次乘法和次加法.第二种为 ...

  7. react项目中canvas之画形状(圆形,椭圆形,方形)

    组件DrawShape.jsx如下: import React, { Component } from 'react' // import ClassNames from 'classnames' i ...

  8. 其实每个行业都有各自的辛苦,好的程序员并不累,他们乐此不疲(见过太多在职位事业、人生方向上随转如流的人,累了疲乏了就去做别的事情了。必须有自己的坚守和立足的点,自我驱动,否则沦为在别人的体制制度中被驱赶一生)good

    作者:陈柯好链接:https://www.zhihu.com/question/39813913/answer/104275537来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  9. Codeforces 1245 D. Shichikuji and Power Grid

    传送门 经典的最小生成树模型 建一个点 $0$ ,向所有其他点 $x$ 连一条边权为 $c[x]$ 的边,其他任意两点之间连边,边权为 $(k_i+k_j)(\left | x_i-x_j\right ...

  10. 解决IIS出现“由于权限不足而无法读取配置文件”的问题

    在部署IIS项目的时候,今天突然遇到了如下问题: HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效 详细错误信息: 由于权限 ...