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:不希望执行循环体剩下的代码,而是直接跳到下一次迭代
在嵌套循环中(循环套循环),break
和 continue
只会影响它所在的最内层循环。对于外层循环不会产生影响。
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'}
小结:定义函数时,参数的顺序应该遵循以下规则:
- 位置参数
- 默认参数
*args
(可变位置参数)--可以解包 numbers = [1, 2, 3] *numbers解包列表为位置参数**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