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: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

HTML提交表单给python

python 代码 from flask import Flask, request, render_template, redirect, url_forapp = Flask(__name__)@app.route('/')def form():# 渲染表单页面return render_template('./index.html')@app.route('/submit_form',

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点: 鼠标左键双击,设定红色的起点。左键双击设定起点,用红色标记。 设定终点: 鼠标右键双击,设定蓝色的终点。右键双击设定终点,用蓝色标记。 设置障碍点: 鼠标左键或者右键按着不放,拖动可以设置黑色的障碍点。按住左键或右键并拖动,设置一系列黑色障碍点

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At