Python从入门到进阶(九)——语法基础(六)

1 数学相关

1.1 abs(x)

返回一个数的绝对值,参数可以是普通的整数,长整数或者浮点数,如果参数是个复数,返回它的模.

abs(1)
1
abs(-1)
1

1.2 divmod(x,y)

结合除法和余数运算,返回包含商和余数的元组

divmod(5,2)
(2,1)

1.3 pow(x,y[,z])

pow(x,y)返回x的y次方,如果z存在即pow(x,y,z),其结果等于pow(x,y)%z

pow(2,3)
8
pow(2,3,3)
2
pow(2,-3)
0.125

1.4 round(x[,n])

返回浮点数x的四舍五入的值,其中n值,表示小数点后的位数

round(2)
2.0
round(2.567)
3.0
round(2.567,2)
2.57

1.5 min(x[,y,z…]),max(x[,y,z…])

返回给定参数和最小值或者最大值,参数可以为序列

min(2,1)
1
max(2,1)
2

1.6 sum(iterable[,start])

sum()函数对序列进行求和运算

sum([1,2,3,4])
10
sum(range(101))
5050

1.7 oct(x)

oct()函数用于将一个整数转换为八进制

oct(0)
'0'
oct(4)
'04'
oct(8)
'010'
oct(10)
'012'

1.8 hex(x)

hex()函数用于将10进制转换为16进制数

hex(255)
'0xff'
hex(256)
'0x100'
hex(16)
'0x10'

1.9 chr(i)

char()函数根据输入的数字返回一个字符,数字的范围为range(0,256)

chr(65)
'A'

2.0 bin(x)

bin()函数返回一个整数的二进制表示

bin(1)
'0b1'
bin(10)
'0b1010'

2 类型转换

2.1 bool([x])

bool()函数将参数转换为bool类型,如果没有给参数则返回False

bool()
False
bool(0)
False
bool(1)
True

2.2 int(x,base=10)

int()函数用于将一个字符串或者数字转换为整型
参数base表示进制数,默认为十进制

int()
0
int(1.1)
1
int('10',16)
16
int('10',8)
8

2.3 float([x])

float()函数用于将整数和字符串转换为浮点数

float()
0.0
float(1)
1.0

2.4 str(object)

str()函数将对象转换为可阅读的样式

str()
''
str(str)
str('1234')

2.5 list([iterable])

list()函数根据输入的可迭代的参数,创建一个新的列表

list()
[]
list('1,2,3,4')
['1','2','3','4']

2.6 dict([iterable])

dict()函数根据传入的参数,创建一个新的字典

dict()
{}
dict(a=1,b=2,c=3)
{'a':1,'c':3,'b':2}
dict(zip(['a','b','c'],['1','2','c']))
{'a':'1','c':'c','b':'2'}

2.7 set([iterable])

set()函数根据参数创建一个新的集合

set()
set([])
set('1234')
set(['1','3','2','4'])

2.8 frozenset([iterable])

frozenset()函数返回一个冻结的set集合,其不能添加和删除元素

frozenset()
frozenset([])
frozenset(range(10))
frozenset([0,1,2,3,4,5,6,7,8,9])

3 序列相关

3.1 len(object)

返回字符串或者序列的长度

len("hello world!")
12
len([1,2,3,4,5])
5

3.2 range([start,]stop,[,step])

创建一个整数列表,一般用在for循环中.
其中的参数说明为:

  • start:生成的整数从start开始,可省略,默认为0
  • end:生成的整数以end结束,但不包含end.
  • step:步长,默认为1
range(5) # 等于range(0,5)
[0,1,2,3,4]
range(1,5) # 不包含5
[1,2,3,4]
range(1,5,2) # 步长为2
[1,3]
range(0) # range(0,0)为空
[]
range[5,1] # start不能小于end

3.3 zip([iterable,…])

zip()函数聚合传入的一个到多个迭代器相同位置的元素生成一个新的元组类型的迭代器

x=[1,2,3]
y=[a,b,c]
z=[4,5,6]
zip(x,y)
[(1,'a'),(2,'b'),(3,'c')]
zip(x,y,z)
[(1,'a',4),(2,'b',5),(3,'c',6)]

3.4 sorted

sorted()函数对所有可迭代的对象进行排序操作
其原型为:sorted(iterable,cmp=None,key=None,reverse=False)
其主要参数含义为

  • cmp:比较函数
  • key:主要用来比较的函数
  • reverse:排序方式:True:降序排列,False:升序排列
sorted([4,3,2,1]) # 默认为升序排列
[1,2,3,4]
sorted([1,2,3,4],reverse=False) # 升序排列
[1,2,3,4]
sorted([1,2,3,4],reverse=True) # 降序排列
[4,3,2,1]

3.5 reversed(seq)

reversed()反转序列,生成一个新的序列

list(reversed([1,2,3,4]))
[4,3,2,1]

3.6 enumerate(iterable[,start])

enumerate()函数用于将一个可遍历的数据对象,组合为一个索引序列,同时包含索引和数据
其中参数start表示参数下标的起始位置

>>> a=[1,2,3,4]
>>> list(enumerate(a))
[(0, 1), (1, 2), (2, 3), (3, 4)]
>>> list(enumerate(a,2))
[(2, 1), (3, 2), (4, 3), (5, 4)]
>>>

3.7 iter

iter()函数用于创建一个迭代器

a=iter(range(10))
next(a)
0
next(a)
1
next(a)
2

3.8 next()

next()函数返回迭代器的下一个元素

a=iter(range(10))
next(a)
0
next(a)
1
next(a)
2

3.9 slice

slice()函数返回一个切片对象,主要用在切片操作函数里的参数传递

slice0_5=slice(5) # 返回0-5切片的数据
slice4_10=slice(4,10) # 返回4-10切片的数据
print range(10)[slice0_5] # [0,1,2,3,4]
print range(10)[slice4_10] # [4,5,6,7,8,9]

4.0 all(iterable)

all()函数用于判断给定的可迭代参数中是否含有元素为0,‘’,False,如果含有这样的元素返回False否则返回True,如果是空的迭代器则返回True.

all([]) # 空迭代器
True
all([1,2,3,4]) # 所有元素都不为0,'',False
True
all([0,1,2,3,4]) # 含有元素 0
False
all('',1,2,3,4) # 含有元素''
False
all([False,1,2,3,4]) # 含有元素 False
False

4.1 any(iterable)

any()函数用于判断给定的迭代器是否全部为空的元素0,‘’,False,如果全部为空则返回False,否则返回True
空的元组或者列表返回False.

any([]) # 空列表返回False
False
any([1]) # 没有空元素
True
any([0,1]) # 存在非空元素
True
any([0]) # 不存在非空元素
False

all()和any()函数的区别如下:

  • all()函数只要含有空元素,那么就返回False.
  • any()函数只要含有非空元素,那么就返回True.
  • 空列表或者元组,all()函数返回true,any()函数返回False

4.2 cmp(x,y)

cmp()函数用于比较两个对象的大小,如果x<y返回-1,如果相等则返回0,如果x>y则返回1

cmp(1,2)
-1
cmp(1,1)
0
cmp(2,1)
1

4.3 filter(function or None,sequence)

filter()函数用于过滤序列,过滤不符合的数据,返回有符合元素组成的序列

# 过滤大于5的数
def max5(s):
	return s>5
print filter(max5,range(10))

4.4 map

map()函数将传入的函数应用到序列中的所有的项.可以应用多个序列,当传入的为None而不是函数的时候,map()函数将序列中的元素合并起来,返回一个新的元组.
map(function,sequence[,sequence,…])

def add(a,b):
	return a+b
print map(add,[1,2],[3,4])
print map(None,[1,2],[3,4])
[4,6]
[(1,3),(2,4)]

4 对象操作

4.5 help([object])

help()函数用于查看函数或模块用途的详细说明

4.6 dir([object])

dir()函数主要是收集对象的信息.如果其不带参数,就返回当前范围的变量,方法和定义的类型列表.
带参数的时候,返回参数的属性,方法列表

>> dir()#返回当前的属性列表
['__builtins__', '__doc__', '__name__', '__package__']
>>> dir(int)#返回int的属性列表
['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', '__format__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'imag', 'numerator', 'real']

4.7 id([object])

id()函数用于获取对象的内存地址

id(int)
4553319656
id('1234')
4555435104

4.8 hash([object])

hash()用于获取一个对象的哈希值

hash(str)
284584308
hash("1234")
659471584116336832

4.9 type(name,bases,dict)

type()函数,如果只有一个参数则返回对象的类型,如果有三个参数则返回新的类对象

type(1)
<type 'int'>
type({1:'value'})
<type 'dict'>
x=type('X',(object,),dict(a=1))
x
<class '__main__.X'>

5 Python内置方法的使用

5.1 内置函数的基本用例

请选出以下会抛出断言异常的代码

# A.
assert abs(-1) == 1
assert max(10, 100) == 100
assert min(10, 100) == 10
assert round(3.5) == 3assert pow(2, 4) == 16
assert float(1) == 1.0
# B.
assert all([True, True]) == True
assert any([True, False]) == True
assert bool({}) == False
assert callable(abs) == True
# C.
assert ascii('你') == "'\\u4f60'"
assert bin(2) == '0b10'
assert bytes([0, 1]) == b'01'assert str(1) == 1assert chr(97) == 'a'
assert '{}, {}, {}'.format('a', 'b', 'c') == 'a, b, c'
assert hex(1) == '0x1'
# D.
assert 'count' in dir([])
assert hash("a") == hash(chr(97))
assert type({}) == type({'a': 1})

5.2 列表内置函数的用例

基本测试+执行,请选出每个 assert 结果都是 True的代码

# A.
seasons = ['Spring', 'Summer', 'Fall', 'Winter', 'sunshine']

non_s_seasons = list(filter(lambda s: s[0] != 'S', seasons))
assert len(non_s_seasons) == 3

s_seasons = list(filter(lambda s: s.lower()[0] == 'S', seasons))
assert len(s_seasons) == 2
# B.
index = []
for i in range(0, 3):
    index.append(i)
assert index == [0, 1, 2]
assert sum([1, -1, 3] == 5)
# C. 正确
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
assert len(seasons) == 4

shortcut = list(map(lambda s: s[0], seasons))
assert shortcut == ['S', 'S', 'F', 'W']
# D.
x = [1, 2, 3]
y = [4, 5, 6]
zipped = zip(x, y)
assert list(zipped) == [1, 4, 2, 5, 3, 6]

5.3 Python基本输入

import random
def gauss_num():
	v=random.randint(0,100)
	pass

if __name__=='__main__':
	gauss_num()
# A.
while True:
    n = input("请输入0-100之间的一个数字:")
    if n == v:
        print("你猜对了!")
        break
    elif n < v:
        print("你猜错了,我想到的数字比{}大".format(n))
    elif n > v:
        print("你猜错了,我想到的数字比{}小".format(n))
# B.
while True:
    n = read("请输入0-100之间的一个数字:")
    if n == str(v):
        print("你猜对了!")
        break
    elif str(n) < str(v):
        print("你猜错了,我想到的数字比{}大".format(n))
    elif str(n) > str(v):
        print("你猜错了,我想到的数字比{}小".format(n))
# C.
while True:
    n = read("请输入0-100之间的一个数字:")
    try:
        n = int(n)
    except:
        print("无效的数字")
        continue

    if n == v:
        print("你猜对了!")
        break
    elif n < v:
        print("你猜错了,我想到的数字比{}大".format(n))
    elif n > v:
        print("你猜错了,我想到的数字比{}小".format(n))
# D.
while True:
    n = input("请输入0-100之间的一个数字:")
    try:
        n = int(n)
    except:
        print("无效的数字")
        continue

    if n == v:
        print("你猜对了!")
        break
    elif n < v:
        print("你猜错了,我想到的数字比{}大".format(n))
    elif n > v:
        print("你猜错了,我想到的数字比{}小".format(n))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值