暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python百问百答(21-30)

健谈始于戊戌年 2021-07-01
328
书接上文:

Python百问百答(1-10)


Python百问百答(11-20)




问题21. Python里[::-1]是什么意思?

答案:[::-1]用来颠倒数组的顺序。比方说在引用array库以后,你可以定义数组ABC


import array as arr

ABC=arr.array('i',[1,2,3,4,5])

 

ABC里面有整型数据1,2,3,4,5

array('i', [1, 2, 3, 4, 5])

 

然后你用了[::-1],也就是

ABC[::-1]

 

于是就产生了

array('i', [5, 4, 3, 2, 1])


注意[::-1]只是将原有数组或者列表的数据结构中的顺序反过来了。但是原有的数组和列表的顺序不变。

 

问题22. 如何随机排列Python列表里面的元素?
答案:我们可以用shuffle函数,从新排列。我们来看一个例子


from random import shuffle

x = ['白', '日', '依', '山', '尽','黄', '河', '入', '海', '流']

y = [2,0,1,9,12,18]

shuffle(x)

print(x)

shuffle(y)

print(y)

 

shuffle函数将x和y重新洗牌,得到以下结果:

['入', '尽', '依', '白', '海', '流', '日', '山', '黄', '河']

[18, 9, 2, 1, 12, 0]

 

问题23. 什么是Python里的迭代器(Iterators)?
答案:迭代器是一种对象(Object),它可以用来遍历标准模板库容器中的部分或者全部元素。

 

问题24. 如何在Python里生成随机数?
答案:Python中的随机模块是用来产生随机数的标准模块。我们可以这样操作:

import random

random.random()

 

输出:1.342253495503241


需要指出,random.random()语句可以产生一个[0-1)之间的浮点型随机数。如果你需要产生其他类型的随机数,可以用到以下的命令:

 

Randrange(a,b)。它可以随机产生一个介于[a,b)之间的整数。例如

random.randrange(1,10)

输出:8

 

Uniform(a,b)。它可以随机产生一个介于[a,b)之间服从均匀分布的浮点型数字


random.uniform(1,2)

输出:1.3601089771430979

 

normalvariate(mean,sdev)。它可以产生一个符合平均值为mean,标准差为sdev的正态分布数值。例如我们可以产生一个平均值为20,方差为2的数值。


random.normalvariate(20, 2)

输出:20.973846576317797

 

问题25. 在Python里range和xrange之间有何区别?
答案:在大多数情况下,range和xrange的功能是一样的。它们都可以产生一组整数。它们唯一的不同在于range返回Python列表对象,而xrange返回xrange对象。

 

问题26. 在Python里怎么写注释?
答案:Python的注释行用#开头。但是有的时候,也可以用三个引号构成的文档字符串(Docstrings)做注释。例如:

#我的Python程序

"""

Created on Wed Dec 18 15:59:22 2019

@author: JT-2018

"""

 

问题27. 什么是序列化(pickling)和反序列化(unpickling)?
答案:我们把变量从内存中变成可存储或者传输的过程成为序列化,也就是Python中的pickling。通过序列化,我们可以把内容写入磁盘或者通过网络传输出去。相反地,如果把变量从序列化的对象重新读取到内存中,则被成为反序列化。

在Python中,实现序列化的模块叫做pickle。而pickle.dump()方法可以把任意的对象序列化成为一个byte,然后把这个byte写入文件。

 

问题28. 什么是Python中的生成器(Generators)?
答案:一个Python函数通常产生一个值。这个值可以是列表、整数或者对象。但是如果调用一个函数,如何让这个函数产生一系列值呢?这就要用到生成器。所以,生成器就是能产生一系列值的函数。

 

问题29. 如何将字符串首字母大写?
答案:在Python中,capitalize()方法可以将字符串的首字母大写。如果字符串中的首字母已经大写,它会保留原有大写字母。我们来看一个例子: 


s = 'a, B'

s.capitalize()

输出:'A, b'

 

s = ' a, B'    # a 前面有空格

s.capitalize()

输出:' a, b'

 

s = 'A, BCD'

s.capitalize()

输出:'A, bcd'

 

问题30. 如何将字符串小写?
答案:这需要用到lower()函数。

s = "I Love Python"

print(s.lower())

输出:i love python


文章转载自健谈始于戊戌年,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论