最新python学习笔记3,python基础笔记

发布时间:2022-11-17

本文目录一览:

  1. 利用Python进行数据分析-读书笔记(3)
  2. Python之Game笔记(3):pygame简单动画的实现
  3. python自学笔记13:元组和字典的操作
  4. python自学笔记三:循环体
  5. [python自学笔记一 基础输出](#python自学笔记一 基础输出)

利用Python进行数据分析-读书笔记(3)

pandas专门为处理表格和混杂数据设计

import pandas as pd
from pandas import Series, DataFrame

Series 类似于一维数组+索引

data = pd.Series([1,2,3,4,5])  # 生成Series数据
data.values
data.index
pd.Series([1,2], index=['a','b'])  # 设置索引
data['a']  # 通过索引选取Series中单个或一组值
data[data%2==0]  # 进行类似numpy数组的运算,index仍会保留

'a' in data 可以通过python字典创建Series,也可以通过设置index改变Series元素顺序。 缺失值用NaN表示。

pd.isnull(data)  # 检测缺失数据
pd.notnull
data1 + data2  # 根据索引自动对齐数据进行运算,类似join操作
data.name
data.index.name  # 可赋值

index可以通过赋值方式修改。

pd.DataFrame(XXX)  # 传入元素为等长列表或np数组组成的字典可以生成DataFrame数据,字典key值为列名
frame.head()  # 前五行
pd.DataFrame(XXX, columns=[xxx], index=[xxxxx])  # 可能产生NaN
frame['a']  # 取列名为a的一列数据,等价于 frame.a(此时a需要是合理的变量名),可以以列表形式取多列数据,返回的Series序列索引与原DataFrame相同
frame.loc[0]  # 行选取

可以用一个Series/值对某列赋值,需要长度相等。对不存在的列赋值可创建新列。

del frame[列名]  # 删除列

通过索引方式返回数据视图,修改此返回数据也会影响源数据,Series.copy()可以创建副本。 嵌套字典传给DataFrame,外层字典的键作为列名,内层键作为行索引。

frame.T  # 转置
frame.reindex(新索引列表)  # 根据新索引重排,若索引值当前不存在则NaN

列可以用columns关键字重新索引。

obj3 = pd.Series(['blue', 'purple', 'yellow'], index=[0, 2, 4])
obj3.reindex(range(6), method='ffill')  # ffill实现前向值填充

reindex可以修改(行)索引和列。只传递一个序列时,会重新索引结果的行,列可以用columns关键字重新索引。

Series索引

series(索引列表/数值范围切片) 选取对应元素

Python之Game笔记(3):pygame简单动画的实现

  1. 学习pygame基本框架,简单动画的实现; 在pygame中引用图像最简单的方法是image函数。下面在马路的实例中,加入一辆汽车。首先pygame.image.load()函数从硬盘加载一个图像,并创建一个名为my_car的对象。这里,my_car是一个surface,不过是存在内存中,并未显示出来,然后用blit(块移)方法将my_car复制到screen表面上,从而显示出来。 计算机动画实际上就是把图像从一个地方移动到另一个地方,同时几个连接动作交待显示就会产生逼真的效果。 因此,在做动画中,最基本要考虑的因素主要是三个:
  • 一是时间,什么时间移动,多长时间变下一个动作;
  • 二是位置,从什么位置到什么位置;
  • 三是动作,前后两个动作的连续性。 在这个例子中,因为车是俯视的,所以车轮转动实际是看不到的,所以不用考虑连续动作的变化,而是只考虑车的位置和多长时间移动即可。
  • 第一步:pygame.time.delay()来实现时间延迟;
  • 第二步:pygame.draw.rect()把原来位置的图像覆盖掉;
  • 第三步:screen.blit()在新位置引入图像。 下面的程序实现了汽车从驶入到驶出的过程。
  1. 网页

python自学笔记13:元组和字典的操作

定义元组(tuple):

t1 = (1, 2, 3, 4)  # 多个数据元组
t2 = (1,)  # 如果元组内只有一个数据,也需要逗号隔开,否则这个数据将是他本身的类型

元组的操作:

元组类型数据不支持修改,可查找。

查找:

  • 按下标查找:
print(t1[1])
  • 函数查找:
print(t1.index(1))  # 返回对应下标,如果数据不存在,程序将报错
print(t1.count(1))  # 统计数据在元组当中出现的次数
print(len(t1))  # 统计元组当中的数据个数

注意:当元组内嵌套列表数据,可以通过下标的方法对列表数据进行修改,例如:

t3 = (1, 2, ["a", "b"])
t3[2][0] = "c"  # t3的值将变为(1, 2, ["c", "b"])


定义字典(dict)

字典的特点:

  1. 符号为{}
  2. 数据为键(key)值(value)对形式,每个键值对之间用逗号隔开,例如:
dict1 = {"name": "小明", "age": 18, "gender": "男"}

字典的操作:

dict1["name"] = "小红"
dict1["id"] = 3

如果key存在,将修改其所对应的值。如果不存在,将在字典最后添加该键值对。

删除数据

  • del(): 删除字典或删除字典内的键值对
del dict1["name"]  # 删除字典内的键值对,如果删除的key不存在,程序将会报错
del dict1  # 删除字典
  • clear(dict1): 清空字典

查找数据

  1. 按照key进行查找,最后返回相对应的值;
  2. 按函数进行查找:
  • get(key, 默认值): 如果查找的key不存在则返回所写的默认值,如果不写默认值则返回None
print(dict1.get("name"))  # 小明
print(dict1.get("id", 110))  # 110

  • keys(): 返回字典内的所有key,可用for遍历
print(dict1.keys())
for key in dict1.keys():
    print(key)

逐行输出:name, age, gender

  • values(): 返回字典内的值,可用for遍历
print(dict1.values())
for value in dict1.values():
    print(value)

逐行输出:小明, 18,

  • items(): 将字典内的数据以元组的形式返回,可用for遍历
print(dict1.items())
for item in dict1.items():
    print(item)

逐行输出:("name", "小明"), ("age", 18), ("gender", "男")

遍历字典键值对(拆包)可在for内使用两个临时变量:

for key, value in dict1.items():
    print(f"{key}={value}")

逐行输出:

name=小明
age=18
gender=男

python自学笔记三:循环体

i = 0
result = 0
while i <= 100:
    result += i
    i += 1
print(f"1至100的累加和为{result}")

此段代码将在i小于等于100时重复累加,最终输出结果为:5050。

1至100偶数相加:

i = 0
result = 0
while i <= 100:
    if i % 2 == 0:  # % 取余
        result += i
    i += 1
print(f"1至100偶数相加的和为{result}")

注意此段代码的缩进关系。ifi += 1是同一级别,result += i处于if之下。 因无法编辑格式,故用#表示注释。 思考:猜数游戏代码应怎么写。电脑随机给出一个0至100的数字,由参与者猜测,直至猜测结果与电脑给出的数值一致。

python自学笔记一 基础输出

print("我是python小白")

终端输出:我是python小白 此种写法只用于了解print函数的作用,在程序中要输出某个内容,一般采用变量的形式,即:

my = "小白"
print("我是python%s。" % my)

终端输出:我是python小白。 此处my为变量,小白是被赋值给变量my,并不是my等于变量。定义变量的好处是一个程序可以无限次数的使用它。定义变量还可以为:

a = b = c = 2  # 2同时赋值给a、b、c三个变量
a, b, c = 1, 2, 3  # a=1, b=2, c=3

注意:变量名区分大小写,不能以数字开头。

name, age, weight = "小白", 18, 65.5
stuid = 1
print("我的名字是%s, 我的年龄是%d, 我的体重是%f公斤, 我的学号是%d" % (name, age, weight, stuid))

终端输出:我的名字是小白,我的年龄是18岁,我的体重是65.500000公斤,我的学号是1

print("我的名字是%s, 我的年龄是%d岁, 我的体重是%.2f公斤,我的学号是%03d" % (name, age, weight, stuid))

终端输出:我的名字是小白,我的年龄是18岁,我的体重是65.50公斤,我的学号是001

print(f"我的名字是{name},我明年的年龄是{age + 1}岁, 我的体重是{weight}公斤,我的学号是00{stuid}")

此写法为最常用。 终端输出:我的名字是小白,我明年的年龄是19岁,我的体重是65.5公斤,我的学号是001

  • %d 为整数型函数值,%03d表示以3位整数显示,不足的以0替代,超出的原样显示。
  • %f为小数型函数值,%.2f表示只显示小数点后两位。
  • %s为字符型函数值,字符串应以双引号或单引号括起。