lesson_

本文介绍了Python中的数值类型,包括整数、浮点数和复数,强调了整数的无限制大小和进制表示。还讨论了字符串的使用,包括转义字符和字符串连接。此外,提到了布尔值与None,以及各种运算符的用法,如算术、赋值、关系和逻辑运算符。文章还涵盖了条件运算符、流程控制语句(如if-else、while)以及函数参数的处理,包括位置参数、默认参数和关键字参数。
摘要由CSDN通过智能技术生成


数值
Python数值分成了三种:整数、浮点数(小数)、复数

Python中的整数的大小没有限制,可以是一个无限大的整数

如果数字的长度过大,可以使用下划线作为分隔符

python 二进制表现形式 0b 开头 八进制表现形式 0o开头 十进制表现形式 0x开头

10进制的数字不能以0开头 其他进制的整数,只要是数字打印时一定是以十进制的形式显示的

只要带小数对python来说都是浮点数 以及浮点数相加会得到一个不精确的结果

字符串
单引号和双引号不能跨行使用

三重引号可以跨行,并且会保留字符串中的格式

可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容
\' 表示'
\" 表示"
\t 表示制表符
\n 表示换行符
\\ 表示反斜杠
\uxxxx 表示Unicode编码
1
2
3
4
5
6
7
b = 'hello %3.5s'%'abcdefg' # %3.5s字符串的长度限制在3-5之间
b = 'hello %s' % 123.456  #%s也可对应浮点数和整数
1
2
字符串 + 是拼接 *是 复制 -和/不行

布尔值和空值
布尔值实际上也属于整型,True就相当于1,False就相当于0
1
None(空值)
# None专门用来表示不存在
1
2
类型
整数 浮点数 字符串 None bool

转换

int(a) a不能是None 不能是非整数字符串如’yinsheng’ 不能是浮点数字符串如 ‘123.4’

float(a) 和int差不多

str(a) 啥都行

bool(a) 啥都行 0和None转化成的false

ps
int()函数不会对原来的变量产生影响,他是对象转换为指定的类型并将其作为返回值返回
# 如果希望修改原来的变量,则需要对变量进行重新赋值
1
2
3
运算符
1.算术运算符 + - * / //(整除) **(幂) %

2.赋值运算符 += -= /= //= %= *= **=

3.关系运算符 > >= < <= == is is not

关系运算符用来比较两个值之间的关系,总会返回一个布尔值
如果关系成立,返回True,否则返回False
result = 1 == True # True
result = 1 is True # False
result = 1 is not True # True
ps:
is 比较两个对象是否是同一个对象,比较的是对象的id
== 比较两个对象的值是否相等
1
2
3
4
5
6
7
8
result = 'ab' > 'b' # False
result = '2' > '11' # True
ps:
当对字符串进行比较时,实际上比较的是字符串的Unicode编码
比较两个字符串的Unicode编码时,是逐位比较的
且我发现 ord('A')  只能转个位字符串
1
2
3
4
5
6
4.逻辑运算符

and or not

and or  都是短路  比如and前面是false后面久不执行了  比如or前面是true后面就不执行了
非布尔值的与或运算  当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值(主要看执行到哪一条语句  执行第一条就不执行了 则返回第一条语句的值)
not 对于非布尔值,运算会先将其转换为布尔值  然后进行运算
1
2
3
5.条件运算符

语句1 if 条件表达式 else 语句2

执行流程:
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
1
2
3
4
运算符优先级

查表

流程控制语句
input函数返回的是字符串类型

if else

if elif else

while 条件表达式:

​ 语句

else:

​ 语句

修改元素 针对的是可变序列
stus = ['孙悟空','猪八戒','沙和尚','唐僧','蜘蛛精','白骨精']
stus[0:2] = ['牛魔王','红孩儿']
print(stus)  #['牛魔王','红孩儿','沙和尚','唐僧','蜘蛛精','白骨精']

stus[0:2] = ['牛魔王','红孩儿','二郎神']
print(stus) #['牛魔王','红孩儿','二郎神','沙和尚','唐僧','蜘蛛精','白骨精']

stus[0:0] = ['牛魔王'] 
print(stus)    #['牛魔王','牛魔王','红孩儿','二郎神','沙和尚','唐僧','蜘蛛精','白骨精']

stus[::2] = ['牛魔王','红孩儿','二郎神','加油']
print(stus) #['牛魔王','牛魔王','红孩儿','二郎神','二郎神','唐僧','加油','白骨精']

del stus[0:2]
print(stus)  #['红孩儿','二郎神','二郎神','唐僧','加油','白骨精']

del stus[::2]
print(stus)  #['二郎神','唐僧','白骨精']

stus[0] = '哈哈'
print(stus)    #['哈哈','唐僧','白骨精']

del stus[2] 
print(stus)    #['哈哈','唐僧']

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
函数参数
位置参数

默认参数

def fn(a = 5 , b = 10 , c = 20):
    print('a =',a)
    print('b =',b)
    print('c =',c)
fn(1 , 2 , 3)  #1   2   3
fn(1 , 2)    #1  2  20
fn()    #5   10   20

1
2
3
4
5
6
7
8
关键字参数 **

**形参可以接收其他的关键字参数,它会将这些参数统一保存到一个字典中,字典的key就是参数的名字,字典的value就是参数的值

**形参只能有一个,并且必须写在所有参数的最后

def fn3(b,c,**a) :
    print('a =',a,type(a))
    print('b =',b)
    print('c =',c)
fn3(1,2,k=5,w=6)
#a = {'k': 5, 'w': 6} <class 'dict'>
#b = 1
#c = 2
1
2
3
4
5
6
7
8
可变参数 *

可变参数不是必须写在最后,但是注意,带*的参数后的所有参数,必须以关键字参数的形式传递

如果在形参的开头直接写一个*,则要求我们的所有的参数必须以关键字参数的形式传递

*形参只能接收位置参数,而不能接收关键字参数

def fn2(*a,b,c):
    print('a =',a)
    print('b =',b)
    print('c =',c)
fn2(1,b=2,c=3)

def fn2(a,*b,c):
    print('a =',a)
    print('b =',b)
    print('c =',c)
fn2(1,2,c=3)

def fn3(*a) :
    print('a =',a)
fn3(1,2,3,4)
fn3(b=1)  #错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
高阶函数
高阶函数(

1.参数是函数 体现为map filtter 等等

2.返回值是函数 体现为闭包 闭包呢又可以导致出装饰器

)

zip 和 dict list 的结合

类方法和实例方法
实例方法
在类中定义,以self为第一个参数的方法都是实例方法
实例方法在调用时,Python会将调用对象作为self传入 
实例方法可以通过实例和类去调用
当通过实例调用时,会自动将当前调用对象作为self传入
当通过类调用时,不会自动传递self,此时我们必须手动传递self
1
2
3
4
5
6
类方法    
在类内部使用 @classmethod 来修饰的方法属于类方法
类方法的第一个参数是cls,也会被自动传递,cls就是当前的类对象
类方法和实例方法的区别,实例方法的第一个参数是self,而类方法的第一个参数是cls
1
2
3
4
实例方法当通过类调用时,不会自动传递self,此时我们必须手动传递self

类方法可以通过类去调用,也可以通过实例调用,没有区别

例子

class A(object):
    def test(self):
        print('这是test方法~~~ ' , self)
    @classmethod
    def test_2(cls):
        print('这是test_2方法,他是一个类方法~~~ ',cls)
        print(cls.count)
       
       
a = A()
a.test() 等价于 A.test(a)
A.test_2() 等价于 a.test_2()
1
2
3
4
5
6
7
8
9
10
11
12
json是字典的字符串的格式,两种可以相互转换

内置函数
find count index isalpha、isdigit、isspace pow abs

字符串 find count (ps xx.find(‘寻找的字符串’,start,end) 返回找到的第一个下标位置 没有找到则返回-1)

(ps xx.count(‘寻找的字符串’) 返回对应数量)

join(ps ‘按啥分隔’.join(xx) xx 可以是字符串 列表 元组)

a = '123456'  #也可以是列表或元组
b = ' '.join(a)
print([b])  #['1 2 3 4 5 6']
print(type(b)) #<class 'str'>
1
2
3
4
round()

eval()

# a = ' 3 * 7 '
# print(eval(a))  #21
————————————————
版权声明:本文为CSDN博主「BRAVE_Fighting」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shijianzhihai/article/details/126682302

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值