【无标题】

for 循环和可迭代对象遍历

 for 循环通常用于可迭代对象的遍历。for循环的语法格式如下:

 for 变量 in 可迭代对象:

      循环体语句

  可迭代对象

  序列。包含:字符串、列表、元组

  字典

  迭代器对象

  生成器函数

range 对象

range对象是一个迭代器对象,用来产生指定范围的数字序列。格式为:      range(start, end [,step])

生成的数值序列从start开始到end结束(不包含end)若没有填写start,则默认从0开始step是可选的步长,默认为1。

计算1-100以内的奇数和与偶数和:

sum_all = # 求总和
sum_odd = # 求奇数和
sum_even = # 求偶数和
for i in range(101):
    sum_all += i
   
if i % 2 == 1:
        sum_odd += i
   
else:
        sum_even += i

print("1-100的总和{0},奇数和{1},偶数和{1}", sum_all, sum_odd, sum_even)

嵌套循环(多重循环)

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  

for x in range(5):
   
for y in range(5):
       
print(x,end="\t")
   
print()

print()具有换行的意思

打印九九乘法表

for m in range(1, 10):
   
for n in range(1,m+1):
       
print("{0}*{1}={2}".format(m, n, (m*n)), end="\t")
   
print()

打印工资高于一万五的数据

r1 = dict(name="高小一", age=18, salary = 30000, city = "北京")
r2 =
dict(name="高小二", age=19, salary = 20000, city = "上海")
r3 =
dict(name="高小五", age=20, salary = 10000, city = "深圳")
tb = [r1
, r2, r3]
for x in tb:
   
if x.get("salary")>15000:
      
print(x)

break语句

中断的意思,可以打断for、while循环,当有嵌套循环时,break语句只能跳出最近一层循环。

用法:

while True:
    a =
input("请输入一个字符(输入Qq结束)")
   
if a.upper()=='Q':
       
print("循环结束,退出")
       
break
    else
:
       
print(a)

continue语句

结束本次循环,继续下一次。多个循环嵌套时,continue也是应用于最近的一层循环。

empNum = 0
salarySum = 0
salarys = []
while True:
    s =
input("请输入员工工资(按Qq结束)")
   
if s.upper() == 'Q':
       
print("录入完成,退出")
       
break
    if
float(s) < 0:
       
continue
   
empNum +=1
   
salarys.append(float(s))
    salarySum +=
float(s)
print("员工数(0".format(empNum))
print("录入薪资:",salarys)
print("平均薪资(0".format(salarySum/empNum))

循环代码优化

编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效运算:

  1. 尽量减少循环内部不必要的计算
  2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提
  3. 局部变量查询较快,尽量使用局部变量

使用zip()并行迭代

可以通过zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。

 【操作】测试zip()并行迭代

# 测试zip()并行迭代
names = ("高淇", "高老二", "高老三", "高老四")
ages = (
18,16,20,25)
jobs = (
"老师", "程序员", "公务员")

for names,age,job in zip(names,ages,jobs):
   
print("{0}--{1}--{2}".format(names,age,job))

结果:

高淇--18--老师

高老二--16--程序员

高老三--20--公务员

推导式创建序列

推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合,从而避免冗长的代码。推导式是典型的Python风格

列表推导式

列表推导式生成列表对象,语法如下:

# 列表推导式生成列表对象语法
y = [x for x in range(1,5)]
print(y)

[1,2,3,4]

# 列表推导式生成列表对象语法
e = [x*2 for x in range(1, 50) if x % 5 == 0]
print(e)

[10, 20, 30, 40, 50, 60, 70, 80, 90]

字典推导式

字典的推导式生成字典对象,格式如下:

{key_expression : value_expression for 表达式  in  可迭代对象}

类似于列表推导式,字典推导也可以增加if条件判断、多个for循环

集合推导式

集合推导式生成集合,和列表推导式的语法格式类似:

             { 表达式    for   item    in   可迭代对象 }

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

x = {x for x in range(1,100) if x%9 == 0}
print(x)

{99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}

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

y = (x for x in range(1,100)if x%9 == 0)
print(y)

<generator object <genexpr> at 0x0000019B4F64B820>

可以通过print(tuple(y)) 一次性打印值

画同心圆

import turtle
t = turtle.Pen()
t.circle(
100)
t.penup()
t.goto(
0,-100)
t.pendown()
t.circle(
200)
t.penup()
t.goto(
0,-200)
t.pendown()
t.circle(
300)
turtle.done()

用for循环画

# 划同心圆
import turtle
t = turtle.Pen()
my_colors = (
"red", "green", "yellow","black")
for i in range(5):
    t.penup()
    t.goto(
0, -i*10)
    t.pendown()
    t.color(my_colors[i%
len(my_colors)])
    t.circle(
15+i*10)
turtle.done()

函数用法和底层分析

函数的概念:函数是可重用的程序代码块 function

Python函数的分类:

  1. 内置函数:
  2. 标准库
  3. 第三方
  4. 自定义函数

函数的定义和调用

 

  核心要点

   Python 中,定义函数的语法如下:

      def  函数名

           “文档字符串”注释

             函数体/若干语句

     def adddf():

    print("****"*10)





adddf()

形参和实参

def printMax(a,b):
   
if a>b:
       
print(a,'较大值')
   
else:
       
print(b,"较大值")
printMax(
10,20)
printMax(
30,5)

文档字符串

可以在编辑函数时,通过注释插入解释文档

可以通过help(函数名._doc_)查看文档字符串

返回值详解

return返回值要点:(在函数中的函数)

  1. 如果函数体中包含return语句,则结束函数执行并返回值;
  2. 如果函数体中不包含return语句,则返回None值。
  3. 要返回多个返回值,使用列表、元组、字典、集合将多个值“存起来”即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值