Python 100Days 学习记录 Day6~10
https://github.com/jackfrued/Python-100-Days 我学习的网址,以下记录了我自身不太熟悉的知识点。
Day6 循环结构
for-in 循环
"""
每隔1秒输出一次“hello, world”,持续1小时
Author: 骆昊
Version: 1.0
"""
import time
for _ in range(3600):
print('hello, world')
time.sleep(1)
Day7 分支和循环结构实战
Day8 常用数据结构之列表-1
一、列表的运算
可以使用+运算符实现两个列表的拼接,可以使用*运算符实现列表的重复运算
Day9 常用数据结构之列表-2
一、列表的方法
1.删除和添加元素
languages = ['Python', 'Java', 'C++']
languages.append('JavaScript')
print(languages) # ['Python', 'Java', 'C++', 'JavaScript']
languages.insert(1, 'SQL')
print(languages) # ['Python', 'SQL', 'Java', 'C++', 'JavaScript']
remove方法从列表中删除指定元素,只删除第一个符合的元素;pop方法默认删除列表中的最后一个元素,当然也可以给一个位置,删除指定位置的元素;列表还有一个clear方法,可以清空列表中的元素;
languages = ['Python', 'SQL', 'Java', 'C++', 'JavaScript']
if 'Java' in languages:
languages.remove('Java')
if 'Swift' in languages:
languages.remove('Swift')
print(languages) # ['Python', 'SQL', C++', 'JavaScript']
languages.pop()
temp = languages.pop(1)
print(temp) # SQL
languages.append(temp)
print(languages) # ['Python', C++', 'SQL']
languages.clear()
print(languages) # []
2.元素的位置和频次
列表的index方法可以查找某个元素在列表中的索引位置,如果找不到指定的元素,index方法会引发ValueError错误;列表的count方法可以统计一个元素在列表中出现的次数,代码如下所示。
items = ['Python', 'Java', 'Java', 'C++', 'Kotlin', 'Python']
print(items.index('Python')) # 0
# 从索引位置1开始查找'Python'
print(items.index('Python', 1)) # 5
# 从索引位置3开始查找'Java'
print(items.index('Java', 3)) # ValueError: 'Java' is not in list
print(items.count('Python')) # 2
3.元素排序和反转
列表的sort操作可以实现列表元素的排序,而reverse操作可以实现元素的反转,代码如下所示。
items = ['Python', 'Java', 'C++', 'Kotlin', 'Swift'] items.sort() print(items) # ['C++', 'Java', 'Kotlin', 'Python', 'Swift'] items.reverse() print(items) # ['Swift', 'Python', 'Kotlin', 'Java', 'C++']
4.列表生成式
red_balls = list(range(1, 34))
items = [i for i in range(1, 100) if i % 3 == 0 or i % 5 == 0] nums1 = [35, 12, 97, 64, 55] nums2 = [] for num in nums1: nums2.append(num ** 2)
Day10 常用数据结构之元组
一、元组的定义和计算
元组是不可变类型,这就意味着元组类型的变量一旦定义,其中的元素不能再添加或删除,而且元素的值也不能修改。
一个元组中如果有两个元素,我们就称之为二元组;一个元组中如果五个元素,我们就称之为五元组。需要提醒大家注意的是,()表示空元组,但是如果元组中只有一个元素,需要加上一个逗号,否则()就不是代表元组的字面量语法,而是改变运算优先级的圆括号,所以('hello', )和(100, )才是一元组,而('hello')和(100)只是字符串和整数
# 定义一个三元组
t1 = (35, 12, 98)
# 定义一个四元组
t2 = ('骆昊', 43, True, '四川成都')
# 查看变量的类型
print(type(t2)) # <class 'tuple'>
# 查看元组中元素的数量
print(len(t1)) # 3
print(len(t2)) # 4
# 索引运算
print(t1[0]) # 35
print(t2[-1]) # 四川成都
# 切片运算
print(t2[:2]) # ('骆昊', 43)
print(t2[::3]) # ('骆昊', '四川成都')
# 成员运算
print(12 in t1) # True
print('Hao' not in t2) # False
# 拼接运算
t3 = t1 + t2
print(t3) # (35, 12, 98, '骆昊', 43, True, '四川成都')
# 比较运算
print(t1 == t3) # False
print(t1 >= t3) # False
print(t1 <= (35, 11, 99)) # False
二、打包和解包操作
# 打包操作 a = 1, 10, 100 print(type(a)) # <class 'tuple'> print(a) # (1, 10, 100) # 解包操作 i, j, k = a print(i, j, k) # 1 10 100
a = 1, 10, 100, 1000
i, *j, k = a
print(i, j, k) # 1 [10, 100] 1000
三、交换变量的值
a, b = b, a a, b, c = b, c, a
四、元组和列表的比较
元组是不可变类型,不可变类型更适合多线程环境;通常不可变类型在创建时间上优于对应的可变类型。
Python 中的元组和列表类型是可以相互转换的。
infos = ('骆昊', 43, True, '四川成都')
# 将元组转换成列表
print(list(infos)) # ['骆昊', 43, True, '四川成都']
frts = ['apple', 'banana', 'orange']
# 将列表转换成元组
print(tuple(frts)) # ('apple', 'banana', 'orange')
浙公网安备 33010602011771号