首页 > 编程语言 >Python重温笔记

Python重温笔记

时间:2024-09-16 09:52:16浏览次数:3  
标签:__ name Python 字符串 重温 笔记 对象 参数 print


1.Python解释器

将Python代码翻译为二进制,交给计算机去运行。是Python.exe程序

2.python中数字有四种类型

整数、布尔型、浮点数和复数。即int 型,bool(true与false),float ,,a+bj的复数等

变量不需要声明,但是在使用的时候需要提前赋值。

print(变量名)输出变量值,也可以输出数字;print(‘内容’)输出引号内的内容;

print(--------,end=" ")可使前列内容在一行显示

连续输出可以在print()加逗号Python里的  " "与 ' ' 作用相同

3.字符串

可自己定义,使用print(str【】)输出,其中【x:y】x从0开始包含起始点,而y是从右开始,不包含结束点。要想完整输出需➕1。还可以引入步长,放在最后面是步长,加上冒号

print( str [ 0 : -1 ] ) # 输出第一个(0)到倒数第二个(不包括-1)的所有字符

abs='我是好人无敌老好人'
print(abs[0:7:2])
#我好无老


print(str * 2)             # 输出字符串两次
print(str + '你好')         # 连接字符串
print(abs*2+'是陈涛')
#我是好人无敌老好人我是好人无敌老好人是陈涛
4.sys

sys 模块提供了一系列与 Python 解释器和运行环境交互的功能。

import sys
print(sys.version)  # 输出当前 Python 版本

5.赋值

a=b=c=1

a,b,c=1,2,'wo'

6.数据类型

Python3 中常见的数据类型有:可以用print(type(变量名))查看

a = True
print(type(a))
#<class 'bool'>
  • Number(数字)-------               / 会返回一个浮点数,// 会返回一个整数
  • String(字符串)------- 反斜杠 \ 转义字符(即在第二行显示),字符串不能改变,【3】错误
  • bool(布尔类型)可以与数字相加
#在控制流中的应用,正常True==1;False==0
if True:
    print("This will always print")
print("这将始终打印")
  • List(列表)

1.列表中的元素可以不相同,可以数字,字符串,甚至可以嵌套,不同元素使用逗号隔开。

2.可以索引,与字符串索引规则相同,补充几点:

【0:】从第一个元素到结束

【0】索引第一个元素;【-1】索引最后一个元素

也可以用  *  打印两次

可以切片

列表当中的元素可以改变list【0】=x;

del list[2]  可用来删除列表

len()可以告知列表里的元素个数,这个同样适用于字符串等

+   *同样可以对列表使用,会增加列表内的元素个数

list.pop([index=-1])  默认清除最后一个,里面加数字选择

list.remove(obj) 需填入具体元素



 

  • Tuple(元组)

与列表相似,采用小括号,用逗号隔开,不能改变元组当中的数据,tup2 = (20,) # 一个元素,需要在元素后添加逗号

  • Set(集合)

采用 { } 来储存数据,强调唯一性,不能重复,也是逗号隔开。可以进行集合运算

  • Dictionary(字典)
7.数据转换

正常 int+float 以float显示

正常 int+str 会报错------就用到显式转换

int();float();str();

eval()eval() 函数用来执行一个字符串("  ")表达式,并返回表达式的值。

list()

列表和元组不能被转换为int,转换有限制。

8.运算符

(1)== 条件比较,用于判断,不用于赋值;

(2)!= 为 不等;>= ;           <=         ;

(3)n:=10为海象运算符,n被赋值10,

(4)逻辑运算符,and ; or ; not;注意0为False;其中优先级 not > and > or

(5)成员运算符:in ;not in ;(适用于列表或者元组)

9.常用的一些函数

1. abs()返回绝对值

2.exp()返回e的x次幂

3.max();min()

4.pow(x,y)计算x的y次幂

5.import random

random.random()返回随机生成的一个实数,它在半开放区间 [0,1) 范围内。

random.uniform(x, y)随机生成下一个实数,它在 [x,y] 范围内

random.seed(10),随机数种子,即后续使用生成的随机数是一个

6.   \r  回到行首,当打印内容时,新内容会覆盖在这一行的开头,而不是追加在行末。一般在字符串当中使用。

10.字符串格式化

想到 { } 使用时应该加上引号,给字符串传入变化的数值

(1)使用%号

  • %s:字符串
  • %d:整数
  • %f:浮点数(可以指定精度,如 %.2f 表示保留两位小数)

用法:“字符中%d”  %(3)

print("%s的年龄是%d岁"  %("我",a))

(2)通过 {} 作为占位符,用 format() 来传入值。

s = "My name is {} and I am {} years old.".format(name, age)
print(s)

s= "My name is {name} and I am {age} years old.".format(name="Charlie", age=35)
#还可以包含关键参数


formatted_string = "{:3}".format(5)
print(f"'{formatted_string}'")

'  5'

#数字 5 被格式化为一个宽度为3的字符串,前面会填充空格以达到3个字符的宽度

(3) f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去

name = 'Runoob'
 f ' Hello {name} ' --------f 在字符串外,在字符串内依然使用大括号{ }进行替换字符串。

11.条件控制与循环

1.if  ____  :

elif ____ :

else:

注意冒号不能少,主要是判断True和False

2.循环语句

while循环:
while True :

        print-------

False的时候就stop了。同时也可以设置无限循环。ctrl+c退出

while  True:
    <statement(s)>
else:
    <additional_statement(s)>

False的时候执行else部分,相比上面更有操作空间

for循环:可以遍历列表也可以遍历字符串

for  i in ___:  i 是变量名,是输出的变量,in后是已存在的列表。字符串等

else:

        ___

在 for循环里常用的一个 range,可以嵌套 if控制语句等

range(10)从1-9

range(2,12)从2到11

n = list(range(5)) 也可以转换range为列表,内容由其中设定

break与continue语句
可以改变for与while循环的执行顺序

break:在满足某些条件时提前结束循环。

continue:不希望执行循环体剩下的代码,而是直接跳到下一次迭代

在嵌套循环中(循环套循环),breakcontinue 只会影响它所在的最内层循环。对于外层循环不会产生影响。

12.Python函数

(1)函数通过关键字 def ;来定义

def ():   -------------注意冒号不能少

传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数

带 return 返回值,不带return返回None

(2)引用对象

Python 中的变量本质上是对象的引用,而不是对象本身。

对象的引用是指变量名与对象之间的关联关系。换句话说,当我们在 Python 中创建一个对象并赋值给某个变量时,实际上是将变量与该对象在内存中的地址关联起来,这个关联关系就是引用

变量引用这个对象 = 变量与该对象的内存地址关联了起来(指针)= 变量并不存储对象的值,而是存储对象在内存中的位置或地址。

a = [1, 2, 3]  # 变量 a 引用了一个列表对象
b = a          # 变量 b 也引用了同一个列表对象

Python的对象分为可变对象不可变对象:

可变对象:如列表,字典等,该类对象创建后可以修改对象的值,

a = [1, 2, 3]  # 变量 a 引用了一个列表对象
b = a          # 变量 b 也引用了同一个列表对象
a.append(4)  # 修改通过 a 引用的对象
print(b)     # 输出: [1, 2, 3, 4],b 引用了相同的对象,所以也发生变化

不可变对象:对象创建后无法修改其值。例如,整数、浮点数、字符串、元组等。

x = 10  # x 引用了整数对象 10
y = x   # y 引用了同一个整数对象 10

x = x + 1  # x 引用一个新的整数对象 11
print(x)  # 输出: 11
print(y)  # 输出: 10,y 仍然引用原来的整数对象 10

若想复制对象,可以使用浅拷贝与深拷贝

参数传递:传递的是对象的引用:函数参数传递的是变量所引用对象的引用(关系),而不是对象的副本

遇到不可变对象,无法修改对象值,直接内部会创建一个新的对象

遇到可变对象,当传入对象的引用后,对象被修改,内部变量与外部变量的引用是相同的,所以也会影响到外部

不可变对象的参数传递(如:整数、字符串、元组等)

可变对象的参数传递(如:列表、字典、集合等

默认参数的陷阱:避免使用可变对象作为函数的默认参数,因为它会导致意外的共享修改。否则进行初始化。

(3)参数调用

关键字参数:通过参数名来指定参数值的方式,使得函数调用时更加灵活、可读性更高。关键字参

数不需要按照函数定义中参数的顺序进行传递,且可以与位置参数结合使用。

def printme( str ):
   "打印任何传入的字符串"
   print (str)
   return
 
#调用printme函数,效果是相同的

printme('菜鸟教程')
printme( str = "菜鸟教程")      #   关键字调用


def printinfo( name, age ):
  ---------

#调用printinfo函数
printinfo( age=50, name="runoob" )  #   关键字调用,无需考虑参数位置顺序



默认参数: age=35为默认参数,若在调用函数时没有传入 对象的引用,则会以35默认,

若没有给定默认参数,则为位置参数,此时age没有传入的话,就会报错。可*age就不会报错了

def printinfo(name, age=35):
    "打印任何传入的字符串"
    print("名字: ", name)
    print("年龄: ", age)
    return
printinfo(name="runoob")

不定长参数: 

*args —— 可变位置参数,允许函数接收任意数量的位置参数,并将它们作为元组进行处理,

def printinfo( arg1, *vartuple )   按需传入参数即可,若*vartuple没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量

def my_function(*args):
    for arg in args:
        print(arg)

my_function(1, 2, 3, 4)

打包成了元组  print(arg) ---(1, 2, 3, 4)

**kwargs--------允许函数接收任意数量的关键字参数,参数名来指定参数值,并将它们作为字典进行处理两个星号 ** 的参数会以字典的形式导入,字典也可以遍历,变量有两个key与value

def my_function(**kwargs):
    print(kwargs)
my_function(name="Alice", age=25, city="New York")

#{'name': 'Alice', 'age': 25, 'city': 'New York'}

小结:定义函数时,参数的顺序应该遵循以下规则:

  1. 位置参数
  2. 默认参数
  3. *args(可变位置参数)--可以解包   numbers = [1, 2, 3]  *numbers解包列表为位置参数
  4. **kwargs(可变关键字参数)
def example_function(a, b=2, *args, **kwargs):
    print(f"a = {a}, b = {b}")
    print("args =", args)
    print("kwargs =", kwargs)

example_function(1, 3, 4, 5, name="Alice", age=30)

#结果
a = 1, b = 3
args = (4, 5)
kwargs = {'name': 'Alice', 'age': 30}

(4)lambda函数

语法:lambda 参数1, 参数2, ...: 表达式----函数自动返回表达式的值,不需要显式地使用 return

定义的一个lambda函数计算和      sum_func = lambda x, y: x + y 

13.python的模块功能

模块是一个包含 Python 代码的文件(后缀为 .py

0.      from module import ...:导入特定的功能,而不是整个模块。

0.5.   from  module  import *   导入所有的模块

1.官方模块 import math、、import math as  m(简化使用)、、、

2.自己设置模块,在别的py文件中使用自设模块的变量、函数、类等

# my_module.py
def greet(name):
    return f"Hello, {name}!"

def add(x, y):
    return x + y


#使用my_module.py里的函数greet与add
import my_module

print(my_module.greet("Alice"))  # 输出: Hello, Alice!
print(my_module.add(5, 10))      # 输出: 15

3.     __name__  是一个内置变量,用来表示当前模块的名称。__name__ 的值会是 "__main__"

        便可利用 == “_main_”来实现一些功能

print(f"The value of __name__ is: {__name__}")

#结果是:The value of __name__ is: __main__

如果模块是被导入到其他模块中,__name__ 的值则是这个模块的名字(通常是文件名,去掉 .py 后缀)。

The value of __name__ is: my_module   

一般用法:if __name__ == "__main__" 的作用是确保当 my_module 被导入时,测试代码不会被执行,只有函数 ....... 可用。通过 if __name__ == "__main__",你可以在一个文件中组织测试代码、主程序逻辑,而不会影响模块在其他地方的导入和使用。

14.类(面向对象编程)

使用对象进行编程,创建类 , 创建对象, 使用对象完成任务

类(Class): 用来描述具有相同的属性和方法的对象的集合。

类似设计一张表格-----打印一张表格-----填写一张表格的过程

类属性(成员变量):类属性是直接定义在类中的变量,属于整个类,而不是某个具体的实例。所有实例共享同一个类属性。

类方法(函数/成员方法):用来定义对象的行为。方法的第一个参数必须是 self

(1)与函数的定义稍有区别,要求参数列表有关键字self,在传参时可视为不存在,可为空参。

(2)想要在方法中访问成员变量,必须通过self来调用, self 就是 对象/实例 属性集合

(3)self 是一个特殊的参数,用来指代类的实例对象,而非类。它允许类的实例在方法中引用自己的属性和其他方法,self.xxx表示实例的变量, 在类中函数相互调用要加 self 

有关self的具体理解可以看这篇博客https://blog.csdn.net/xrinosvip/article/details/89647884

实例化类:

(1)典型类实例化的语法,创建了一个新的类实例并将该对象赋给局部变量 x,x 为空的对象。

class MyClass:
    x = MyClass()

可以通过x来访问类的属性和方法

(2)  __init__( )   是一种更加高效构造方法, 更简洁的设置   类属性, 在创建对象能更方便

该方法在创建类对象的时候会自动执行。 同时会将参数自动传递给__init__方法(函数)使用.

于是便可以在创建类对象(实例化类)的时候填入相关属性参数

def __init__(self, name,age):
        self.name = name

        self.age =age

15.封装

(1)类中提供了私有成员的------私有成员变量与私有成员方法

                                            对应现实世界中不对用户开放的属性和行为

语法:在定义的变量方法前加 入 _ _(两个下划线)

(2)一旦设置,对于类对象无法使用私有属性与私有方法---------报错---------外部无法调用

但是类中的其他成员是可以调用的私有变量与方法-----即别的成员方法可以调用

__name =None

def __name(self):

16.继承

(1)继承 : 基于老的类进行修改,在类的名字后多加了括号

class People ( Old ):  #People为字类,Old为父类

----------------单继承

------------多继承

逗号隔开,如果在字类不需要增添,可直接需要pass补全语法,防止报错

(2)

标签:__,name,Python,字符串,重温,笔记,对象,参数,print
From: https://blog.csdn.net/weixin_49281268/article/details/142069032

相关文章

  • 数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例
    时间序列概况在日常生活和专业研究中都很常见。简而言之,时间序列概况是一系列连续的数据点 y(0),y(1),...,y(t) ,其中时间 t 的点依赖于时间 t-1 的前一个点(或更早的时间点)。在许多应用中,研究者致力于预测时间序列概况的未来行为。存在各种建模方法。这些模型通常基......
  • 【python】python入门基础理论+实践,这一篇就够了
    简介:第一个helloworldprint("helloworld!");foriinrange(10):print('run:',i);importtime;time.sleep(10);字符串str在Python中,加了引号的字符都被认为是字符串!name="zhangsan"多引号多引号什么作⽤呢?作⽤就是多⾏字符串必须⽤多引号message='''这......
  • 使用Python实现深度学习模型:智能家庭安防系统
    随着科技的进步和人们对安全需求的增加,智能家庭安防系统成为了现代家庭的重要组成部分。通过深度学习技术,我们可以构建高效的智能安防系统,实时监测家庭环境,识别潜在威胁,并提供及时的预警。本文将详细介绍如何使用Python实现一个简单的深度学习模型,用于智能家庭安防系统。深......
  • python的os模块的常见函数及用途详解
    os模块提供了与操作系统进行交互的功能。它允许你执行许多常见的文件系统任务,如读取目录、处理文件、获取系统信息等。以下是一些os模块中常见的函数及其用途:目录操作os.getcwd():返回当前工作目录的字符串表示。os.listdir(path):返回指定目录下的文件和子目录列表。os.mkdir(......
  • SciTech-Mathmatics-Probability+Statistics-Descriptive Statistics I + II(using Py
    LearnStatsforPython:DescriptiveStatisticsILearnStatsforPython:DescriptiveStatisticsII+DataVisualizationBYIVÁNPALOMARESCARRASCOSAPOSTEDONAUGUST28,2024Intoday'sworld,pervadedbydataandAI-driventechnologiesandsolutions,......
  • 06_Python数据类型_元组
    Python的基础数据类型数值类型:整数、浮点数、复数、布尔字符串容器类型:列表、元祖、字典、集合元组元组(Tuple)是一种不可变的序列类型,与列表类似,但有一些关键的区别。本质:只读的列表(list)定义元组元组是由圆括号()包围的元素集合,元素之间用逗号分隔。元组一旦创建,其内......
  • 学习笔记-二分图
    二分图二分图当且仅当图中没有奇数环.染色法//染色法模板intn;//n表示点数inth[N],e[M],ne[M],idx;//邻接表存储图intcolor[N];//表示每个点的颜色,-1表示未染色,0表示白色,1表示黑色//参数:u表示当前节点,c表示当前点的颜色booldfs(intu......
  • 【Python学习笔记】 第8章 列表与字典
    列表Python的列表是:任意对象的有序集合通过偏移访问可变长度、异构以及任意嵌套属于“可变序列”的分类对象引用数组下表是常见/具有代表性的列表对象操作:操作解释L=[]一个空的列表L=[123,'abc',1.23,{}]有四个项的列表,索引从0到3L=......
  • 个人学习笔记7-6:动手学深度学习pytorch版-李沐
    #人工智能##深度学习##语义分割##计算机视觉##神经网络#计算机视觉13.11全卷积网络全卷积网络(fullyconvolutionalnetwork,FCN)采用卷积神经网络实现了从图像像素到像素类别的变换。引入l转置卷积(transposedconvolution)实现的,输出的类别预测与输入图像在像素级别上具有......
  • 使用python抽取post接口数据示例
    postman调用接口post接口https://inner-XXXXX.XXXXX.com/wXX/api/XXXXXctoryLake?user_key=XXXXXXXXXXXX,在boday的row里输入Jason格式的{"wasStartDay":"2024-09-03"} importrequestsurl='https://inner-XXXXX.XXXXX.com/wXX/api/XXXXXctoryLake'da......