https://github.com/jackfrued/Python-100-Days
Day02 语言元素
- 可以使用 type 函数对变量的类型进行检查
- 可以使用Python中内置的函数对变量类型进行转换
Day03 分支结构
- 构造分支结构可以使用 if、elif和else 关键字
- 能使用 扁平化 的结构时就不要使用嵌套
- 如果明确的知道循环执行的次数或者要对一个容器进行迭代,那么推荐使用 for-in循环
sum = 0
for x in range(2,101,2):
sum += x
print(sum)
Day04 循环结构
- 如果要构造不知道具体循环次数的循环结构,推荐使用 while循环
- break 关键字来提前终止循环
- continue 用来放弃本次循环后续的代码直接让循环进入下一轮
Day06 函数和模块的使用
- 不确定参数个数时,用可变参数
def add(*args):
total = 0
for val in args:
total += val
return total
- 只有被Python解释器直接执行的模块的名字才是__main__
if __name__ == '__main__':
print('yes')
- Python查找一个变量时会按照“局部作用域”、“嵌套作用域”、“全局作用域”和“内置作用域”的顺序进行搜索
- 可以使用 global 关键字来指示变量来自于全局作用域
def foo():
global a
a = 200
print(a) # 200
if __name__ == '__main__':
a = 100
foo()
print(a) # 200
- 可以使用 nonlocal 关键字来指示变量来自于嵌套作用域
Day07 字符串和常用数据结构
- + 运算符来实现字符串的拼接
- *运算符来重复一个字符串的内容
- in 和 not in 来判断一个字符串是否包含另外一个字符串
s1 = 'hello ' * 3
print(s1) # hello hello hello
- 数值类型是标量类型,也就是说这种类型的对象没有可以访问的内部结构;而字符串类型是一种结构化的、非标量类型,所以才会有一系列的属性和方法
list1 = [1, 3, 5, 7, 100]
# 添加元素
list1.append(200)
list1.insert(1, 400)
# 合并两个列表
# list1.extend([1000, 2000])
list1 += [1000, 2000]
print(list1) # [1, 400, 3, 5, 7, 100, 200, 1000, 2000]
print(len(list1)) # 9
# 先通过成员运算判断元素是否在列表中,如果存在就删除该元素
if 3 in list1:
list1.remove(3)
if 1234 in list1:
list1.remove(1234)
print(list1) # [1, 400, 5, 7, 100, 200, 1000, 2000]
# 从指定的位置删除元素
list1.pop(0)
list1.pop(len(list1) - 1)
print(list1) # [400, 5, 7, 100, 200, 1000]
# 清空列表元素
list1.clear()
print(list1) # []
list2 = sorted(list1)
# sorted函数返回列表排序后的拷贝不会修改传入的列表
# 函数的设计就应该像sorted函数一样尽可能不产生副作用
list3 = sorted(list1, reverse=True)
# 通过key关键字参数指定根据字符串长度进行排序而不是默认的字母表顺序
list4 = sorted(list1, key=len)
- 元组 中的元素是无法修改的,可以转换为列表再修改;如果不需要对元素进行添加、删除、修改的时候,可以考虑使用元组,当然如果一个方法要返回多个值,使用元组也是不错的选择
- 元组在创建时间和占用的空间上面都优于列表
- Python中的 集合 跟数学上的集合是一致的,不允许有重复元素,而且可以进行交集、并集、差集等运算