欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python基础语法(for循环和函数使用)

程序员文章站 2022-04-22 12:11:26
Python 回忆录2020/8/26For 循环结构Range 对象嵌套循环Break语句Else 语句循环代码的优化使用zip()并行迭代推导式创建序列小练习函数的用法和底层分析形参和实参返回值2020/8/26For 循环结构for 变量 in 可迭代对象:循环体语句可迭代对象 就是序列。 可以是元组,字符串 ,列表for x in (20,30,40)print(x*3)for y in "abcdefg"print(y)d = {'name': 'liuxi...


For 循环结构

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

可迭代对象 就是序列。 可以是元组,字符串 ,列表

for x in (20,30,40) print(x*3) for y in "abcdefg" print(y) d = {'name': 'liuxi','age':18,'job':'programmer'} for x in d: #== d.keys print(x) for x in d.items: print(x) 

Range 对象

是一个序列,产生一个数字范围的整数

sum_all = 0 sum_odd = 0 sum_even = 0 for x in range(101) sum_all += x if x%2==1: sum_0dd += x else: sum_even += x print({0} {1}{2},format(sum_all,sum_odd,sum_even)) 

嵌套循环

就是循环内套循环,也叫多重循环

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

python基础语法(for循环和函数使用)

99乘法口诀

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 = {'name': 'mark', 'age': 18, 'salary': 1000, 'city': 'beijing'} r2 = {'name': 'jack', 'age': 20, 'salary': 1500, 'city': 'beijing'} r3 = {'name': 'hank', 'age': 28, 'salary': 8000, 'city': 'beijing'} tb = [r1, r2, r3] for x in tb: if x.get('salary') > 1000: print(x.values()) 

Break语句

break 用于while, for中断循环 只能中断最临近的循环

while True: a = input("输入一个字符,有q是退出") if a == 'q' or a == 'Q': print("有q 程序退出") break elseprint(a) 

continue 用于结束本次循环,然后继续下一次循环

Else 语句

while,for循环可以带一个 else,如果 for,while 被break 停止了,就不执行else了

salary_sum = 0 salary = [] for i in range(4): s = input("请输入4个员工的工资 按q结束") if s.upper() == "Q": print("程序结束 已退出") break if float(s) < 0: continue salary_sum += float(s) salary.append(float(s)) else: print("已录入所有员工") print("总工资是:", salary_sum) print("平均工资是", salary_sum//4) 

循环代码的优化

编写循环时 遵守3个原则 来提高运行效率

  1. 尽量减少循环内部不必要的计算
  2. 嵌套循环中,尽量减少内层循环的计算,尽可能的往外面放
  3. 局部变量比较好,因为局部变量查询快
  4. 连接多个字符串,使用join 而不是使用+
  5. 列表插入最好 是在列表尾部操作

使用zip()并行迭代

可以使用多个序列 并行迭代

name = ('jiaxi', 'jake', 'hank',) age = (16, 17, 18, 22) jobs = ("worker", "nurse", "doctor") for name, age, jobs in zip(name, age, jobs): print("{0}---{1}---{2}".format(name, age, jobs)) 

推导式创建序列

是一个典型的Python 风格,是一个或者多个迭代器快速创建序列的一种方法。

列表推导式
[表达式 for item in 可迭代对象]
or
[表达式 for item in 可迭代对象 if 条件判断]

y = [x*2 for x in range(1,5)] print (y) y = [x*3 for x in range(1,50) if x/5 ==0] print (y) cell = [(x,y) for x in range(5) for y in range(5)] print(cell) 

字典推导式
{key : value for 表达式 in 可迭代对象} 也可以增加if条件判断 和多个for 循环

#统计文本中出现的次数 my_text = " i love you, you love me" char_count = {c: my_text.count(c) for c in my_text if my_text.count(c) >= 2} print(char_count) 

集合推导式
{key for item in 可迭代对象} 也可以加if条件语句。集合不可重复

生成器推导式(生成元组)
(表达式 for item in 可迭代对象)
只能读取一次,返回的是一个生成器,用来生成一个元组
y = (x*3 for x in range(1,50) if x/5 ==0)
print (y)
只能读取一次

小练习

海龟画图画同心圆 并且换不同的颜色

import turtle
p = turtle.Pen() p.width(4) my_colors = ['yellow', 'light blue', 'brown', 'red', 'pink'] p.speed(0) for i in range(100): p.penup() p.goto(0, -10*i) p.pendown() p.color(my_colors[i % len(my_colors)]) p.circle(20+i*10) turtle.done() 

函数的用法和底层分析

函数的可复用性 的程序代码块,也代表了一个功能。

有内置函数,标准库函数,第三方库函数,,自定义函数

def 函数名([参数列表]):
函数体/多个语句块
”文档字符串“

def test01(): print("*"* 10) test01() 

形参和实参

  1. 圆括号内是形式参数列表,有多个参数则使用逗号隔开
  2. 形式参数不需要参数声明,也不需要指定函数返回类型
  3. 无参数也要必须要保留空的圆括号
  4. 实参列表必须与形参列表一致
def printMax(a, b): """用于比较两个数的大小""" max1 = '' if a > b: max1 = a else: max1 = b return max1
        
                
printMax(10, 20) d = printMax(10, 20) 

返回值

如果函数中包含return 则代表返回了一个值 或者中断函数
如果函数中不包含return 则返回None值,有return 但没有值 也是None
要返回多个返回值的时候,使用列表,元组,字典 集合将多个值”存起来“即可

本文地址:https://blog.csdn.net/weixin_50192514/article/details/108239680