【学习笔记二】

本文详细介绍了Python中的数据类型转换,包括int(), float(), str(), bool(), list(), tuple(), set()和dict()的用法。对于list()和tuple(),重点讲述了如何从数字、字符串、元组和字典转换,而set()和dict()的转换规则以及特殊情况。此外,还涵盖了instance()函数的使用以及Python的条件语句、for循环、while循环和函数的基本概念。" 109134924,5641248,Windows环境下使用MSYS2编译Redis6.x,"['Redis', 'Windows开发', '编译工具', 'GCC', 'MSYS2']
摘要由CSDN通过智能技术生成

16.     python 强制类型转换

通过type()函数检测数据类型 

16.1    int()  

强制转换为整型,数字类型之间是互相转换的,只有字符串可以转换为数字类型,并且字符串中的元素必须是纯数字,包括点号也不行,开头为正负(+/-)副号是可以转换的,否则无法转换。

16.2    float() 

将其他类型数据转换为浮点型。浮点型转换为整型时不进行四舍五入,仅向下取整。布尔值也代表数字,True代表1,False代表0

16.3    str()

强制转换为字符串,所有的类型都可以转换成字符串类型

16.4    bool()

其他类型传数字类型有个特殊情况,就是其他类型传布尔类型,bool()可以将其他类型转换为True或者False

16.4.1    容器类型传布尔类型

容器类型数据:字符串,列表,元组,字典,集合
非容器类型数据: 数字类型,布尔类型
容器中有元素:True
容器中无元素:False

16.4.2    数字类型转布尔类型

int类型中,0为False,1为True
float类型中,0.0为False,其他为True

a = "  "    #空格元素
b = []
c = ()
d = {}
e = set()
print(bool(a))
print(bool(b))
print(bool(c))
print(bool(d))
print(bool(e))      
    True
    False
    False
    False
    False                

a = 0.0
print(bool(a))  
    False
a = 0.000
print(bool(a))
    False            
a = 0.001
print(bool(a))
    True            

16.5    list()

16.5.1    数字类型转列表类型

数字类型是非容器类型的,不能转换为列表
16.5.2    字符串类型转列表类型
字符串转列表类型时,会把字符串中的每个字符素当成列表的元素

a = '123'
print(list(a))
    ['1', '2', '3']   

16.5.3    元组转换列表

元组转换列表类型时,会把元组中的每个字符当成列表的元素

a = (1,2,3,'abcd')
print(list(a)) 
    [1, 2, 3, 'abcd']

16.5.4    字典转换为列表类型

字典转换为列表类型时,值保留字典中的键

a = {
    'name': 'ajunyu',
    'age': 27,
    'skill': {
        'skill1': 'python',
        'skill2': 'java'
    }
}

print(list(a))        
['name', 'age', 'skill']

16.5.5    集合转换为列表类型

集合转换为列表类型时,结果是无序的,集合本身是无序的

a = {1,2,'ajunyu',3,4}
print(list(a)) 
    [1, 2, 3, 'ajunyu', 4]
    tuple()

16.6  tuple()

其他类型转元组类型与其他类型转列表类型的规则相同
数字类型是非容器类型,不能转换为元组
字符串转元组时,会把字符串中的每个元素当成元组的元素
列表转元组时,会把列表中的每一个元素当成元组的元素
字典转元组时,只保留字典当中的键

 a = {
     'name': 'ajunyu',
     'age': 27,
     'skill': {
         'skill1': 'python',
         'skill2': 'java'
     }
 }
 
 print(tuple(a))
 ['name', 'age', 'skill']        
     ('name', 'age', 'skill')

集合转元组时,结果是无序的,集合本身是无序的

 a = {1,2,'ajunyu',3,4}
 print(tuple(a))   
     (1, 2, 3, 'ajunyu', 4)

16.7    set()

16.7.1    数字转换为集合类型

数字类型是非容器类型,不能转换为集合

16.7.2    字符串转换为集合类型

字符串转换为集合类型时,结果是无序的

 a = 'abcdefg123456'
 print(set(a))
     {'d', '5', 'e', '1', '2', 'f', 'a', 'c', '6', '4', '3', 'b', 'g'}

16.7.3    列表转换为集合类型

列表转换为集合类型时,结果是无序的

16.7.4    元组转换为集合类型

元组转换为集合类型时,结果是无序的

16.7.5    字典转换为集合类型      

字典转换为集合类型时,只保留字典中的键,结果是无序的 

16.8    dict()  

16.8.1    数字类型转换为字典类型

数字类型是非容器类型,不能转换为字典

16.8.2    字符串转换为字典类型

字符串不能转换为字典类型,因为字符串不能生成二级容器(嵌套)

16.8.3    列表类型转换为字典类型

列表类型转换为字典类型,列表必须为等长的二级容器(集合嵌套),子容器的元素个数必须为2

a = [1,2,3,'a','b','c']
print(dict(a))
    TypeError: cannot convert dictionary update sequence element #0 to a sequence
            b = [[1,'a'],[2,'b']]
            print(dict(b))
                {1: 'a', 2: 'b'}

16.8.4    元组类型转换为字典类型

元组类型转换为字典类型,列表必须为等长的二级容器,子容器的元素个数必须为2

16.8.5    集合类型转换为字典类型

集合不能转换为字典类型(相当于元素无序排列,无法一一对应)

17.     instance()函数

用来判断一个对象是否是一个一直的类型。
返回值是布尔值,若对象的类型为已知的类型,返回True,否则返回False

17.1    语法

instance(对象,对象类型),满足一个对象类型,则返回True
对象类型有int、float、bool、str、list、tuple、set、dict

a = 1234
print(isinstance(a,(float,str,dict)))
    False
a = 1234
print(isinstance(a,(float,int,dict)))
    True

18.     python条件语句

条件必须是真值,if后面的冒号必须有。if语句是单独存在的。else后面不用跟条件。
if...elif......else,
if 条件:
执行语句一
elif 条件二:
    执行语句二
else:
    执行语句三(以上条件均不满足)    

19.     for循环

用来循环遍历序列,通过不使用下标的方式实现对序列中的每一个元素的访问,可以实现对 list、tuple、str、set、dict等的访问
for 变量名称  in 数据类型:
    执行语句
    
遍历数字用range()函数
range(0,10),取左不取右
    
遍历字典的键和值

a = {
    'name': 'ajunyu',
    'age': 27,
    'skill': {
        'skill1': 'python',
        'skill2': 'java'
    }
}
for i in a:
    print(i)
for j in a.items():
    print(j)
    
        name
        age
        skill  
        ('name', 'ajunyu')              #以元组的形式
        ('age', 27)
        ('skill', {'skill1': 'python', 'skill2': 'java'})    

range()函数的步长
range(0,10,2)

for i in range(0,10,2):
    print(i)
        0
        2
        4
        6
        8

19.1    Python双重循环

a =  [1,2,3,[40,50,60],[700,800,900]]
for i in a:
    if isinstance(i,list):
        for j in i:
            print(j)  

20.     Python while循环\

20.1    语法

while True:
    执行语句

c = 0
while c < 6:
    print(c)
    c += 1  

while循环可以配合else运行

c = 0
while c < 6:
    print(c)
    c += 1
else:
    print("当前的C值{}已不满足循环条件".format(c))    

20.2    循环中的关键字

break和continue。
break 跳出循环
continue跳出当前循环执行循环模块的剩余语句,进行下一轮循环

for i in 'python':
    if i == 'o':
        break
    print(i)
        p
        y
        t
        h
for i in 'python':
    if i == 'o':
        continue
    print(i)                
        p
        y
        t
        h
        n

a = 0
while a < 6:
    a += 1

    if a == 3:
        continue
    print('当前a的值:', a)

20.3    pass

 空语句,为了保持程序结构的完成性     

21.     Python的函数  

函数是组织好的,可以重复使用的,函数的目的是封装业务逻辑,实现代码的重复使用

21.1    函数的创建

用def关键字:
   def  函数名(形参):
       函数体

21.2    函数的调用(运行函数)

函数名(实参)
函数必须先定义再调用

21.3    函数的参数

21.3.1    位置参数    

在对函数进行调用的时候,有几个位置参数就需要传递几个参数,否则会触发异常,并且,传入参数(形参)和函数参数(实参)列表时一一对应的关系,形参和实参都是位置参数,传入的参数可以是任意的数据类型

21.3.2    默认参数    

默认参数是指带有默认值的参数,在对该函数进行调用的时候,可以不必显示传递给该函数,当不传递的时候,函数将使用默认值。默认值只能回执行一次,这条规则在默认值为可变对象(列表、字典以及大多数的类的实例)是非常重要。官方建议默认参数尽量使用不可变对象。
省略传入所有参数,函数会默认使用默认参数的默认值。

def abc(a=300,b=400):
    print(a+b)
abc()     
    700

如果传入一个参数,默认为第一个参数进行参数

def abc(a=300,b=400):
    print(a+b)
abc(600)    
    1000

传入,另一个参数继续使用默认值

def abc(a=300,b=400):
    print(a+b)
abc(600)    
    1000

传入多个参数时,替换默认参数

def abc(a=300,b=400):
    print(a+b)
abc(600,600)   
    1200  

对指定的参数进行传入值

def abc(a=300,b=400):
    print(a+b)
abc(b=600)      
   900 
   

可变类型传参

def abc(a,b=[]):        #列表时可变对象
    b.append(a)
    print(b)
abc(100)
    [100]
    
def abc(a,b=[]):
    b.append(a)
    print(b)
abc(100)
abc(200)                #多次调用            
    [100]
    [100, 200]          #第一次调用会影响第二次调用

解决问题:使两次调用之间没有联系

def abc(a,b=None):
    if b is None:
        b = []
        b.append(a)
        print(b)
abc(100)
abc(200)   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值