Day04

一、int,str,bool三种基本类型的转换:

         int ------str: 转换方法直接是str()就行

代码演示:

1 a = 909090
2 a1 = str(a)
3 print(a1)
4 print(type(a1))

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
909090
<class 'str'>

        str -------int: 转换方法直接是int()就行

代码演示:

1 a = '我来自湖北省武汉市黄陂区'
2 b = '10000'
3 a1 = int(a)
4 #b1 = int(b)
5 print(a1)
6 #print(b1)

运行结果:

1 Traceback (most recent call last):
2   File "D:/学习资料/项目/练习/lianxi.py", line 3, in <module>
3     a1 = int(a)
4 ValueError: invalid literal for int() with base 10: '我来自湖北省武汉市黄陂区'

报错的原因在于,文字字符串不能转换成为数字,因为代码解释会有一定的问题。

只有数字字符串才能转换成为数字

代码演示:

1 a = '我来自湖北省武汉市黄陂区'
2 b = '10000'
3 #a1 = int(a)
4 b1 = int(b)
5 #print(a1)
6 print(b1)

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
10000

进程已结束,退出代码0

直接很成功的就转换成为了数字。

       str ----------bool:也是直接bool()就行

代码演示:

1 a = ''
2 a1 = ' '
3 a2 = '我来自湖北省武汉市黄陂区罗汉寺街道'
4 b = bool(a)
5 b1 = bool(a1)
6 b2 = bool(a2)
7 print(b)
8 print(b1)
9 print(b2)

运行结果:

1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
2 False
3 True
4 True
5 
6 进程已结束,退出代码0

通过上述实验得知,在python中 str 类型转换成 bool 类型只要是空字符串就是False,只要字符串中有内容,哪怕是空格,bool返回的也是Ture.所以也还是比较简单的。

            int --------bool: 

代码演示:

 1 a = 1
 2 a1 = 0
 3 a2 = -1
 4 a3 = 1.1
 5 b = bool(a)
 6 b1 = bool(a1)
 7 b2 = bool(a2)
 8 b3 = bool(a3)
 9 print(b)
10 print(b1)
11 print(b2)
12 print(b3)

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
True
False
True
True

进程已结束,退出代码0

与字符串转换成 bool类型类似,int 类型转换成 bool除了0以外的数全部都是TURE,无论是整数,复数,还是小数。只有0转换成 bool是false

                   bool ----------int:

代码演示:

1 a = True
2 a1 = False
3 b = int(a)
4 b1 = int(a1)
5 print(b)
6 print(b1)

运行结果:

1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
2 1
3 0
4 
5 进程已结束,退出代码0

bool类型的 ture,false 分别对应 int 里面的 1和0

二、列表的操作方法:

列表是python中特有的存在一般用 [a1,a2,a3] 中括号括起来进行表示列表

     列表的操作方法

               增加:

(append),增加到末尾:

代码演示:

1 #增加 append
2 '''
3  def append(self, *args, **kwargs): # real signature unknown
4         """ Append object to the end of the list. """
5 '''
6 li = [1,2,3,'胡澳'] 7 li.append(56) 8 print(li)

运行结果:

1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
2 [1, 2, 3, '胡澳', 56]
3 
4 进程已结束,退出代码0

append和它方法的解释一样,只能添加在列表的最后面。并不能够随心所欲的增加数据

(insert)按照索引进行增加:

代码演示:

1 #增加 append
2 '''
3 def insert(self, *args, **kwargs): # real signature unknown
4         """ Insert object before index. """
5         pass
6 '''
7 li = [1,2,3,'胡澳']
8 li.insert(1,'huao')
9 print(li)

运行结果:

1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
2 [1, 'huao', 2, 3, '胡澳']
3 
4 进程已结束,退出代码0

insert 是可以根据索引进行插入的,可以想在那个地方插入数据就在那个地方插入数据

extend增加的是迭代对象里面的元素

代码演示01:

 1 #增加 append
 2 '''
 3 def extend(self, *args, **kwargs): # real signature unknown
 4         """ Extend list by appending elements from the iterable. """
 5         pass
 6 '''
 7 li = [1,2,3,'胡澳']
 8 li.extend('青柠辄酒')
 9 #li.extend(123)
10 print(li)

运行结果01:

1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
2 [1, 2, 3, '胡澳', '', '', '', '']
3 
4 进程已结束,退出代码0

代码演示02:

 1 #增加 append
 2 '''
 3 def extend(self, *args, **kwargs): # real signature unknown
 4         """ Extend list by appending elements from the iterable. """
 5         pass
 6 '''
 7 li = [1,2,3,'胡澳']
 8 #li.extend('青柠辄酒')
 9 li.extend(123)
10 print(li)

运行结果02:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
Traceback (most recent call last):
  File "D:/学习资料/项目/练习/lianxi.py", line 9, in <module>
    li.extend(123)
TypeError: 'int' object is not iterable

进程已结束,退出代码1

由两次的结果进行比对发现:在添加123时报错了。根据对 extend方法的解释发现,列表添加的是 iterable(可迭代对象) ,并将可迭代对象中的元素依次添加进入列表中。

在这里补充一下什么是可迭代对象:

一般简单的理解就是可以用 for 循环的对象就是迭代对象 ,常见的可迭代对象有(字符串,字典,列表,元组,生成器等)

先来理解一下迭代的意思:

迭代指的就是:每一次对过程的重复成为一次迭代,每一次迭代的结果成为下一次迭代的初始值。

所以迭代对象就是能够进行迭代的对象。

                   删除:

pop按照索引进行删除,有返回值,返回的是被删除的元素:

代码演示:

1 #删除:
def pop(self, *args, **kwargs): # real signature unknown
"""
Remove and return item at index (default last).

Raises IndexError if list is empty or index is out of range.
"""
pass

2 li = [1,2,3,4,7,8,'胡澳'] 3 l1 = li.pop(2) 4 l2 = li.pop() 5 #l3 = li.pop(12) 6 print(l1,li) 7 print(l2) 8 #print(l3)

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
3 [1, 2, 4, 7, 8]
胡澳

进程已结束,退出代码0

分析:

代码第三行 l1 接受的是删除返回的元素 3

代码第四行 l2 中没有索引的时候,直接默认删除列表最后一个

超过索引的时候会直接报错。

remove 按照值进行删除,无返回值:

代码演示:

 1 #删除:
 2 '''
 3 def remove(self, *args, **kwargs): # real signature unknown
 4         """
 5         Remove first occurrence of value.
 6 
 7         Raises ValueError if the value is not present.
 8         """
 9         pass
10 '''
11 li = [1,2,3,4,7,8,'胡澳']
12 li.remove(4)

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
[1, 2, 3, 7, 8, '胡澳']

进程已结束,退出代码0

分析:remove没有返回值,删除的直接是值。如果在列表中没有找到被删除的值,则会直接报错。

clear 一次性全部清空:

代码演示:

1 #删除:
2 '''
3 def clear(self, *args, **kwargs): # real signature unknown
4         """ Remove all items from list. """
5         pass
6 '''
7 li = [1,2,3,4,7,8,'胡澳']
8 li.clear()
9 print(li)

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
[]

进程已结束,退出代码0

del  切片进行删除:

代码演示:

1 li = [1,2,3,4,'胡澳']
2 del li[0:3]
3 print(li)

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
[4, '胡澳']

进程已结束,退出代码0

切片的方法和字符串切片的方法一样。

           改:

代码演示:

1 li = [1,2,3,4,'胡澳']
2 li[0] = '湖北省武汉市'
3 li[0:3] = ['二哥','贤语哥',12,5,6,23,6,78]
4 print(li)

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
['二哥', '贤语哥', 12, 5, 6, 23, 6, 78, 4, '胡澳']

进程已结束,退出代码0

分析:修改列表中的元素,单个修改如第二行所示直接进行替换就行。

           也可以使用切片进行修改如第3行所示:切片进行修改的特点就是只要指定了区间,无论后面列表里面跟着有多少的元素都能够塞进去。就像3行,选取了前面[0:3]的位置,只有三个元素的位置,但是还是把它所有的元素都给塞进去了。

             查:

代码演示:

1 li = [1,2,3,4,'胡澳']
2 for i in li:
3     print(i,end=' ')
4 print()
5 print(li[0:3])

运行结果:

1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
2 1 2 3 4 胡澳 
3 [1, 2, 3]
4 
5 进程已结束,退出代码0

分析:列表查看的方法一般就两种,使用for循环进行循环打印,使用切片进行输出。

 常见的公共方法(len,index,count):

代码演示:

 1 '''
 2 # 判断迭代对象的长度
 3 def len(*args, **kwargs): # real signature unknown
 4     """ Return the number of items in a container. """
 5     pass
 6 # 返回容器中的项数
 7 '''
 8 
 9 li = [1,2,3,4,'胡澳','胡澳',4,4,4]
10 a = len(li)
11 print(a)
12 
13 '''
14 def count(self, *args, **kwargs): # real signature unknown
15         """ Return number of occurrences of value. """
16         pass
17 一般是用来返回值出现的次数
18 '''
19 b = li.count(4)
20 print(b)
21 
22 '''
23 def index(self, *args, **kwargs): # real signature unknown
24         """
25         Return first index of value.
26 
27         Raises ValueError if the value is not present.
28         """
29         pass
30 #一般是返回第一个值得索引,是什么意思呢!比如列表中可能有很多个4,但是返回得索引值是第一个4得索引值 31 ''' 32 print(li.index(4))

运行结果:

1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
2 9
3 4
4 3
5 
6 进程已结束,退出代码0

 排序:

代码演示:

 1 li = [1,4,5,6,3,2,7]
 2 
 3 #正序排序
 4 #li.sort()
 5 #print(li)
 6 
 7 #反序排序
 8 #li.sort(reverse=True)
 9 #print(li)
10 
11 #反转
12 li.reverse()
13 print(li)

运行结果:

1 D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
2 [7, 2, 3, 6, 5, 4, 1]
3 
4 进程已结束,退出代码0

分析:sort()中的 reverse(颠倒) 是默认的False 所以是正序进行排序。当时Ture的时候,就进行逆序排序。 调用reverse()函数的时候,是将列表进行反转,将最后面的元素放回最前面去。所以注意反转和反序排序不是同一个事情。

 列表的嵌套:

代码演示:

 1 li = [[1,2,3,4],'hua','aa胡澳',['江湖混子','青柠辄酒']]
 2 #将江湖混子替换成胡澳
 3 li[3][0] = li[3][0].replace('江湖混子','胡澳')
 4 #print(li)
 5 
 6 #将hua中的首大写
 7 li[1] = li[1].capitalize()
 8 #print(li)
 9 
10 #删除[1,2,3,4]中的3,4
11 li[0].remove(3)
12 print(li)

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
[[1, 2, 4], 'Hua', 'aa胡澳', ['胡澳', '青柠辄酒']]

进程已结束,退出代码0

分析:列表的嵌套就是列表里面的元素是列表,也就是列表里面嵌套着列表。例如 1行的 li 列表就是。列表里面的元素取出来后可以按照原来的方式进行操作,如果是列表就按照列表的方式进行操作,如果是字符串就可以按照字符串的方式进行操作。取出来之后就完全独立于原来的列表了。

元组:

元组在python中不同于列表,字典,字符串等可以进行修改的迭代对象,元组只能进行读取,不能进行修改。它可以进行循环查询,可以像列表一样进行切片。

但是元组虽然不能够进行修改,但是元组里面的部分元素却可以进行修改。例如([1,2,3],'胡澳','湖北省武汉市') 里面的列表和字符串却可以进行修改。

代码演示:

 1 tu = ['胡澳', 3, 4, [1, 2, 3, 4], "湖北省武汉市黄陂区"]
 2 #循环查询:
 3 for i in tu :
 4     print(i)
 5 
 6 print("="*20)
 7 
 8 #切片输出:
 9 print(tu[0:3])
10 
11 print("="*20)
12 
13 #对元素进行修改,例如在列表后面添加20
14 tu[3].append('20')
15 print(tu)

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
胡澳
3
4
[1, 2, 3, 4]
湖北省武汉市黄陂区
====================
['胡澳', 3, 4]
====================
['胡澳', 3, 4, [1, 2, 3, 4, '20'], '湖北省武汉市黄陂区']

进程已结束,退出代码0

list ----------str的转换:

list类型转换成为str的时候使用 join 就能行。这是最基本的。

join 的基本用法

join方法的描述  连接任意数量的字符串,方法被调用的字符串被插入到每个给定字符串之间 ,结果作为新字符串返回。

代码演示:

 1 '''
 2 def join(self, ab=None, pq=None, rs=None): # real signature unknown; restored from __doc__
 3         """
 4         Concatenate any number of strings.
 5 
 6         The string whose method is called is inserted in between each given string.
 7         The result is returned as a new string.
 8 
 9         Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
10         """
11         pass
12 
13 '''
14 s2 = "湖北省武汉市黄陂区"
15 s1 = ' '.join(s2)
16 print(s1)

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
湖 北 省 武 汉 市 黄 陂 区
湖 北 省

 list 类型转换成为 str

代码演示:

1 li = ['','','']
2 l1 = ' '.join(li)
3 print(l1)
4 print(type(l1))
5 print(type(li))

运行结果:

湖 北 省
<class 'str'>
<class 'list'>

可以看到的就是,li 的类型已经发生了变化,由原来的 list  类型转换成为了 str 类型

str ------- list 的转化(split):

代码演示:

1 st = '湖 北 省武 汉市黄陂区'
2 s1 = st.split(" ")
3 print(s1)
4 print(type(st))
5 print(type(s1))

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
['', '', '省武', '汉市黄陂区']
<class 'str'>
<class 'list'>

直接使用 split 进行切片就行。能偶将 str  类型转换成为 list  类型

 range 详解:

range 函数是用来专门给迭代对象进行迭代的函数。

具体用法如下:

代码演示:

#标准正序输出步长
for i in range(0,10):
    print(i,end = ' ')
print()

#输出奇数,将步长转换成为2就行
for i in range(1,10,2):
    print(i,end = ' ')
print()
#倒叙输出
for i in range(10,0,-1):
    print(i,end = ' ')
print()

for i in range(10):
    print(i,end=' ')
print()

for i in range(10,-1,-2):
    print(i, end=' ')
print()

运行结果:

D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
0 1 2 3 4 5 6 7 8 9 
1 3 5 7 9 
10 9 8 7 6 5 4 3 2 1 
0 1 2 3 4 5 6 7 8 9 
10 8 6 4 2 0 

进程已结束,退出代码0

上面的程序演示了 range  函数的正序,倒叙,有步长,无步长等等一些列的操作。其实,这些操作和字符串的切片基本上是一样的使用方法。

yunxing 

本文来自博客园,作者:江湖混子,转载请注明原文链接:https://www.cnblogs.com/huao990928/p/11620014.html

原文地址:https://www.cnblogs.com/huao990928/p/11620014.html