python学习笔记3

本文详细介绍了Python中的基本数据类型(元组、列表、不可变类型和可变类型),集合的操作,字符串的常用命令,函数的定义、可变参数、全局与局部变量,以及递归和匿名函数的概念。同时展示了如何使用这些概念实现一个简单的计算器和商店管理系统。
摘要由CSDN通过智能技术生成
元组:用小括号表示,英文为tuple。元组和列表类似,但是定义完不可以改变。
t = ()#因为不可以改变,所以t最终会是一个空元组
t = (1,2,2,1)
print(t[0])#打印第1个元素
print(t.count(2))#打印元组中2的个数
x,y = (1,2)#x为1,y为2
可变和不可变
可变:列表、字典、集合
不可变:字符串、整数、浮点数、布尔值、元组
可变类型数据:当数据发生变化时,地址不发生变化
不可变类型数据:当数据发生变化时,地址发生变化
集合:没有重复元素并且无顺序的数据结构。英文为set
s = set({})#要注意,定义集合必须带set,否则会被认为是字典
增加:
s.add(1)
删除:
s.remove(1)#根据值删除,如果删除元素不存在会报错
s.pop()#随机删除
s.discard(1)#删除,如果元素不存在,不报错
s.clear()#清空
长度:
print(len(s))
元素是否存在:
print(1 in s)
合并:
s.update([6,7])#列表
s.update((6.7))#元组
s.update({'6':7})#字典
s.update ({6,7})#新的集合
交集、并集、差集:
s1 = {1,2,3}
s2 = {2,3,4}
print(s1&s2)#交集
print(s1|s2)#并集
print(s1-s2)#差集
所以,可利用集合的性质去重复:
l = [1,2,3,4,5,5,2,3]
print(list(set(l)))#把列表转化成集合再转化回列表并打印
注意事项
t = (1,)#元组只有一个元素时,需要加逗号
s = set({})#创建空集合要用set
#字典的键不能用可变类型数据
字符串的常用命令:
s = ' Fender '
s.count('e')#'e'在字符串s中出现的次数
s.replace('Fen','Gib')#从左到右替换。最后可加替换次数s.replace('e','a',1)默认为全部替换
s.split('e')#分割
s.startswith('G')#会打印出True或False。判断以什么开头
s.endswith('r')#以什么结尾
s.strip()#去掉两边的空格s.lstrip,s.rstrip分别去左右
s1 = '*'
print(s + s1)#将两个字符串合起来
print(s1.join(s))#用s1分隔开s
print(s.find('e'))#查询字符的索引s.rfind为从右往左查。不存在返回-1
print(s.index('e'))#和find相同,但不存在会报错
函数
是一系列语句的集合
作用:让代码的可读性更高,实现代码复用
先声明再调用
def print_name():#声明函数
    print('我叫帕鲁')

print_name()#调用函数

可变参数

def add(a,b,*args,**kwargs):#args为一个元组,*args为拆包后的元组。kwargs为字典。
#拆包
x, y = (1, 2)
print(x, y)

全局变量:整个py文件任何地方都可以调用。

局部变量:只有在函数内部有效。

name = 'A'#全局变量
def show():
    name = 'B'#局部变量
if __name__ == '__main__':
    show()
    print(name)

当需要在函数内部修改全局变量时需加global:

name = 'A'#全局变量
age = 10
def show():
    global name,age
    name = 'B'#局部变量
    age = 100
if __name__ == '__main__':
    show()
    print(name)
    print(age)

return 有返回值的功能,并有结束函数的功能,支持返回多个值,类型为元组。

函数默认的返回值为None。

def show(name,age):
    name = '我叫%s'%name
    age = '我今年%s岁了'%age
    return name,age
name,age = show('老李',50)
print(name,age)

递归函数:函数调用自己;函数一定要有终止条件。

结算6的阶乘:

def jiecheng(num):
    if num == 1:#终止条件
        return num
    return num*jiecheng(num-1)#调用自己
print(jiecheng(6))

匿名函数:没有名字的函数,只能有一个式子,计算一些简单的操作。用lambda

lambda a,b:a+b

声明一个函数,计算这些参数的和:

def add(x, y, z=3, *args, **kwargs):  # 组合参数
    sum = x + y + z
    # (4,5,6,7,8,9)
    for i in args:
        sum += i
    # {'a' :1,'b':2,'c':3}
    for j in kwargs.values():
        sum += j
    print(sum)

add(1, 2, 3, 4, 5, 6, 7, 8, 9, a=1, b=2, c=3)

用函数来让商店管理系统更简洁:

#商店管理系统:
    #1、录入商品
    #2、查找商品
    #3、修改商品
    #4、下架商品
    #5、列出所有商品信息
    #6、退出
infos = []
def add_item():#添加商品
    print('录入')
        name = input('请输入道具名:')
        num = int(input('请输入道具数量:'))
        price = float(input('请输入道具价格:'))
        infos.append({'name':name,'num':num,'price':price})
        print(infos)
def search():#查找商品
    print('查找')
        name = input('请输入道具名')
        for item in infos:
            if item.get('name') == name:
                print('道具名为{}'.format(item.get('name')))
                print('道具数量为{}个'.format(item.get('num')))
                print('道具价格为{}元'.format(item.get('price')))
                break
def modify_item():#修改商品
    print('修改')
        name = input('请输入道具名:')
        for item in infos:
            if item.get('name') == name:
                while True:
                    print('请问想修改什么?1、名 2、量 3、价 4、返回')
                    j = int(input('请选择序号:'))
                    if j == 1:
                        name = input('请输入新的名称:')
                        item['name'] = name
                    elif j == 2:
                        num = int(input('请输入新的数量:'))
                        item['num'] = num
                    elif j == 3:
                        price = float(input('请输入新的价格:'))
                        item['price'] = price
                    elif j == 4:
                        break
                    else:
                        print('输入有误')
                break
def remove():#删除商品
    print('下架')
        name = input('请输入要下架的道具名:')
        for item in infos:
            if item.get('name') == name:
                infos.remove(item)
                break
def show():#显示所有商品信息
    print('显示')
        for item in infos:
            print('道具名为{}'.format(item.get('name')))
            print('道具数量为{}个'.format(item.get('num')))
            print('道具价格为{}元'.format(item.get('price')))
def main():
    print('道具屋管理系统'.center(20,'*'))#用*号填满20格除字以外的地方。
    while True:
        i = int(input('请输入功能:1、录入 2、查找 3、修改 4、下架 5、显示 6、退出'))
        if i == 1:
            add_item()
        elif i == 2:
            search()
        elif i == 3:
            modify_item()
        elif i == 4:
            remove()
        elif i == 5:
            show()
        elif i == 6:
            print('退出')
            break
        else:
            print('输入错误')

if __name__ == '__main__':#在pycharm里打main就会出现这个。只有当前模块时会被执行,被导入则__name__不等于__main__
    main()#调用函数

参数:

def print_name(name):#name为参数,可在调用时输入。
    print('我叫%s'%name)
print_name('帕鲁')




def add(x,y ,z = 0):#如z未输入则默认为0
    print(x+y+z)
a = int(input('请输入数字:'))
b = int(input('请输入数字:'))
add(a,b)




def show(name,age):
    print('我叫%s'%name)
    print('年龄是%s'%age)
show('帕鲁',22)#必须参数
show(name = '帕鲁', age = 22)#关键字参数,可改参数顺序

定义一个简单的计算器:

def calcu(x, y, z='+'):
    if z == '+':
        print(x + y)
    elif z == '-':
        print(x - y)
    elif z == '*':
        print(x * y)
    elif z == '/':
        if y != 0:
            print(x / y)
        else:
            print('输入有误')
    else:
        print('输入有误')


x = int(input('请输入数字:'))
y = int(input('请输入数字:'))
z = input('请输入运算符:')
calcu(x, y, z)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值