暑期学习记录04

来源:互联网 发布:财务报销流程软件 编辑:程序博客网 时间:2024/05/17 01:00

python

列表和元组

a = [1, 2, 3]b = ab[1] = 4print a[1]

结果为 :4
b指向a列表内容

def f(l):    l[1] = [5]    return la = [1, 2, 3]f(a)print a[1]

结果为:5
a为f 参数,修改则修改列表内容

def f(l):    l = [4, 5, 6]    return la = [1, 2, 3]f(a)print a[1]



小测验

    def func(lst):        for i in range(len(lst) - 1):            for j in range(i + 1, len(lst)):                if lst[i] < lst[j] :                    lst.insert(i, lst.pop(j))                else:                    pass        else:            return lst        return -1    lst1 = [6, 2, 4, 1, 5, 9]    lst2 = func(lst1)    lst2[3:-2] = []    print lst1

结果为:[9, 6, 5, 2, 1]

有 3 个回文数字,第一个是两位数,第二个是三位数。将这两个数字相加得到第三个数字,这是个四位数。请问第三个数字式多少?

import random#判断回文数def is_huiwen(x):    if x>=1 and x<10:        return True    else:        is_f=1        x_t=x        num=0        if x_t%10==0:            is_f=0        if is_f==0:            return False        while x_t!=0:            num=num*10+x_t%10            x_t=x_t/10        if num==x:            return True        else:            return False#生成(10,100)回文数的列表list1=[i for i in range(10,100)]j=0while True:    if j>=len(list1):        break    if not(is_huiwen(list1[j])):        del list1[j]    else:        j+=1#生成(100,1000)回文数的列表list2=[i for i in range(100,1000)]j=0while True:    if j>=len(list2):        break    if not(is_huiwen(list2[j])):        del list2[j]    else:        j+=1#生成(1000,10000)回文数的列表list3=[i for i in range(1000,10000)]j=0while True:    if j>=len(list3):        break    if not(is_huiwen(list3[j])):        del list3[j]    else:        j+=1#得到三个数的结果k=1while k:    o = random.sample(list1,1)    p = random.sample(list2,1)    q = random.sample(list3,1)    qian=o    zhong=p    hou=q    math_qian=eval(str(qian[0]))    math_zhong=eval(str(zhong[0]))    math_hou=eval(str(hou[0]))    k=math_qian+math_zhong-math_houprint qian,zhong,hou[此段代码网上查找的]

列表解析或推导(List  Comprehension) 
一种由原列表创建新列表的简洁方法 
[表达式  for  变量  in  列表  if  条件] 
如生成值为  {x²  :  x  ∈  {1  …  9}}  的列表 

lst=[]for x in range(1,10):      lst.append(x**2)print lst列表解析lst=[x**2 for x in range(1,10)]

lambda

lambda只是一个表达式,函数体比def简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。

def f(x):   return x**2print f(2)4g=lambda x:x**2print g(2)4