欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

Python基础知识(第五天)

发布时间:2025/3/21 python 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Python基础知识(第五天) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

62 .for循环结构_遍历各种可迭代对象_range对象

for 循环和可迭代对象遍历

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

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

for x in (20,30,40):print(x*3)

可迭代对象

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

2.字典

3.迭代器对象(iterator)

4.生成器函数(generator)

5.文件对象

d={"name":"高奇","age":18,"job":"程序员"} for x in d:print(x) for x in d.keys():print(x) for x in d.values():print(x) for x in d.items():print(x)

range 对象

range 对象是一个迭代器对象,用来产生指定范围的数字序列。格式为:range(start, end [,step])生成的数值序列从 start 开始到 end 结束(不包含 end)。若没有填写 start,则默认从 0 开始。step 是可选的步长,默认为1。

sum_all=0 sum_odd=0 sum_even=0 for x in range(101):sum_all +=xif x%2==1:sum_odd+=xelse:sum_even+=x print(sum_all) print(sum_odd) print(sum_even)

63.嵌套循环

嵌套循环

一个循环体内可以嵌入另一个循环,一般称为“嵌套循环”,或者“多重循环”。

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

64.嵌套循环练习_九九乘法表_打印表格数据

九九乘法表

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()

用列表和字典存储下表信息,并打印出表中工资高于 15000 的数据

姓名

年龄

薪资

城市

高小一

18

30000

北京

高小二

19

20000

上海

高小五

20

10000

深圳

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)

65.break语句

break语句

break 语句可用于while和 for 循环,用来结束整个循环。当有嵌套循环时,break语句只能跳出最近一层的循环。

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

66.continue语句

continue语句

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

要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和薪资明细,以及平均薪资

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

67.else语句

while、for 循环可以附带一个 else 语句(可选)。如果 for、while 语句没有被 break 语句结束,则会执行 else 子句,否则不执行。语法格式如下:

员工一共 4 人。录入这 4 位员工的薪资。全部录入后,打印提示“您已经全部录入 4 名员工的薪资”。最后,打印输出录入的薪资和平均薪资

salarySum= 0 salarys = [] for i in range(4):s = input("请输入一共 4 名员工的薪资(按 Q 或 q 中途结束)")if s.upper()=='Q':print("录入完成,退出")breakif float(s)<0:continuesalarys.append(float(s))salarySum += float(s) else:print("您已经全部录入 4 名员工的薪资")print("录入薪资:",salarys) print("平均薪资{0}".format(salarySum/4))

68.循环代码优化技巧(及其重要)

虽然计算机越来越快,空间也越来越大,我们仍然要在性能问题上“斤斤计较”。编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:

1.尽量减少循环内部不必要的计算

2.嵌套循环中,尽量减少内层循环的计算,尽可能向外提。

3.局部变量查询较快,尽量使用局部变量

import timestart = time.time() for i in range(1000):result = []for m in range(10000):result.append(i*1000+m*100) end = time.time() print("耗时:{0}".format((end-start)))start2 = time.time() for i in range(1000):result = []c = i*1000for m in range(10000):result.append(c+m*100) end2 = time.time() print("耗时:{0}".format((end2-start2)))

耗时:1.7897577285766602
耗时:1.3709008693695068

其他优化手段

1.连接多个字符串,使用 join()而不使用+

2.列表进行元素插入和删除,尽量在列表尾部操作

69.zip()并行迭代

使用 zip()并行迭代

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

names = ("高淇","高老二","高老三","高老四") ages = (18,16,20,25) jobs = ("老师","程序员","公务员") for name,age,job in zip(names,ages,jobs):print("{0}--{1}--{2}".format(name,age,job)) for i in range(3):print("{0}--{1}--{2}".format(names[i],ages[i],jobs[i]))

执行结果:

高淇--18--老师

高老二--16--程序员

高老三--20--公务员

70.推导式创建序列_列表推导式_字典推导式_集合推导

式_生成器推导式

推导式创建序列

推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合,从而避免冗长的代码。推导式是典型的 Python 风格,会使用它代表你已经超过Python初学者的水平。

列表推导式

[表达式 for item in 可迭代对象 ]

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

>>> [x for x in range(1,5)] [1, 2, 3, 4]

>>> [x*2 for x in range(1,5)] [2, 4, 6, 8]

>>> [x*2 for x in range(1,20) if x%5==0 ] [10, 20, 30]

>>> [a for a in "abcdefg"] ['a', 'b', 'c', 'd', 'e', 'f', 'g']

字典推导式

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

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

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

my_text = 'i love you,i love sxt,i love gaoqi' char_count = {c:my_text.count(c) for c in my_text} print(char_count)

集合推导式

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

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

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

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

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

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

我们发现提示的是“一个生成器对象”。显然,元组是没有推导式的。一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代发现数据已经没有了。

>>> gnt = (x for x in range(1,100) if x%9==0)

>>> for x in gnt:

print(x,end=' ')

9 18 27 36 45 54 63 72 81 90 99

>>> for x in gnt:

print(x,end=' ')

>>>

71.综合练习_绘制不同颜色的多个同心圆_绘制棋盘

绘制多个同心圆

import turtle t = turtle.Pen() my_colors = ("red","green","yellow","black") t.width(4) t.speed(1) for i in range(10):t.penup()t.goto(0,-i*10)t.pendown()t.color(my_colors[i % len(my_colors)])t.circle(15 + i * 10) turtle.done()

72.函数的基本概念_内存分析_函数的分类_定义和调用

函数是可重用的程序代码块。函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现。

在编写函数时,函数体中的代码写法和我们前面讲述的基本一致,只是对代码实现了封装,并增加了函数调用、传递参数、返回计算结果等内容。为了让大家更容易理解,掌握的更深刻。我们也要深入内存底层进行分析。绝大多数语言内存底层都是高度相似的,这样大家掌握了这些内容也便于以后学习其他语言。

函数的基本概念

1.一个程序由一个个任务组成;函数就是代表一个任务或者一个功能。

2.函数是代码复用的通用机制。

Python 函数的分类

1.内置函数

我们前面使用的 str()、list()、len()等这些都是内置函数,我们可以拿来直接使用。

2.标准库函数

我们可以通过 import 语句导入库,然后使用其中定义的函数。

3.第三方库函数

Python 社区也提供了很多高质量的库。下载安装这些库后,也是通过 import 语句导入,然后可以使用这些第三方库的函数。

4.用户自定义函数

用户自己定义的函数,显然也是开发中适应用户自身需求定义的函数。今天我们学习的    就是如何自定义函数。

函数的定义和调用

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

def 函数名 ([参数列表]) :

      '''文档字符串'''

      ‘函数体/若干语句

要点:

  • 我们使用 def 来定义函数,然后就是一个空格和函数名称;
  • Python 执行 def 时,会创建一个函数对象,并绑定到函数名变量上。
  • 参数列表
  • 圆括号内是形式参数列表,有多个参数则使用逗号隔开
  • 形式参数不需要声明类型,也不需要指定函数返回值类型
  • 无参数,也必须保留空的圆括号
  • 实参列表必须与形参列表一一对应
  • return 返回值
  • 如果函数体中包含return语句,则结束函数执行并返回值;
  • 如果函数体中不包含return语句,则返回None值。
  • 调用函数之前,必须要先定义函数,即先调用def创建函数对象
  • 内置函数对象会自动创建
  • 标准库和第三方库函数,通过 import 导入模块时,会执行模块中的def语句
  •   

    73.形参和实参_文档字符串_函数注释

    形参和实参

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

    上面的 printMax 函数中,在定义时写的 printMax(a,b)。a 和 b 称为“形式参数”, 简称“形参”。也就是说,形式参数是在定义函数时使用的。 形式参数的命名只要符合“标识符”命名规则即可。

    在调用函数时, 传递的参数称为“ 实际参数”, 简称“ 实参”。上面代码中, printMax(10,20),10 和 20 就是实际参数。

    文档字符串(函数的注释)

    程序的可读性最重要,一般建议在函数体开始的部分附上函数定义说明,这就是“文档字符    串”,也有人成为“函数的注释”。我们通过三个单引号或者三个双引号来实现,中间可以加入多行文字进行说明。

    我们调用 help(函数名. doc )可以打印输出函数的文档字符串。

    74.返回值详解

    返回值

    return 返回值要点:

    1.如果函数体中包含return语句,则结束函数执行返回值

    2.如果函数体中不包含return语句,则返回None值。

    3.要返回多个返回值,使用列表、元组、字典、集合将多个值“存起来”即可。

    总结

    以上是生活随笔为你收集整理的Python基础知识(第五天)的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。