初学Python,值得记下的笔记

172 阅读4分钟

写代码的感觉

图片.png

Node.js:回调套娃
Python:严格的楼梯型缩进
当年认为Python强制缩进,现在体会了“人生苦短,我用Python”的简短。

编程环境

别看网上那些配置七七八八环境变量的教程了!!!

最新VSCode+官方最新的Python即可。都2024了,大多数编程语言win环境下载安装包应该是自动配置环境变量的!!!
配置环境变量,就是让在电脑的任何一个角落都可以调用python.exe这种编译器。
python命令(简写py) 文件名即可运行,为了更短简写如下:

Python运行.gif

安装模块使用pip3

pip3 是 Python 3 的包管理工具,用于安装、升级、卸载 Python 软件包。安装模块:

pip3 install 模块名
pip3 insatll jupyter notebook #安装web应用型Python分段代码运行
pip3 install matplotlib #安装Python绘图库
pip3 install pandas #数据分析处理读取EXCEL

命令行启动 jupyter notebook

图片.png

Jupyter Notebook 是一个非常灵活和强大的工具,它主要用于交互式计算、数据探索、可视化和报告编写。Jupyter Notebook 的核心价值在于它提供了一个易于使用的界面,使得数据科学家、研究人员和工程师能够在一个文档中整合代码、文本、数学公式、图表和其他媒体元素。

注意jupyter notebook默认的文件格式是 .ipynb

Day-1 通过键盘计算计偶数

通过键盘输入一个数,若该数字位各个位上的数字和为奇数,则将该数各位数倒序打印(如 122(各个位上的数字之和为1+2+2=5)。打印 221),若该数字各个位数之和为偶数,则直接打印该数字

图片.png

list = []
sum = 0
num =  input("请输入一个数字:")

for n in num:
    list.insert(0,str(n))
    sum += int(n)

if(sum % 2 == 0):
    print("".join(list))
else:
    print(num)

Day-2 学习numpy数据处理

2、使用numpy完成以下操作: 1)创建一个包含1到10的整数的一维NumPy数组。 2)计算这个数组中所有元素的和。 3)找出并返回这个数组中大于5的元素。 4)创建一个新数组,其中包含原数组中每个元素减去5的结果。

图片.png NumPy 是 Python 中一个非常重要的库,它主要用于科学计算,特别是处理大型多维数组和矩阵。我的理解是对纯数组类数据进行处理。

import numpy as np

arr = np.arange(1, 11)
sum = np.sum(arr)
arr5 = arr[arr > 5]
new_arr = arr - 5

print("1数组:", arr)
print("2所有元素的和:", sum)
print("3找出并返回这个数组中大于5的元素:", arr5)
print("4原数组中每个元素减去5", new_arr)

Day-3 学习CSV文件和制图

1、假设你有一个关于学生成绩的数据集student_score.csv,其中包含学生的学号(StudentID)、姓名(Name)、数学分数(MathScore)和英语分数(EnglishScore)。你需要完成以下任务: student_score.csv内容如下:

注意CSV文件处理。 如果数据来源于 Word注意复制会多空格
推荐: .txt 推荐→ .csv
.xlsx→.csv 会出现乱码错误

8d29c970197e608eee93c76008c6cd20.png

1)加载数据:首先,你需要从CSV文件中加载数据。假设CSV文件名为student_score.csv,并且列名已经正确设置。
2)数据探索:查看数据的前几行,以了解数据的结构和内容。
3)数据清洗:
数学成绩为空的,使用数学成绩平均分填充 英语成绩为空的,使用英语成绩的中位数来填充
4)排序数据:
根据总成绩从高到低对学生进行排序。
5)展示数据:
在一张图上使用matplotlib画出学生数学和英语成绩(填充之后)的趋势折线图。其中学生姓名为x轴,分数为y轴,数学成绩和英语成绩在同一张图上显示。

图片2.png

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

数据 = pd.read_csv('学生成绩.csv')  

print(数据.head(6))

# 数据处理 其他4个人的平均分
math_avg = 数据['MathScore'].mean()
eng = 数据['EnglishScore'].median()

print('平均数学成绩:', math_avg)
print('英语成绩:', eng)


数据.fillna({"MathScore":math_avg}, inplace=True)
数据.fillna({"EnglishScore":eng}, inplace=True)

数据['TotalScore'] = 数据['MathScore'] + 数据['EnglishScore']
# 根据总成绩从高到低对学生进行排序

d = 数据.sort_values(by='TotalScore', ascending=False)

print(d)

plt.rcParams['font.sans-serif']=['SimHei'] ##设置字体为 黑体
plt.rcParams['axes.unicode_minus']=False ##显示符号

# 绘制折线图
plt.figure(figsize=(10, 6))

plt.plot(d['Name'], d['MathScore'], marker='o', label='数学得分')
plt.plot(d['Name'], d['EnglishScore'], marker='s', label='英语得分')
plt.title('学生数学和英语折线图')
plt.xlabel('学生姓名')
plt.ylabel('得分')  
plt.xticks(rotation=45) #设置 x 轴上的刻度标签旋转 45 度
plt.legend()    # 显示图例
plt.tight_layout()  # 自动调整子图参数,使之填充整个图像区域
plt.show()

总结

Python对于数据处理还是比较爽的,写的代码更加简洁。用缩进代替代码包含结构!
我称之为台阶行Python!