Oldboy tenth day . I love Python. Tenth day- second 初识函数def()

Posted 浮生凉年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oldboy tenth day . I love Python. Tenth day- second 初识函数def()相关的知识,希望对你有一定的参考价值。

上一篇有福利哦 嘿嘿嘿!

 


 

 

一, 周五内容回顾:
  文件操作:
    open(文件路径, mode)
    mode 里面所有带b的 都是字节操作, 带b 可以省略 encoding
  绝对路径: 从磁盘根目录去寻找
  相对路径: 相对于当前文件的位置


  常用操作:
    seek() 移动光标
    开头seek(0)
    结尾seek(0,2)
    tell() 获取光标的位置
    truncate() 截断文件
二, 作业:

6题,待会从做一遍

‘‘‘
6,文件a1.txt内容(升级题)

序号     部门      人数      平均年龄      备注
1       python    30         26         单身狗
2       Linux     26         30         没对象
3       运营部     20         24         女生多
.......

通过代码,将其构建成这种数据类型:
[{‘序号‘:‘1‘,‘部门‘:Python,‘人数‘:30,‘平均年龄‘:26,‘备注‘:‘单身狗‘},
......]
‘‘‘
with open(al.txt,mode=w,encoding=utf-8) as f:
    f.write(‘‘‘序号     部门      人数      平均年龄      备注
1       python    30         26         单身狗
2       Linux     26         30         没对象
3       运营部     20         24         女生多‘‘‘)

lis = []
with open(al.txt,mode=r,encoding=utf-8) as f:
    key_list = f.readline().split()
    n = 0
    for value in f:
        value_list= value.split()
     dic = {}
for i in value_list:
       key = key_list[n]
       value = key_value[n]
       n += 1
       dic[key] = value
    lis.append(dic)
  print(lis)

 

三, 今日主要内容:


  三元运算符(表达式):c = a if a>b else b   当a大于b 返回a,否则返回b


  函数.: 概念: 对一个代码块,或者功能的封装, 什么时候用, 什么时候执行
    语法:
  def 函数名():
  (tab)函数体
  函数名: 跟变量名的命名规则一样.
  函数的调用: 函数名()

  返回值: return, 函数在执行过程中,或者执行完毕, 可以使用return 返回给调用者一个结果
*******************只要程序执行到return 函数就会被停止,后面的内容不会再执行
    1,直接写个 return 或者整个函数不写return, 返回 None
    2, return 后面加一个变量或者值(返回值)
    3, return 后面可以加多个返回值, 多个返回值会被解释器打包成元组, 统一返回, 接受的地方,可以接收一个变量,也可以是多个变量(解构)

  参数: 在调用函数的时候,给函数传递的一些信息. 参数写在小括号里面.
    如果在声明函数的时候,设置的参数,在调用的时候,必须给赋值.
   参数可以有很多个,每个参数之间用逗号隔开
    形参: 在函数声明的位置上给出变量的声明, 形式参数 (有三种形式,今天只讲俩)
      1, 位置参数:同下, 而且到目前为止,用的都是位置参数;
      2, 默认值参数, 当出现很多重复的参数的时候, 考虑使用默认值参数,
      默认值参数,必须写在位置参数后面, 当调用的地方不给出值的时候,会使用默认值.
      3, 动态参数(预习内容)
    实参: 在函数调用的时候,给函数传递的变量,叫做实际参数.
      1, 位置参数:按照位置,把实参一个一个赋值给形参. 如果位置混乱, 输出的结果也是混乱的.
      2, 关键字参数: 对照形参,给每个参数赋值
      3, 混合参数: 位置参数,跟关键字参数 混合使用. 必须先写位置参数,在写关键字参数,

 


 

 

 

内容不难, 来一波 课后作业的答案哈哈哈... 比较懒 堆一起了哈.

  1 #2,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
  2 def jishu(lis):
  3     jishu_list = []
  4     for n in range(1,len(lis),2):
  5 
  6         jishu_list.append(lis[n])
  7 
  8     return jishu_list
  9 a=(0,1,2,2,4,8,6,9,8)
 10 
 11 ret = jishu(a)
 12 print(ret)
 13 
 14 # 3,写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
 15 def list_len(a):
 16     if len(a) > 5:
 17         return True
 18     else:
 19         return False
 20 a = [1,25,5,7,5,]
 21 ret = list_len(a)
 22 print(ret)
 23 
 24 # 4,写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
 25 def cha_len(a):
 26     if len(a)>2:
 27         return a[:2]
 28 a = [1,2,]
 29 print(cha_len(a))
 30 
 31 # 5,写函数,计算传入函数的字符串中,[数字]、[字母]、[空格] 以及 [其他]的个数,并返回结果。
 32 def count(string):
 33     digit_count = 0
 34     alpha = 0
 35     false = 0
 36     qita = 0
 37     for i in string:
 38         if i.isdigit():
 39             digit_count += 1
 40         elif i.isalpha():
 41             alpha += 1
 42         elif i ==  :
 43             false += 1
 44         else:
 45             qita += 1
 46     return 数字的个数%s % digit_count, 字母的个数 %s % alpha, 空格的个数 %s % false, 其他的个数 %s %qita
 47 
 48 a =a1 b1 c3 d4 .....
 49 print(count(a))
 50 
 51 
 52 # 6,写函数,接收两个数字参数,返回比较大的那个数字。
 53 def get_max(a,b):
 54     return a if a>b else b
 55 a=110
 56 b=110
 57 print(get_max(a,b))
 58 
 59 # #7,写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
 60 #     dic = {"k1": "v1v1", "k2": [11,22,33,44]}
 61 #     PS:字典中的value只能是字符串或列表
 62 def value_2(dic):
 63     for k,v in dic.items():
 64         if len(v) > 2:
 65             dic[k] = v[:2]
 66     return dic
 67 dic = {"k1": "v1v1", "k2": [11,22,33,44]}
 68 print(value_2(dic))
 69 
 70 ‘‘‘
 71 8,写函数,此函数只接收一个参数且此参数必须是列表数据类型,
 72 此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列
 73 表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字
 74 典为 {0:11,1:22,2:33}。
 75 ‘‘‘
 76 def list_dict(lis):
 77     dic = {}
 78     n = 0
 79     if type(lis) == list:
 80         for value in lis:
 81             dic[n] = value
 82             n +=1
 83         return dic
 84     else:
 85         return 请传入一个列表
 86 lis = [11,22,33]
 87 print(list_dict(lis))
 88 
 89 
 90 ‘‘‘9,写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。
 91 用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数
 92 接收到这四个内容,将内容追加到一个student_msg文件中。
 93 ‘‘‘
 94 def cunchu(name, set, age, xueli):
 95     with open(student_msg, w, encoding=utf-8) as f:
 96         f.write(‘‘‘name:%s
 97 set:%s
 98 age:%s
 99 xueli:%s‘‘‘ %(name,set,age,xueli))
100     return
101 name = input(名字:)
102 set = input(性别:)
103 age = input(年龄:)
104 xueli = input(学历:)
105 cunchu(name,set,age,xueli)
106 
107 #10,对第9题升级:支持用户持续输入,Q或者q退出,性别默认为
108 # 男,如果遇到女学生,则把性别输入女。
109 
110 def cunchu(name, age, xueli, set = ):
111     with open(student_msg, a, encoding=utf-8) as f:
112         f.write(‘‘‘     name:%s
113     set:%s
114     age:%s
115     xueli:%s
‘‘‘ % (name, set, age, xueli))
116     return
117 while 1:
118     end = input(输入Q或q退出,输入其他任意键继续运行:).upper()
119     if end ==Q:
120         break
121     name = input(名字:)
122     set1 = input(性别:)
123     age = input(年龄:)
124     xueli = input(学历:)
125     if set == :
126         cunchu(name, age, xueli)
127     else:
128         cunchu(name, age, xueli,set=set1)
129 
130 # 11,写函数,用户传入修改的文件名,与要修改的内容,执行函数,
131 # 完成整个文件的批量修改操作(升级题)。
132 with open(test4.txt,mode=w,encoding=utf-8) as f:
133     f.write(‘‘‘alex是老男孩python发起人,创建人。
134 alex其实是人妖。
135 谁说alex是sb?
136 你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。‘‘‘)
137 def wenjian(name, old, new):
138     import os
139     with open(name,mode=r,encoding=utf-8) as f,140         open(name+_new,mode=w,encoding=utf-8) as f1:
141         for line in f:
142             line =line.replace(old, new)
143             f1.write(line)
144     os.remove(name)
145     os.rename(name+_new.txt,name)
146 
147 # 12,写一个函数完成三次登陆功能,再写一个函数完成注册功能
148 dic = {123:123}
149 def denglu():
150     print(开始登录)
151     times = 3
152     while times >0:
153         username = input(用户名:).strip()
154         password = input(密码:).strip()
155         if (username in dic) and (password == dic[username]):
156             print(登录成功)
157             break
158         else:
159             print(输入错误!)
160             times -= 1
161 
162 def zhuce():
163     print(开始注册)
164     username1 = input(请输入你想注册的用户名:)
165     password1 = input(请输入您的密码:)
166     dic[username1] = password1
167     return dic
168 
169 zhuce()
170 denglu()

 















































以上是关于Oldboy tenth day . I love Python. Tenth day- second 初识函数def()的主要内容,如果未能解决你的问题,请参考以下文章

oldboy seventeenth day. I love Python. 万恶之神: 递归; 初始算法: 二分查找;

oldboy sixteenth day. I love Python. low版本的 员工信息程序:

oldboy 23th day . I love Python. 模块之初始, 以及 序列化模块

oldboy 21th day. I love Python. 面向对象之封装, 多态, 继承 三大特性

python‘s tenth day for me

The tenth day of internship