day01 Python核心变量-集合

    中间讲集合之前,我自己看了下课程里面讲的循环以及选择语句,就没有再写东西记录。中间看了下有个条件表达式的语法还是要看一下的,python中的条件表达式语法是:

语句1 if 条件 else 语句2
例如:

sex = "男" if sexinfo == "male" else sex = "女"

其中,老师友情提醒了下,一个短路逻辑当有多个条件要进行判断是,把复杂的条件放在后,因为判断是从前向后进行判断的,如果符合条件就会直接返回不会再进行复杂的判断而节约时间。

字符串

  • 字符串的创建
    ①直接创建
	string_name1 = ""

②格式化字符串

string_name1 = "张三"
string_greet = "欢迎光临,%s"%(string_name1)
print(string_greet)
  • 字符串的存储原理
        因为内存的使用是连贯的,所以字符串的修改,系统只能在后面重新申请一块连续的内存把修改(拼接也是)后的字符串放进去,所以一定不是在原字符串的那块内存里修改。这个也是因为字符串是不可变类型的原因,因为字符串的存储原理决定原存储单元不可变
        (ps:参考网上一名答主的话:是否为可变类型在于内存单元的值是否可以被改变。如果是内存单元的值不可改变的,在对对象本身操作的时候,必须在内存的另外地方再申请一块内存单元(因为老的内存单元不可变),老的内存单元就丢弃了(如果还有其他ref,则ref数字减1,类似unix下的hard-link);如果是可变的,对对象操作的时候,不需要再在其他地方申请内存,只需要在此对象后面连续申请(+/-)即可,也就是它的地址会保持不变,但区域会变长或者变短。
  • 字符串的截取
    ①使用索引
string01 = "i miss u"
print(string01[0])
print(string01[2])

输出结果为:i 和 m
②使用切片

string01 = "i want to kiss u"
print(string01[0:1])
print(string01[0:])
print(string01[:])
print(string01[::-1])

输出结果为:
i
i want to kiss u
i want to kiss u
u ssik ot tnaw i

  • 字符串的增加
    ①直接使用算数运算符" + "进行拼接
    ②使用append方法进行追加
  • 字符串的删除
    没有现成的删除元素方法,转换思路,要么转成列表使用pop弹出方法后再转回字符串,要么用replace("")把要删除的字符串换成空字符串
  • 字符串的修改
    str.replace方法
  • 字符串的查找
    str.find()
  • 字符串的遍历
    使用for循环或者while循环配合索引来遍历。
str01 = "123456789"
for(int i = 0; i < str01.len(); i++)
	print(str01[i])

另外,字符串封装的方法很多,没有难点平时可以自行百度查阅,此处不做记录。

列表

  • 列表的存储原理
        列表的简单描述其实就是一个指针数组,在一块连续的内存里存着一串指针指向其他位置的引用。列表是可变的,当目前列表不够用时,其自动扩充。
  • 列表的创建
    list_temp = []
  • 列表的增加
    list.append()、 list.insert()、 list.extend()
  • 列表的删除
    list.remove()、list.pop()、list.clear()、del
  • 列表的修改
#索引赋值
li = [1,2,3,5,'cat',2,3,4,5,'bye']
li[3]='monkey'
print(li)
#结果为:[1, 2, 3, 'monkey', 'cat', 2, 3, 4, 5, 'bye']
#***********************************************************
#分片赋值
s[0:2] =  ‘  ’  #分片赋值 
li = [1,2,3,5,'cat',2,3,4,5,'bye']
li[0:2]=('a')
print(li)
#结果为:['a', 3, 5, 'cat', 2, 3, 4, 5, 'bye']
  • 列表的查找
    索引或者切片,注意每次切片返回的是一个新的列表,而且列表的切片是浅拷贝。
  • 列表的遍历
    各种循环。。大同小异

元组:

    元组的数据不能被修改,其他使用和列表一样

字典

  • 字典的存储原理
        字典对象的核心是散列表.散列表是一个稀疏数组(总是有空白元素的数组)。python中的字典底层依靠哈希表(hash table)实现, 使用开放寻址法解决冲突,这也要求字典的key必须可hash。字典在内存中开销巨大,典型的空间换时间,因为总有空白元素,但是键值对的方式查询速度很快。另外要注意的是不能在遍历字典的时候去修改字典,因为如果遍历期间去增加元素可能导致扩容,字典会新创建一个更大的数组将原来的元素复制进去,但是因为字典是无序的,就会导致元素次序发生变化从而导致发生错误(容量接近 2/3 时,数组就会扩容。)。
        python会根据散列表的拥挤程度扩容。“扩容”指的是:创造更大的数组,将原有内容 拷贝到新数组中。
    键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一
  • 字典的创建
#1.空字典
dic = {}
#2.直接赋值
dic01 = {"ID":001,"Num":23,"Age":18,"Weight":50}
dic02 = ( ID = 001, Num = 23, Age = 3)
#3.通过二元列表
list_source = [("name",tom),("age",13),("class",5)]
dic = dict(list)
#4.通过dict.fromkeys()创建
dic03 = dict.fromkeys(range(3), 'x')    #通常用来设置默认值
#5.通过字典推导式创建
dic = {i:2*i for i in range(3)}         #{0: 0, 1: 2, 2: 4}
#6.dict和zip结合创建
dic = dict(zip('abc', [1, 2, 3]))       #{'a': 1, 'c': 3, 'b': 2}
  • 字典的增加
list_source = [("name",tom),("age",13),("class",5)]
dic = dict(list)
dic["school"] = "第三小学"               #会检查字典中有没有此key,有则更新值没有则添加
  • 字典的删除
#1.删除元素
list_source = [("name",tom),("age",13),("class",5)]
dic = dict(list)
del dic["name"] 	                    #删除key为name的键值对
del dic                                 #删除整个字典
  • 字典的修改
    同列表的增加
  • 字典的查找
    可以用has 或者 遍历
  • 字典的遍历
    for循环遍历

字符串、列表、元组、字典的对比

在这里插入图片描述
列表推导式:

#构建一个1-10000的列表
list_temp = [i for i in range(1,11)]
#构建一个与字符串格式化的列表展示1-1000
list_temp = [f"第{i}名观众" for i in range(1,10000)]
#构建一个与字符串格式化的列表展示1-1000,只含有偶数名
list_temp = [f"第{i}名观众" for i in range(1,10000) if i%2 == 0]

#元组推导式与列表推导式类似,只是修改[]为()
#字典推导式外面的[]应该修改为{}
#列表推导式的嵌套:

list01 = ["香蕉","苹果","哈密瓜"]
list02 = ["可乐","牛奶"]
list03 = []
for r in list01:
    for c in list02:
        list03.append(r+c)
list04 = [r+c for r in list01 for c in list02]
print(list03)




#下面看一个例子:
#合并大小写的值
mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
mcase_frequency = {
    k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0)
    for k in mcase.keys()
    if k.lower() in ['a','b']
}
print mcase_frequency
#  Output: {'a': 17, 'b': 34}
#快速交换key和value
mcase = {'a': 10, 'b': 34}
mcase_frequency = {v: k for k, v in mcase.items()}
print mcase_frequency
#  Output: {10: 'a', 34: 'b'}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,异常处理是非常重要的一部分。当程序运行时如果出现错误,如果没有异常处理,程序就会崩溃。为了避免这种情况,Python提供了异常处理机制。 在Python中,异常处理语句使用 `try` 和 `except` 关键字来实现。`try` 语句块中包含可能会发生异常的代码,如果这段代码出现了异常,则会跳转到 `except` 语句块中执行异常处理代码。 下面是一个简单的例子: ```python try: num = int(input("请输入一个整数:")) print(10/num) except ZeroDivisionError: print("除数不能为0") except ValueError: print("输入的不是整数") ``` 在上面的代码中,我们尝试将用户输入的字符串转换为整数,并将其用作除数计算 10/num。如果用户输入的是 0,则会触发 ZeroDivisionError 异常。如果用户输入的不是整数,则会触发 ValueError 异常。如果发生异常,则会跳转到对应的 except 语句块中执行处理代码。 除了可以指定具体的异常类型,也可以使用 `except Exception` 来捕获所有异常。例如: ```python try: num = int(input("请输入一个整数:")) print(10/num) except Exception as e: print("发生异常:", e) ``` 在上面的代码中,如果发生任何异常,都会跳转到 `except` 语句块中执行处理代码,并将异常信息打印出来。 除了 `try` 和 `except`,还有 `finally` 关键字,它指定的代码块无论是否发生异常都会执行。例如: ```python try: num = int(input("请输入一个整数:")) print(10/num) except Exception as e: print("发生异常:", e) finally: print("程序执行完毕") ``` 在上面的代码中,无论是否发生异常,都会执行 `finally` 中的代码,即输出“程序执行完毕”。 总之,在Python中,异常处理是非常重要的一部分,它可以有效避免程序崩溃,提高程序的健壮性和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值