诚意
诚意如你,当一诚的态度对待

导航

 
一:写函数,接收n个数字,求这些参数数字的和。(动态传参)
法一:
 1 def sumary(*xargs):
 2     sum = 0
 3     for i in xargs:
 4         sum  = sum + i
 5     return sum
 6 l1=[]
 7 while 1:
 8     content = int(input("请输入需要求和的数:"))
 9     l1.append(content)
10     con = input("还有数没,有按任意键继续输入,没有按q/Q退出")
11     if con.upper() == 'Q':
12         break

法二:

1 def func(*args):
2     return  sum(args)
3 
4 print(func(1,5,7,6))

二:写函数,接收一个参数(此参数类型必须是可迭代对象),将可迭代对象的每个元素以’_’相连接,形成新的字符串,并返回例如 传入的可迭代对象为[1,'老男孩','武sir']返回的结果为’1_老男孩_武sir’

1 def func(lst=['1','老男孩','武sir']):
2     s = ''
3     for el in lst:
4         s = s + str(el) + '_'
5     return s.strip("_")
6 print(func())

三:写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃’,‘A’)]

 1 def func():
 2     result=[]
 3     huase=['红心','草花','黑桃','方块']
 4     dianshu=['A',1,2,3,4,5,6,7,8,9,10,'J','Q','K']
 5     for hua in huase:
 6         for dian in dianshu:
 7             result.append((hua,dian))
 8     return result
 9 
10 print(func())

四 有如下函数:

def wrapper():
def inner():
print(666)
wrapper()

你可以任意添加代码,用两种或以上的方法,执行inner函数.

法一:
1 def wrapper():
2     def inner():
3         print(666)
4     inner()
5 wrapper()
法二:
1 def wrapper():
2     def inner():
3         print(666)
4     return inner
5 wrapper()()

五:(此题有坑)
下面代码打印的结果分别是_[10]________, _[123]_______, _[a]_______.
对的: [10, 'a'] [123] [10, 'a']

def extendList(val, list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123, [])
list3 = extendList('a')

print('list1=%s' % list1)
print('list2=%s' % list2)
print('list3=%s' % list3)
------>原因:默认值如果是可变的数据类型,每次使用的时候都是同一个。

六:打印九九乘法表
1 for i in range(1,10):
2     for n in  range(1,i+1):
3             print("%s*%s=%s"%(n,i,i*n),end=' ')   #注意end,更改默认的\n为空格
4     print()     #起换行的作用

七:生成如下图案:

*
**
***
****
*****

1 for i in range(1,6):
2     print('*'*i)

法2:

1 print("      *")
2 print("    * * *")
3 print("  * * * * *")
4 print("* * * * * * *")

 

*****
****
***
**
*

1 for i in range(5,0,-1):
2     print('*'*i)

    *
   ***
  *****
 *******
*********

1 content = int(input("您打算打印几行:"))
2 for i in range(1,content+1):
3     print((content-i)*' '+(2*i-1)*'*'+(content-i)*' ')

 

八: 编写程序处理日志文件. 每天的日志都会统一写⼊到一个大文件中(可能上G). 现给出 一个大的日志文件.将日志文件中每天的日志摘出来. 生成每天的小文件, 需要时间的 相关处理方法请自行百度

 

 1 import datetime,time,os
 2 
 3 while 1:
 4     with open('biglog','r+',encoding='utf-8') as f1:
 5         content = input("您要做什么:")
 6         f1.write(time.strftime("%Y-%m-%d %H:%M:%S"))
 7         f1.write(" ")
 8         f1.write(content+'\n')
 9         f1.seek(0)
10         for i in f1:
11             a=''
12             a=i.split()[0]
13             with open('%s.log'%a,'a',encoding='utf-8') as f2:
14                 f2.write(i)
15         break

 九:lst = ["纯妃","娴妃","令妃","韩飞","各种飞"],打印索引以及内容

 1 lst = ["纯妃","娴妃","令妃","韩飞","各种飞"]
 2 
 3 for el in lst: # 没有索引
 4     print(el)
 5 
 6 for i in range(len(lst)):
 7     print(i)
 8     print(lst[i])
 9 
10 枚举法:
11 
12 for index, el  in enumerate(lst):
13     print(index,end=' ')
14     print(el)

 

 

 

 

 

 
posted on 2018-08-10 20:48  诚意  阅读(801)  评论(0)    收藏  举报