python基础语法(for循环和函数使用)
Python 目录
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()
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 else: print(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个原则 来提高运行效率
- 尽量减少循环内部不必要的计算
- 嵌套循环中,尽量减少内层循环的计算,尽可能的往外面放
- 局部变量比较好,因为局部变量查询快
- 连接多个字符串,使用join 而不是使用+
- 列表插入最好 是在列表尾部操作
使用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()
形参和实参
- 圆括号内是形式参数列表,有多个参数则使用逗号隔开
- 形式参数不需要参数声明,也不需要指定函数返回类型
- 无参数也要必须要保留空的圆括号
- 实参列表必须与形参列表一致
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
下一篇: Python编程入门数字和字符串使用