Python自学(适用于略有基础)

2024-06-09 03:04

本文主要是介绍Python自学(适用于略有基础),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python语法(基于C语言基础和简单Python基础)

参考学习资料:【你觉得自己这辈子都学不会编程?超超超基础Python课程,3小时快速入门 【自学Python教程合集】【3小时快速入门Python】】 https://www.bilibili.com/video/BV1944y1x7SW/?share_source=copy_web&vd_source=3aa9ee0c4fcf2e52762a44f906c09534

命名规则

变量一般如下命名:

  • han_xiang
  • computer_science

类名一般如下命名:(驼峰命名法)

  • StudentCourse

数学运算

加减乘除

两个除号(//)表示除完后向下取整。

乘方:**

e.g. 2的三次方: 2 ∗ ∗ 3 2**3 23

其他复杂运算的数学公式:

import math

e.g.

import mathprint(math.log2(8))

可以通过查阅文档来寻找math库中提供的数学公式:

链接:https://docs.python.org/zh-cn/3/library/math.html

数据类型

  • 字符串 str
  • 整数 int
  • 浮点数 float
  • 布尔类型 bool
  • 空值类型 NoneType
  • 列表
  • 字典
  • ……
type("Hello") # <class 'str'>
type(6) # <class 'int'>
type(None) # <class 'NoneType'>

注意布尔类型的True和False首字母要大写。

输入语句

input("这里是给用户的一些提示")

条件语句

if [条件]:[动作]
elif [条件]:[动作]
else:[动作]

条件语句可以嵌套。

逻辑运算

  • 与:and
  • 或:or
  • 非:not

e.g.

not ( x > 5 and (x < 10 or x == 12))

列表

e.g.

shopping_list = ["键盘", "键帽"]
shopping_list.append("显示器") # 此时原先的列表已经改变
print(len(shopping_list)) # 打印列表里元素的数量
shopping_list.remove("显示器") # 该元素必须之前存在于列表中
shopping_list[1] = "音响" # 索引为1的元素被修改

Python的列表可以放不同类型的数据:

list1 = ["Hello"]
list1.append(66.6)
list1.append(True)
list1.append(None)
print(list1)

此外,Python还有很多可以针对列表的内置函数:

num_list = [1, 13, -7, 2, 96]
print(max(num_list))
print(min(num_list))
print(sorted(num_list))

字典&元组

→哈希表

e.g. 电话簿可以用人名查到手机号

contacts = {"小明": "13700000000","小花": "13700000001"}
print(contacts["小明"])

元组:(列表用方括号,元组用圆括号)

example_tuple = ("键盘", "键帽")

元组不可变,不能添加或删除元素。

字典与元组的结合使用:

contacts = {("张伟", 23): "15000000000",("张伟", 34): "15000000001",("张伟", 56): "15000000002"}zhangwei23_phone = contacts[("张伟", 23)]

字典和列表一样,是可变的。

如果想知道某个键是否已经存在,“键 in 字典”会返回一个布尔值,告知该键是否已经存在于字典里。

del contacts["小明"] # 删除这个键值对

for循环

迭代的对象可以是列表、字典、字符串等。

temperature_list = [36.4, 36.3, 37.2, 37.0]
for temp in temperature_list:# 对每个变量做一些事情# ……

对于字典,可以采用如下操作:

temperature_dict = {"111": 36.4, "112": 36.3, "113": 37.2, "114": 37.0}for staff_id, temperature in temperature_dict.items():if temperature >= 38:print(staff_id)

for循环结合range:

range的起始值在序列中,而结束值不在序列中。

for i in range(5, 10):print(i)

上述代码运行后,i会依次被赋值为5到9的数字并打印。

range()还可以包含第三个参数,表示步长,也就是每次跨几个数字。

格式化字符串

f-字符串:

gpa_dict = {"小明": 3.251, "小花": 3.869, "小李": 2.683, "小张": 3.685}
for name, gpa in gpa_dict.items():print(f"{name}你好,你的当前绩点为:{gpa:.2f}")

函数

e.g. 计算扇形面积

def calculate_sector(central_angle, radius):sector_area = central_angle / 360 * 3.14 * radius ** 2print(f"此扇形的面积为:{sector_area}")calculate_sector(160, 30)

函数也可以带return。

面向对象编程

e.g. 创建House类

class House:def __init__(self, 颜色, 位置, 卧室数):self.颜色 = 颜色self.位置 = 位置self.卧室数 = 卧室数house1 = House("紫色", "长沙", 4)
house2 = House("红色", "深圳", 3)

还可以在类中定义方法函数:

class Student:def __init__(self, name, student_id):self.name = nameself.student_id = student_idself.grades = {"语文": 0, "数学": 0, "英语": 0}def set_grade(self, course, grade): # 第一个“self”不能省略if course in self.grades:self.grades[course] = gradedef print_grades(self):print(f"学生{self.name} (学号:{self.student_id}) 的成绩为:")for course in self.grades:print(f"{course}: {self.grades[course]}分")

类的继承:

e.g. 人类和小猫都属于哺乳动物

class Mammal:def __init__(self, name, sex):self.name = nameself.sex = sexself.num_eyes = 2def breathe(self):print(self.name + "在呼吸...")def poop(self):print(self.name + "在拉屎...")class Human(Mammal): # 继承的父类要写在括号里def read(self):print(self.name + "在阅读...")class Cat(Mammal):def scratch_sofa(self):print(self.name + "在抓沙发...")

如果同时为Human和Cat添加has_tail属性,二者的取值结果并不相同。

解决:使用super()

class Mammal:def __init__(self, name, sex):self.name = nameself.sex = sexself.num_eyes = 2def breathe(self):print(self.name + "在呼吸...")def poop(self):print(self.name + "在拉屎...")class Human(Mammal):def __init__(self, name, sex):super().__init__(name, sex) # 这样会调用父类的构造函数self.has_tail = Falsedef read(self):print(self.name + "在阅读...")class Cat(Mammal):def __init__(self, name, sex):super().__init__(name, sex)self.has_tail = Truedef scratch_sofa(self):print(self.name + "在抓沙发...")

文件操作

相对路径&绝对路径

input()

异常处理

try:user_weight = float(input("请输入您的体重(单位:kg):"))user_weight = float(input("请输入您的身高(单位:m):"))user_BMI = user_weight / user_height ** 2
except ValueError: # 值错误print("输入非合法数字,请重新运行程序,并输入正确的数字。")
except ZeroDivisionError: # 分母为零错误print("身高不能为零,请重新运行程序,并输入正确的数字。")
except: # 其他错误print("发生了未知错误,请重新运行程序。")
else: # 当try语句没有产生任何错误时执行的语句print("您的BMI值为:" + str(user_BMI))
finally: # 无论错误发生与否,最终都会被执行的语句print("程序结束运行。")

代码测试

assert

assert 1 + 2 > 6 # AssertionError

Python单元测试库:unittest

e.g.

# my_calculator.py
# 实现代码
def my_adder(x, y):return x + y
# test_my_calculator.py
# 测试代码
import unittest
from my_calculator import my_adderclass TestMyAdder(unittest.TestCase):def test_positive_with_positive(self): # 函数名必须以“test_”开头self.assertEqual(my_adder(5, 3), 8)def test_negative_with_positive(self):...

写好测试用例后,在编辑器(e.g. PyCharm)的终端输入:

python -m unittest

测试通过打印“·”,测试不通过打印“F”。

unittest.TestCase类的常见测试方法:

  • assertEqual(A, B)
  • assertTrue(A)
  • assertIn(A, B)
  • assertNotEqual(A, B)
  • assertFalse(A)
  • assertNotIn(A, B)

高阶函数

一个函数的“函数名”作为参数传给另外一个函数,或一个函数的返回值为另外一个函数。

e.g.

def calculate_and_print(num, calculator):result = calculator(num)print(f"""| 数字参数 | {num} || 计算结果 | {result} |""")def calculate_square(num):return num * numdef calculate_cube(num):return num * num * numdef calculate_plus_10(num):return num + 10calculate_and_print(3, calculate_square) # 注意第二个参数传入的是函数名而非函数,不带括号

匿名函数

lambda num1, num2: num1 + num2 # 只能有一个语句/表达式

这篇关于Python自学(适用于略有基础)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1044067

相关文章

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

python中列表list切分的实现

《python中列表list切分的实现》列表是Python中最常用的数据结构之一,经常需要对列表进行切分操作,本文主要介绍了python中列表list切分的实现,文中通过示例代码介绍的非常详细,对大家... 目录一、列表切片的基本用法1.1 基本切片操作1.2 切片的负索引1.3 切片的省略二、列表切分的高

基于Python实现一个PDF特殊字体提取工具

《基于Python实现一个PDF特殊字体提取工具》在PDF文档处理场景中,我们常常需要针对特定格式的文本内容进行提取分析,本文介绍的PDF特殊字体提取器是一款基于Python开发的桌面应用程序感兴趣的... 目录一、应用背景与功能概述二、技术架构与核心组件2.1 技术选型2.2 系统架构三、核心功能实现解析

通过Python脚本批量复制并规范命名视频文件

《通过Python脚本批量复制并规范命名视频文件》本文介绍了如何通过Python脚本批量复制并规范命名视频文件,实现自动补齐数字编号、保留原始文件、智能识别有效文件等功能,听过代码示例介绍的非常详细,... 目录一、问题场景:杂乱的视频文件名二、完整解决方案三、关键技术解析1. 智能路径处理2. 精准文件名

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

Python使用PIL库将PNG图片转换为ICO图标的示例代码

《Python使用PIL库将PNG图片转换为ICO图标的示例代码》在软件开发和网站设计中,ICO图标是一种常用的图像格式,特别适用于应用程序图标、网页收藏夹图标等场景,本文将介绍如何使用Python的... 目录引言准备工作代码解析实践操作结果展示结语引言在软件开发和网站设计中,ICO图标是一种常用的图像

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

使用Python实现表格字段智能去重

《使用Python实现表格字段智能去重》在数据分析和处理过程中,数据清洗是一个至关重要的步骤,其中字段去重是一个常见且关键的任务,下面我们看看如何使用Python进行表格字段智能去重吧... 目录一、引言二、数据重复问题的常见场景与影响三、python在数据清洗中的优势四、基于Python的表格字段智能去重

Python中如何控制小数点精度与对齐方式

《Python中如何控制小数点精度与对齐方式》在Python编程中,数据输出格式化是一个常见的需求,尤其是在涉及到小数点精度和对齐方式时,下面小编就来为大家介绍一下如何在Python中实现这些功能吧... 目录一、控制小数点精度1. 使用 round() 函数2. 使用字符串格式化二、控制对齐方式1. 使用