python-itheima

2024-04-06 17:12
文章标签 python itheima

本文主要是介绍python-itheima,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

字面量

在这里插入图片描述

先介绍数字与字符串,剩余四种数据类型容后再议

  • print用法
    1. print(数字)
    2. print(“字符串”)
    3. print(x,y,z,“abcdefg”)

数据类型查看

type函数

数据类型转换

在这里插入图片描述

标识符相关

在这里插入图片描述

字符串定义方式

方式

在这里插入图片描述

嵌套引号

在这里插入图片描述

name = " \"两边是引号\" "

字符串的拼接

法一

“字符串” + “字符串” + str(只能是字符串类型变量)

法二(格式化)

“字符串 %s” % 变量(可以是任意类型)
“字符串 %s %s” % (变量1,变量2)

格式化的精度控制

格式:% + m.n + 类型

Num = 11.4514
print("数字长度为8,保留两位小数:%8.2d" % Num)

结果:数字长度为8,保留两位小数: 11.45

m表示总长度,如果比数字本身短则不生效
n表示保留小数点后位数

格式化的优雅方式

print(f"语句 {变量} 语句 {变量}")
f的意思是fomat(格式化)

name = "name"
name_1 = 114.514
name_2 = """name_2"""
print(f"哈哈{name}哈哈哈{name_1}哈哈哈{name_2}哈哈哈")
格式化表达式

目的是:不需要将每个表达式的结果都用变量存起来然后格式化以简化代码

print("1 + 1 = %d" % (1+1))
print(f"1 + 1 = %d" {1+1})
print("字符串的类型是 %s" % type('字符串'))   #可以直接将函数的结果打印,不用变量接受
例题

在这里插入图片描述

代码

name = "周姝妤智商有限公司"
stock_price = 6.66
stock_code = 114514
stock_price_daily_growth_factor = 2.33
growth_days = 10
print(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price}")
print("每日增长系数是:%f,经过%d天的增长以后,股价达到了:%f" % (stock_price_daily_growth_factor, growth_days,stock_price*(stock_price_daily_growth_factor**growth_days)))

结果
在这里插入图片描述

数据输入(input函数)

input返回类型是字符串

password = input("你的原神uid是:")
print(type(password))
password = int(password)
print(type(password))

结果
在这里插入图片描述

布尔类型

bool:赋值为TRUE FALSE
本质上是一位的0和1

布尔类型的值可以通过比较运算来得到

  • 如:result = 7>2 中result为TRUE
print(f"10 > 9 的结果是:{10>9}")

在这里插入图片描述

比较运算符

在这里插入图片描述

分支语句

if else

语法

1.if

year = input("你的出生年份是:")
year = int(year)
age = 2024 - year
if age >= 18:print("你可以玩夏日狂想曲")

2.else

age = input(“你的年龄是")
if age >=18:print("老登爆金币")
else:print("小B崽子进去吧")

3.elif

num = 10
if int(input("第一次猜数字")) == num:print("1")
elif int(input("第二次猜数字")) == num:print("2")
else:print("wrong")

嵌套

python是以缩进来表示层次关系

if a==1:if b==2:if c==3:

循环语句

while

在这里插入图片描述

i = 1
a = 0
while i<= 100:a += ii += 1
print(a)

猜数字

import random
num = random.randint(1,100)
flag = True
while flag:num_1 = int(input("your answer:"))if num_1 == num:flag = Falseprint(f"猜对了,就是{num}")elif num_1 < num:print("猜得小了")elif num_1 > num:print("猜的大了")

九九乘法表

知识

  1. print输出不换行的方法:括号内尾端加end=‘’
  2. print输出对齐的方法:空格替换成 \t

code

i = 1
while i < 10:j = 1while j <= i:print(f"{i} x {j} = {i*j}\t", end='')j += 1print("")i+=1

for循环,与c中的for有很大区别

语法

在这里插入图片描述
在这里插入图片描述





实例

password = "18335091109"
for x in password:print(x,end='')

结果:
在这里插入图片描述

range语法

这里只介绍基础部分的语法,不深入

range(num)
# 得到一个从0到num-1的序列
range(num1 ,num2)
# 得到一个从num1 到num2的序列,不包含num2
range(num1, num2, num3)
# 得到一个从num1到num2,并以num3为步长的序列,不包含num2
# 如range(1,10,2)     =   {1,3,5,7,9}

函数

语法

def 函数名(参数名):函数体return

python中函数的思想继承于c,本质相差不大。
但是python中的类型声明不明确,省了不少麻烦,注意格式与冒号即可

python中不写返回值,默认是None

def add(x, y, c):ret = x+y+creturn ret

not

not相当于c中的非,就是:!

说明文档

python中的函数中可以写说明文档,对每个变量、返回值进行注释。
注释内容要包括在多行注释**“”“ ”“”**中

def add(x,y,v,c,b)""":param x: 原神:param y: 王者:param v: 第五:param c: 粥:param b: 火影:return: 三国杀"""ret = x+y+v+c+breturn ret

global

局部变量

函数内创建的变量,函数外不能调用。
想要调用,就要用关键字global

示例:

def add():num = 1
print(num)             报错def add():global numnum = 1
print(num)              成功

全局变量

函数外定义的变量就是全局变量
函数内可以随意读取全局变量
但是不能修改
如:

c=1
def add():print(c)  可c+=1     错# 想要修改,需要加global关键字
def add():global cc+=1     可

多返回值

直接用,隔开即可,注意接收返回值时要一一对应
在这里插入图片描述

多方法传参

位置传参

C语言的传参方法

关键字传参

形参 = 实参
一一对应,不用管顺序

def add(x,y,z):return x+y+z
add(x=1,z=101,y=123)

缺省传参

定义函数时给形参一个默认值,如果在函数的使用中没有传参,则使用默认值。
注意:定义默认值时必须从后往前定义

def user(name, tele, gender = 'man'):print(name , tele , gender)

不定长传参

例:

def add(*args):print()
def add1(**kargs):print()add(1,2,3,4,5,6,"原神")
add1(a:1 , b:2 , c:3)
  • 不定长的意思就是可以穿任意长度,任意个数的参数。
  • 一个*,意思是传入的参数按照元组的形式来储存
  • 两个**,意味着传参时必须用键值对(字典)的形式来传,传进去以后也是按照字典的形式来使用这个参数

函数作为参数传参

定义:
将函数作为参数传递到另一个函数中去使用
本质上是逻辑的传递
在这里插入图片描述





数据容器

定义:


列表list

语法

定义

在这里插入图片描述

嵌套

列表里可以再嵌套列表

li = [ [1,2,3,4], [5,6,7,8,9] ]

下标索引

像数组一样,可以根据下标获取数据元素

正向索引
在这里插入图片描述


反向索引

新科技,很神奇吧

在这里插入图片描述

常见方法(功能函数)

在这里插入图片描述


代码

key = ["原神", "王者", "方舟"]
# 1.插入
key.insert(3,"火影")# 2.删除
del key[0]
# 或者key.pop(0)
# pop是一个函数,返回值是被删除的元素# 3.追加
key.append("鬼泣")
sex = ["夏日","冬日", "千恋"]
key.extend(sex)# 4.指定元素删除
key.remove("夏日")
# remove只会删除遇到的第一个符合条件的元素# 5.计数,统计列表中的某一个元素有几个
key.count("冬日")# 6.查找元素下标
key.index("方舟")# 7.计算列表元素总个数
len(key)
print(key)
遍历

while和c中遍历数组没区别
for循环

name = ["dante", "naro", "vergil", "kryie", "nico", "radi", "eva", "tris"]
for element in name:print(element)

元组(tuple)

不可修改的列表

定义:

t1 = (1,2,3)
t2 = ()
t3 = tuple()
t1 = (1, )
# 以上都是元组
# 注意t1 = (1)不是元组,是整数 t1 = (1,)才是元组

操作

在这里插入图片描述

t1 = (1,2,3,4)
len(t1)
t1.count(2)
t1.index(3)

特例

更改元组内容

lis = [1,2,3,4]
t1 = ( lis , 5,6 )
lis[2] = 1
#此时t1也会发生变化

字符串 str

定义

str = "汉字 word 123"

方法

字符串是不可以修改的,replace等方法知识得到一个新数组,不能对原数组进行修改
在这里插入图片描述

replace
str = "i love you"
new_str = str.replace("you","her")
split

分割字符串,得到新列表

str = "原神0王者0火影"
new_str = str.split("0")

得到:
在这里插入图片描述

strip

去除首尾的指定数组(默认为空格或换行符)

str_1 = "  123   "
new_str_1 = str_1.strip()str_2 = "123原神启动!321"
new_str_2 = str_2.strip("123")


在这里插入图片描述

注意: strip中如果输入了多个字符,则将字符串首尾所有相同条件的字符都删除,不论顺序

集合 set

定义

my_set = {1,2,3,4,6}
my_set = set()

特点:
  1. 可修改内容
  2. 不支持重复内容
  3. 不支持下标访问
  4. 集合是无序的

空集合不能用{}来定义,用{}的意思是定义字典

操作

添加:

集合的添加函数没有返回值,直接修改原集合

my_set = {1,2,3,4,5,6,7,8,9}
my_set.add("元素")

在这里插入图片描述

随机取出一个元素:
my_set = {123,321,213,312,231,132}
i = my_set.pop()

#### 清空:
my_set = {1,2,3,4,5}
my_set.clear()
取差集:

在这里插入图片描述

my_game = {"饥荒","DMC","泰拉","求生之路"}
her_game = {"饥荒","求生之路","火山"}
game = my_game.difference(her_game)
取合集:

在这里插入图片描述

set1 = {1,2,3}
set2 = {3,4,5}
set3 = set1.union(set2)
# set3 = {1,2,3,4,5} 注意集合的元素不重复

字典dict

定义

在这里插入图片描述

name = {1:"Yuanshen", 2:"wangzhe", 3:"huoying"}

注意,字典键值对的key不允许重复,后来者优先

操作

获取

在这里插入图片描述

name = {1:"Yuanshen", 2:"wangzhe", 3:"huoying"}
print(name[2])
嵌套
my_dict ={"列表":[1,2,3,], "字符串":"123", "元组":(1,2,3), "集合":{1,2,3} , "字典":{1:1, 2:2, 3:3}}
print(my_dict["字典"][1])

注意事项:
在这里插入图片描述



数据容器对比

在这里插入图片描述

通用操作

在这里插入图片描述

sorted

举例:

jing = (1,2,3,4,5,6,7)
jing = sorted(jing , reverse = True)

序列

定义

在这里插入图片描述

操作

切片

语法:

在这里插入图片描述


**注意: ** 切片不改变原来的序列,只返回一个新序列



game = [1,2,3,4,5,6,7,8,9,10]
game_1 = game[::2]
print(game_1)

倒着取

game = [1,2,3,4,5,6,7,8,9,10]
game_1 = game[9:3:-1]
print(game_1)

文件基础

文件编码

将各种资源转换成二进制数据的协议
如:
文本类-UTF-8
视频类-mp4

文件操作(函数)

打开

在这里插入图片描述

读取

read函数
file = open("F:/101.txt","r",encoding="UTF-8")
file.read(10)
# read中的参数表示读取的字节数,不管换不换行,只管够不够10个字节
# 如果read函数不传参数,则认为读取所有元素
readline与readlines函数
file = open("F:/101.txt","r",encoding="UTF-8")
flie.readline()
# readline的功能是读取一行
flie.readlines()
# readlines的功能是读取所有行

注意: read系列的文件操作函数具有继承性,意思就是,对于同一个文件,后执行的read系列函数会接着已经执行的read函数读取的尾部继续读取

for循环读取文件的行
file = open("F:/101.txt","r",encoding="UTF-8")
for line in file:print(line)
关闭文件

为什么要关闭文件呢?
如果不关闭文件,会影响其他操作。如:删除,改写
函数:close

file = open("F:/101.txt","r",encoding="UTF-8")
file.close()
with open() as file语法

在这里插入图片描述

with open("F:/101.txt", "r", encoding="UTF-8") as file:print(file.readline())

写入

file = open("F:/102.txt","w",encoding="UTF-8")
file.write("天天就知道启动你那个B原神。启动牛魔")
file.flush() # 刷新缓冲区,将缓冲区中的数据正式写入到硬盘中
file.close

注意: mode="w"时,如果你对文件内容进行了写入,python会将文件中原有的数据全部清除,以新数据覆盖。
在这里插入图片描述

追加

用法

在这里插入图片描述

异常

捕获语法

在这里插入图片描述

  • 将可能出现错误的地方写到try中,用except来捕获异常。

  • 逻辑是:python正常执行程序,当执行到try中的语句时,若异常出现,则到except中执行其中语句,并且不停止文件运行。无异常则不执行。

  • 另:else与finally语句可写可不写

  • except后可以写具体的异常类型来圈定捕获范围(就是指定捕获那种错误)

file = open("F:/100.txt","w",encoding="UTF-8")
try:file.write("原神")
except:print(0) # 出错则打印0
else:print(1) # 不出错则打印1

异常的传递性

在这里插入图片描述

函数嵌套中,某一环节出了错,若它与它的上层函数都没有捕获异常,就会报错,而且报错是从上层一路报到错误点

在这里插入图片描述

模块

概念:另一个含有函数、类、变量等的python文件,你在其他文件中可以调用这个文件来实行一些功能

就和c语言中的头文件一样

例:
在这里插入图片描述

在这里插入图片描述

如何导入:
在这里插入图片描述

自定义模块

即:import自己写的文件,取用其中的函数、变量、类等
在这里插入图片描述

内置变量

  • vars()函数可以以字典的形式打印出此文件中所有的内置变量及其值
  • name
  • file
  • time
    等等

模块较多时,为了便于管理而出现的概念。
本质上还是模块。
(文件夹和文件的关系?)

在这里插入图片描述

使用

引入

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第三方包

pip安装
镜像网站安装
就是别人写好的包

json

概念:

在这里插入图片描述

作用:
在这里插入图片描述

欢迎来到编程的世界

类就是有组织的集合数据。
对象是类的实例化。
(类是工具模板,对象是用模板制作的实际工具)

类的组成

变量与方法

class Student:name = Nonedef add(self): # 类的方法必须加self才能用print("你好")stu_1 = Student() # 对象,类的实例化
stu_1.name = "mzj"
stu_1.add()

使用例子:

在这里插入图片描述



关于self

在python的类的方法中,在方法的括号中加入self才能被其对象调用。如果不加只能通过 类名.方法名() 来调用

class Student():name = "mzj"def prinT():print("11")
Student.prinT() # 能打印
stu = Student()
stu.prinT() # 不能
class Student():name = "mzj"def prinT(self):print("11")
Student.prinT() # 不能用
stu = Student()
stu.prinT() # 能用

魔术方法(类内置方法)

魔术方法就是对类的一些自定义操作
如:

__lt__自定义了怎么比较大小
__init__自定义了怎么初始化对象
__str__自定义了对象作为字符串时被使用该怎么表示

大致可以分为这几类:

在这里插入图片描述

构造方法
__init__

类内部的一个方法,功能是,在创建对象时自动运行,对对象进行初始化。

例:
在这里插入图片描述

字符串方法
__str__

用法:
正常情况下,你打印一个对象,得到的是它的地址,但是你可以通过这个内置方法来自定义打印什么

用法:

class Stu:name = "mzj"
stu = Stu()
print(stu)
# 结果为:<__main__.Stu object at 0x000001A7FC819490>
class Stu:name = "mzj"def __str__(self):return (f"学生的名字是{self.name}")
stu = Stu()
print(stu)

封装与私有成员

将现实生活中的事物抽象描述成类即为封装

在这里插入图片描述

继承

语法

创建新类的时候在后面加(父类)
单继承:
在这里插入图片描述
多继承:
在这里插入图片描述

多继承时,多个父类中若有同名变量或方法,按照继承的顺序来确定优先级

class a:z=1
class b:z=2
class c(b,a):pass
c_1 = c()
print(c.z)	

复写

基础语法

在这里插入图片描述

调用原父类内容

在这里插入图片描述
示例:

class yuan:def pr_1(self):print("原神")
class ni(yuan):def pr_1(self):print("我不玩")# 方法1yuan.pr_1(self)# 方法2super().pr_1()passwangge = ni()
wangge.pr_1()

类型·注解

方法与用处:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 在这里插入图片描述
  2. 在这里插入图片描述

另一种方法

在这里插入图片描述

函数注解

形参注解

在这里插入图片描述

返回值注解

在这里插入图片描述

def length(x:str)->int:return len(x)

Union注解

Union在typing包中
用来进行联合类型注释

联合类型是什么意思呢?

lis = [1,2,1.2,"12"]
# 这个列表中的元素类型有三种,用之前的方法来注解类型将会 
很困难 ,所以开发了这个包,用来进行多类型注解

用法

from typing import Union
lis:Union[int,float,str] = [1,1.2,"123"]

多态

定义:龙生九子,九子不同

继承于同一个父类的不同子类,对父类抽象方法进行复写后使得通过不同子类调用同名方法时所得结果不同

用法

class Game():def chengfen(self):pass
class Genshin(Game):def chengfen(self):print("原神,启动!")class nongyao(Game):def chengfen(self):print("王者,启动!")def chachacf(game:Game):game.chengfen()nong = nongyao()
O = Genshin()
chachacf(O)
chachacf(nong)

结果:
在这里插入图片描述

这篇关于python-itheima的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.