学习python的第十二天

 到今天 python基础部分的学习就已经完成了,这两天进行了复习,以及未学基础知识的补充

包括字典和集合,扩展了斐波拉契数列的求法,相关代码如下

'''
### 1. 集合(Set)
集合是一组无序且唯一的元素。在Python中,集合用花括号 `{}` 表示,或使用 `set()` 函数来创建。集合的特点是:
- **无序**:集合不保证元素的顺序。
- **元素唯一性**:集合中的元素不会重复。

#### 集合的基本操作
```python
# 创建集合
fruits = {"apple", "banana", "cherry"}
# 或使用 set() 函数
unique_numbers = set([1, 2, 3, 4, 4, 5])

#获取集合长度
length=len(unique_numbers)

#将集合转换为列表
lst=list(unique_numbers)

# 添加元素
fruits.add("orange")

#随机取出一个元素
element=fruits.pop()
print(element) #取出来后集合中不存在

#情空集合
fruits.clear()

# 删除元素
fruits.remove("banana")

# 集合运算:并集、交集、差集
set1 = {1, 2, 3}
set2 = {3, 4, 5}

print(set1 | set2)  # 并集 {1, 2, 3, 4, 5}
print(set1 & set2)  # 交集 {3}
print(set1 - set2)  # 差集 {1, 2}
```
'''
# 集合运算:并集、交集、差集
set1 = {1, 2, 3}
set2 = {3, 4, 5}

set3=(set1 | set2)  # 并集 {1, 2, 3, 4, 5}
print(set3)
#print(set1 & set2)  # 交集 {3}
#print(set1 - set2)  # 差集 {1, 2}
#print(set1 ^ set2)  # 对称差集 {4,5}

'''
文件说明:
    不能通过下标索引
    字典的定义
        #定义字典字面值
        {key:value,key:value,...,key:value}
        #定义字典变量
        my_dict={key:value,key:value,...,key:value}
        #定义空字典
        my_dict={}
        my_dict=dict()
        
    字典的常见操作
    增改
    字典[key]=value  #如果key不存在就是新增,如果存在就是修改
    删除
    字典.pop("key")
    清空元素
    字典.clear()
    获取全部的key
    字典.keys()
    遍历字典
    for key in keys
        print(f"字典的key是{key}")
        print(f"字典的value是{字典[key]}")
    统计字典的元素数量
    len(字典)

'''
#定义字典
# my_dict={"王鸣鸿":99,"周杰伦":88,"林俊杰":77}
# print(my_dict["林俊杰"])
#定义嵌套字典
score={"福福":{"语文":100,"数学":99,"英语":98},"jianqi":{"语文":1,"数学":2,"英语":3}}
print(score["福福"]["语文"])
score["beibei"]={"语文":2,"数学":23,"英语":34}
print(score)
score.pop("beibei")
print(score)


#练习
'''1.定义空字典d

2.向d新增2个键值对元素

3.修改第2个元素(指新增的第2个元素)

4. 判断字符“C"是否是d的键

5.获取所有值

6.获取所有键

7.使用d.items()和列表方式获取第2个元素的值

8.使用其他2种方式获取第2个元素的值

9.使用d.get()方式获取自定义的默认值

10.计算d的长度

11.清空d'''

# 1. 定义空字典 d
d = {}

# 2. 向 d 新增 2 个键值对元素
d['A'] = 1
d['B'] = 2
print("新增后字典内容:", d)

# 3. 修改第 2 个元素(指新增的第 2 个元素)
d['B'] = 3
print("修改第2个元素后字典内容:", d)

# 4. 判断字符 "C" 是否是 d 的键
is_C_key = 'C' in d
print("字符 'C' 是否是字典的键:", is_C_key)

# 5. 获取所有值
values = d.values()
print("字典的所有值:", list(values))

# 6. 获取所有键
keys = d.keys()
print("字典的所有键:", list(keys))

# 7. 使用 d.items() 和列表方式获取第 2 个元素的值
second_value_via_items = list(d.items())[1][1]
print("使用 d.items() 获取第2个元素的值:", second_value_via_items)

# 8. 使用其他 2 种方式获取第 2 个元素的值
# 方式一:直接访问键
second_value_via_key = d['B']
print("使用键直接获取第2个元素的值:", second_value_via_key)

# 方式二:将字典转成列表索引访问
second_value_via_list = list(d.values())[1]
print("将字典值转成列表获取第2个元素的值:", second_value_via_list)

# 9. 使用 d.get() 方式获取自定义的默认值
value_with_default = d.get('C', '默认值')
print("使用 d.get() 获取自定义默认值:", value_with_default)

# 10. 计算 d 的长度
length = len(d)
print("字典的长度:", length)

# 11. 清空 d
d.clear()
print("清空后字典内容:", d)

#补充
#list() 函数将字典的键、值或键值对转为列表。这里分别演示将字典的 键、值和键值对转换为列表后的结果。

#假设有一个字典 d:

d = {'A': 1, 'B': 2}

### 1. 转换字典的键为列表

#使用 list(d.keys())将字典 d的所有键转成列表:

keys_list = list(d.keys())
print(keys_list)  # 输出: ['A', 'B']

#转换后,keys_list是包含字典所有键的列表,结构是:['A', 'B']。

### 2. 转换字典的值为列表

#使用 list(d.values()) 将字典 d的所有值转成列表:

values_list = list(d.values())
print(values_list)  # 输出: [1, 2]

#转换后,values_list是包含字典所有值的列表,结构是:[1, 2]。

### 3. 转换字典的键值对为列表

#使用list(d.items())将字典d的所有键值对转成列表:

items_list = list(d.items())
print(items_list)  # 输出: [('A', 1), ('B', 2)]

#转换后items_list是包含字典键值对的列表,每个键值对是一个元组,结构是[('A', 1), ('B', 2)]。


### 总结

#- list(d.keys()):返回字典的键列表,例如 ['A', 'B']。
#- list(d.values())返回字典的值列表,例如 [1, 2]。
#- list(d.items()):返回字典的键值对列表(每个键值对是一个元组),例如 [('A', 1), ('B', 2)]。
#一次性赋值
#a,b = 1,2
#a,b = b,a+b

#循环
# li= []
#
# def fib(n):
#     a,b=0,1
#     for i in range(n):
#         a,b=b,a+b
#         li.append(a)
#     return a
# print(fib(10))
# print(li)

#递归
def fib(n):
    if n<=2:
        return 1
    else:
        res=fib(n-1)+fib(n-2)
        return res
#改成三目运算
    return 1 if n<=2 else fib(n-1)+fib(n-2)

print(fib(10))

从明天开始 就开始学习my_sql部分了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值