Day19 练习题

1.列举布尔值为False的值

0,[],{},(),False,’’,None

列如:

if 0:

2.写函数:

根据范围获取其中被3和7整除的所有数的和,符合条件的数字个数以及符合条件的数字的总和

3.函数传递参数时,是否用的同一内存地址

name = “hairui”

def show():

     print(id(name))

print(id(name))

show()

4.三元运算

变量 = 值一 if 条件一 else 值二

5.定义函数统计一个字符串中大写字母,小写字母,数字的个数,并以字典为结果返回给调用函数·

用id进行判断

6.将字符串’xyy’转换成UTF-8编码的字节类型

s='xyy'

print(type(s))

a=bytes(s,'utf8')

s.encode('utf8')

a=b'hello'

7.

def fuc(x,z,y=5):

    print(x,y,z)

fuc(1,3,4)#默认参数y=5,对应y的位置参数可有也可无,有的时候取y的位置参数,无的时候取y的默认参数

def fuc(x,*z,**y):

    print(x,y,z)

fuc(1,3,4)

def fuc(x,*y,**z):#*y表示可以接受0n个参数,若此次是y会报错

    print(x, y, z)

fuc(1,name=3,age=4)

def fuc(*y,**z):

    print(y,z)

fuc(*[1,2,3,4,5])

def fuc(*y,**z):

    print(y,z)

fuc(*[1,2,3,4,5],**{'name':'xyy','age':'16'})

b="age%d%s"%(12,"")

print(b)

def func(a1):

    return a1+100

func = lambda a1:a1+200

ret = func(10)

print(ret)

8.进制转换

int(),bin(),oct(),hex()

十进制转二进制 bin(18)--> '0b10010'     去掉0b就是10010    即为十进制18转二进制是10010 

十进制转八进制oct(18) -->'022'  去掉0 就是22  即为十进制18转八进制是22

十进制转十六进制hex(18) -->'0x12'  去掉0x 就是12  即为十进制18转八进制是12

9.利用内置函数zip(),join(),已知l1=["",22,33,4,4],l2=["",22,55,6,7],l3=["",22,33,44,5],l4=["python",22,33,4,5] 获取字符串s = '___python'

l5="_".join(list(zip(l1,l2,l3,l4))[0])#join把一个可迭代对象转换成字符串

print(l5)#join的功能属于“_”的这个字符串

10.NAMELIST = ["alex","eric"]

def func():

    global NAMELIST

    NAMELIST =123

func()

print(NAMELIST)

输出结果为:123

11.

name = 'name1'

def outer(func):

    name = 'name2'

    func()#函数名作为参数,实质是show

    return func #返回func的内存地址

def show():

    print(name)

outer(show)

12.8!

第一种:

def f(n):

    if n==1:

        return 1

    return n*f(n-1)

f(8)

第二种:

from functools import reduce

print(reduce(lambda x,y:x*y,[x for x in range(1,9)]))

原文地址:https://www.cnblogs.com/xuwinwin/p/11327704.html