Python基础知识05

Python基础知识05

目录

一、控制语句

二、函数用法和底层分析


一、控制语句

(一)for循环和可迭代对象遍历

序列:字符串、列表、元祖

字典

迭代对象

生成器函数

文件对象

for x in  "sxt001":
    print(x)

d = {'name':'lcc','age':'18','address':'涅阳路'}
for x in d:    #遍历字典所有的key
    print(x)

for x in d.keys():   #遍历字典所有的key
    print(x)

for x in d.values():  # 遍历字典所有的value
    print(x)

for x in d.items():  # 遍历字典所有的键值对
    print(x)

(二)range对象

range(start,end [step])

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

sum_all = 0   #1-100所有数的和
sum_odd = 0   #1-100所有奇数和
sum_even = 0   #1-100所有偶数和
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))

(三)嵌套循环练习

#嵌套循环
for x in range(5):
    for y in range(5):
        print(x,end="\t")
    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()   #换行

#使用列表和字典存储表的数据
tb = []
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语句

    用于while和for循环结束循环,当有嵌套循环时,只能跳出最近一层的循环。

(五)continue语句

    结束本次循环,继续下一次。当多层嵌套时,用于最近的一层循环。

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


#continue输入员工的薪资,若薪资小于0则重新输入,最后打印出录入员工数量和薪资明细以及平均工资
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:如果for、while语句没有被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.尽量减少循环内部不必要的计算

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

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

4.其他优化手段

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

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

(八)使用zip()并行迭代

names = ("高奇","高小二","高老三","高老四")
ages = (18,16,30,32)
jobs = ("老师","程序员","公务员")

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

(九)推导式创建序列

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)

2.字典推导式

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

#字典推导式
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.集合推导式

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

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

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

4.生成器推导式(生成元祖)

一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代数据已经没有了。

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

for x in gnt:   #gnt是生成器对象,生成器是可迭代的对象,只能使用一次。
    print(x,end=",")
print(tuple(gnt))

二、函数用法和底层分析

(一)函数概念

1.函数是可重复调用的程序代码块,代表一个任务、一个功能

2.python函数的分类

(1)内置函数:str()/list()

(2)标准函数:通过import导入

(3)第三函数

(4)用户自定义函数

(二)函数的定义和调用

1.def 函数名([参数表])

         "文档字符串"

         函数体/若干语句

2.要点:

(1)定义:python执行def时,会创建一个函数对象,并绑定到函数名变量上

(2)参数列表:

①圆括号内是形式参数列表,有多个参数则使用逗号隔开

②形式参数不需要声明类型,也不需要指定函数返回值类型

③无参数,也必须保留空的圆括号

④实参列表必须与形参列表一一对应

(3)return返回值:

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

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

(4)调用函数之前必须要先定义函数,即先调用def创建函数对象:

①内置函数对象会自动创建

②标准库和第三方库函数,通过import导入模块时,会执行模块中的def语句

#测试函数的定义和调用

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

test01()
test01()

for i in range(10):
    test01()

 

(三)形参和实参

#测试形参、实参的基本用法
def printMax(a,b):
        if a>b:
            print(a,"较大值")
        else:
            print(b,"较大值")

printMax(10,30)
printMax(67,24)

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

'''      '''

def print_star(n):
    '''根据传入的n,打印多个星号'''
    print("*"*n)

help(print_star.__doc__)

(五)返回值

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

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

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

#测试返回值的基本用法

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

def test02():
    print("xxx")
    print("yyy")

    return
    print("hello")

print(add(56,67))
d = test02()
print(d)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值