PYTHON 基础-DAY4/5 20210403

051 PyCharm

052-055 选择结构

通过判断条件是否成立决定执行分支,选择结构的多种形式:单分支、双分支、多分支。

单分支选择结构

  • 语法结构:
    if 条件表达式:
    (缩进)语句/语句块(缩进对齐一致)
  • 条件表达式详解
    False的情况:False、0、0.0、空值None、空序列对象(空列表、空元组、空字典、空字符串)、空range对象、空迭代对象
    其余情况均为Ture。
    if “False”: #非空字符串,则输出为Ture
  • 条件表达式中,不能存在赋值操作符=

双分支选择结构与三元运算符

  • 双分支语法结构
if 条件表达式:
	语句1/语块1
else:
	语句2/语块2
  • 三元运算符(简单双分支赋值可使用)
    语法结构:条件为真时的值 if 条件表达式 else 条件为假时的值

多分支选择结构

  • 多分支语法结构
if 条件表达式1:
	语句1/语块1
elif 条件表达式2:
	语句2/语块2
...
else:
	语句n/语块n

若每个分支使用完整独立的判断,则可以随意移动不影响使用。若分支之间具有逻辑关系,则不能随意颠倒顺序。

选择结构的嵌套

  • 选择结构可以嵌套,使用时一定注意控制好不同级别代码块的缩进量,因为缩进量决定了代码的从属关系。
  • 语法结构
if 条件表达式1:
	语句/1
	if 条件表达式2:
		语句/2
	else:
		语句/3
else:
	语句/4 

056-053 循环结构

  • 循环体中的语句应该包含改变表达式的语句,以循环趋进结束;否则会变成死循环。

while循环结构

  • while循环语法格式:
while 条件表达式:
	循环体语句

for循环结构

  • for循环通畅用于可迭代对象的遍历,语法格式:
for 变量 in 可迭代对象:
	循环体语句
  • 可迭代对象:序列(字符串、列表、元组)、字典、
  • range对象是一个迭代器对象,用来生成指定范围的数字序列。range(start🔚step)

嵌套循环

  • 嵌套循环,即无限循环
for x in range(5):
	for y in range(5):
		print(x,end='\t')
	print()
"""
0  0  0  0  0
1  1  1  1  1
2  2  2  2  2
3  3  3  3  3
4  4  4  4  4
"""

break和continue语句

  • break语句:用于while和for循环,用于结束循环,只能跳出最近一层循环。
  • continue语句:结束本次循环,继续下一次,应用于最近一层循环。

else语句

  • while、for循环可以附带一个else语句(可选),如果while、for循环没有被break语句结束,则会执行执行else子句,否则不执行。
while 条件表达式:
	循环体
else:
	语句块

for 变量 in 可迭代对象:
	循环体
else:
	语句块

循环代码的优化

  • 遵守以下的原则,可提高运行效率:
    1)尽量减少循环内部不必要的计算
    2)嵌套循环中,尽量减少内层循环的计算,尽可能向外提
    3)局部变量查询比较快,尽量使用局部变量
  • 其他优化手段
    1)连接多个字符串,使用join()而不使用+
    2)列表进行元素插入和删除,尽量在列表尾部操作

064 使用zip()并行迭代

  • 使用zip()函数对多个序列进行并行迭代,zip()在最短序列用完就会停止。
names=('terence','serrini','jorcy')
ages=(30,31,32)
jobs=('singer','singer','singer')
for name,age,job in zip(names,ages,jobs):
	print("{0}-{1}-{2}".format(name,age,job))
#terence-30-singer
#serrini-31-singer
#jorcy-32-singer

065 推导式

  • 推导式是从迭代器快速创建序列的一种方法,可以将循环和条件判断结合,避免冗长的代码。

列表推导式

  • 语法:[表达式 for item in 可迭代对象] 或者[表达式 for item in 可迭代对象 if 条件判断]

字典推导式

  • 格式:{key——experssion:value_expression for 表达式 in 可迭代对象}
    统计文本中字符次数
 my_text="just carry on"
 char_count={c:my_text.count(c) for c in my_text}
 print(char_count)

集合推导式

  • 语法:{表达式 for item in 可迭代对象}或者{表达式 for item in 可迭代对象 if 条件判断}

生成器推导式(生成元组)

-生成生成器对象,而不是直接生成元组。 一次生成器只能返回一次,用完数据就被消除。

  • 语法:(表达式 for item in 可迭代对象)或者(表达式 for item in 可迭代对象 if 条件判断)
gnt=(x for x in range(4))
#不能直接打印,只能通过print(tuple(gnt))
for x in gnt:
	print(x,end=',')
print(tuple(gnt))

练习:绘制同心圆

import turtle
t=turtle.Pen()
for x in range(5):
	t.penup()
	t.goto(0,-i*10)
	t.pendown()
	t.circle(-i*10)
	
 turtle.done() #窗口执行完,窗口仍然在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值