python基础知识-第5节


1.for循环

1.1 for循环和可迭代对象遍历

for 变量 in 可迭代对象

for x in (20,30,40):
    print(x)
for x in "asdfa":
    print(x)
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)
for x in range(5):
    print(x)
print("#################")
sum_all = 0
sum_odd = 0
sum_even = 0
for x in range(101):
    sum_all +=x
    if x%2==1:
        sum_odd +=x
    else:
        sum_even +=x
print("1-100累加总和{0},奇数和{1},偶数和{2}".format(sum_all,sum_odd,sum_even))

1.2 嵌套循环

#嵌套循环
for x in range(5):
    for y in range(5):
        print(x,end="\t")
    print("\n")
#打印九九乘法表
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()
#使用列表和字典存储表格和数据
tb = []
r1 = dict(name="高小一",age=18,salary=30000,city="北京")
r2 = dict(name="高小二",age=19,salary=40000,city="上海")
r3 = dict(name="高小三",age=20,salary=10000,city="深圳")
tb = [r1,r2,r3]

for x in tb:
    if x.get("salary")>15000:
        print(x)

1.3 break语句、continue语句、else语句

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

#测试break语句
while True:
    a = input("请输入一个字符(输入Q或q时退出):")
    if a=="q" or a =="Q":
        print("循环结束,退出")
        break
    else:
        print(a)

continue语句用于结束本次循环,继续下一次

# 测试continue循环
empNum = 0
salarySum = 0
salarys = []
while True:
    s = input("请输入员工的薪资(按Q或q结束)")
    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))

else语句,while、for循环可以附带else语句。如果while、for语句没有被break语句结束,则会执行else子句,否则不执行。

# 测试else语句
salarySum = 0
salarys = []
for i in range(4):
    s = input("请输入4名员工的薪资(按Q或q结束)")
    if s.upper() == "Q":
        print("录入完成,退出")
        break
    if float(s) < 0:
        continue
    salarys.append(float(s))
    salarySum += float(s)
else:
    print("您已经全部录入4名员工的薪资")

print("录入薪资:", salarys)
print("平均薪资{0}".format(salarySum / 4))

1.4 循环代码的优化

1.循环计算,尽量减少计算次数
2.列表插入尽量在末尾不要在中间

2.zip()并行迭代

#测试zip()并行迭代
for i in [1,2,3]:
    print(i)

names = ("高琪","高老二","高老三","高老四")
age = (18,16,20,25)
jobs = ("老师","程序员","学生")
for name,age,job in zip(names,age,jobs):
    print("{0}--{1}--{2}".format(name,age,job))

for i in range(3):
    print("{0}--{1}--{2}".format(names[i],age[i],jobs[i]))

3.推导式创建序列

3.1 列表推导式

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

# 测试推导式
# 列表推导式
y = [x * 2 for x in range(1, 50) if x % 5 == 0]
print(y)

y = []
for x in range(1, 50):
    if x % 5 == 0: y.append(x * 2)
print(y)

cells = [(row, col) for row in range(1, 10) for col in range(1, 10)]
print(cells)

3.2 字典推导式

# 字典推导式
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)

3.3 集合推导式

# 集合推导式
b = {x for x in range(1,100) if x%9==0}
print(b)

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

# 生成器推导式(生成元组)
gnt = (x for x in range(4))
print(tuple(gnt))

for x in gnt:   #gnt是生成器对象,生成器是可迭代的对象
    print(x, end=",")
print(tuple(gnt))

4.特殊方法和运算符重载

在这里插入图片描述

# 测试运算符重载
class Person:
    def __init__(self,name):
        self.name = name
    def __add__(self,other):
        if isinstance(other,Person):
            return "{0}--{1}".format(self.name,other.name)
        else:
            return "不是同类对象,不能相加"
    def __mul__(self,other):
        if isinstance(other,int):
            return self.name*other
        else:
            return "不是同类对象,不能相乘"
p1 = Person("高琪")
p2 = Person("高希希")
x = p1+p2
print(x)
y = p1*30
print(y)

5.画同心圆

# 练习画同心圆
import turtle
t = turtle.Pen()
my_Colors = ("red","green","yellow","black")
t.width(4)
t.speed(0)
for i in range(10):
    t.penup()
    t.goto(0, -i*10)
    t.pendown()
    t.color(my_Colors[i%len(my_Colors)])
    t.circle(10+i*10)
turtle.done()  #程序执行完,窗口仍然在

6.函数的用法和底层分析

可重复使用的程序代码块。
函数代表一个功能或者方法
Python函数分为:内置函数/标准库函数/第三方库函数/用户自定义函数

6.1函数的定义和调用

def 函数名(【参数列表】):
‘’‘文档字符串’‘’
函数体/若干语句

# 测试函数的定义和调用
def test01():
    print("*" * 10)
    print("@" * 10)
test01()  #调用函数

6.2函数的实参和形参

#实参和形参的基本用法
def printMax(a,b):
    '''用于比较两个数的大小,打印较大的值'''
    if a>b:
        print(a,"最大值")
    else:
        print(b,"最大值")
printMax(10,20)
help(printMax.__doc__)

6.3 函数的返回值

def add(a,b):
    print("计算两个数的和:{0},{1},{2}".format(a,b,(a+b)))
    return a+b

def test02():
    print("sxt")
    print("gao")
    return    #return两个作用:1.返回值;2.结束函数的执行
    print("hello")

def test03(x,y,z):
    return [x*10,y*10,z*10]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值