1.整理函数相关知识点

2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

  1. def func(lst):
  2. lst = lst[1::2]
  3. return lst
  4. 传列表
  5. lst = [1,2,3,4,5,6,7,8,9]
  6. f = func(lst)
  7. print(f)
  8. 传元组
  9. tu = (1,2,3,4,5,6,7,8,9)
  10. f = func(tu)
  11. print(f)

3.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

  1. def my_len(s):
  2. count = 0
  3. for i in s:
  4. count += 1
  5. return count
  6. s = "dasd"
  7. lst = [1,2,3,4]
  8. tu = ("ada",1,'sda')
  9. a = my_len(s)
  10. b = my_len(lst)
  11. c = my_len(tu)
  12. print(a)
  13. print(b)
  14. print(c)

4.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

  1. def check(lst):
  2. if len(lst) > 2:
  3. lst = lst[:2]
  4. return lst
  5. lst = [1,2,3,4]
  6. a = check(lst)
  7. print(a)

5.写函数,计算传入函数的字符串中,[数字]、[字母] 以及 [其他]的个数,并返回结果。

  1. def num(s):
  2. int_count = 0
  3. alpha_count = 0
  4. qt_count = 0
  5. for i in s:
  6. if i.isdecimal():
  7. int_count += 1
  8. elif i.isalpha():
  9. alpha_count += 1
  10. else:
  11. qt_count += 1
  12. return int_count,alpha_count,qt_count
  13. s = "1564dasihd,;',.在"
  14. a,b,c = num(s)
  15. print(f"数字{a}个,字母{b}个,其他{c}个")

6.写函数,接收两个数字参数,返回比较大的那个数字。

  1. def max(a,b):
  2. if a > b:
  3. pass
  4. else:
  5. a,b =b,a
  6. return a
  7. print(max(456,1223))

7.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表

  1. def check(dic):
  2. for k in dic.keys():
  3. if len(dic[k]) > 2:
  4. dic[k] = dic[k][0:2]
  5. return dic
  6. dic = {"k1": "v1v1", "k2": [11,22,33,44]}
  7. print(check(dic))

8.写函数,此函数只接收一个参数这个参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。

  1. def list_dict(lst):
  2. if type(lst) == list:
  3. dic = {}
  4. count = 0
  5. for i in lst:
  6. dic[count] = i
  7. count += 1
  8. else:
  9. dic = "这不是列表"
  10. return dic
  11. lst = [11,22,33]
  12. print(list_dict(lst))

9.写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。

  1. def func(name,sex,age,xl):
  2. with open("student_msg","a",encoding="UTF-8") as f:
  3. f.write(name+" "+sex+" "+age+" "+xl+"\n")
  4. name = input("请输入姓名:")
  5. sex = input("请输入性别:")
  6. age = input("请输入年龄:")
  7. xl = input("请输入学历:")
  8. func(name,sex,age,xl)

10.对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。

  1. def func(name,age,xl,sex="男"):
  2. with open("student_msg","a",encoding="UTF-8") as f:
  3. f.write(name+" "+sex+" "+age+" "+xl+"\n")
  4. while 1:
  5. name = input("请输入姓名(退出请按q/Q):")
  6. if name.upper() == "Q":
  7. break
  8. sex = input("请输入性别:")
  9. age = input("请输入年龄:")
  10. xl = input("请输入学历:")
  11. if not sex.strip():
  12. func(name,age,xl)
  13. else:
  14. func(name,age,xl,sex)

百万年薪python之路 -- 函数初始练习的更多相关文章

  1. 百万年薪python之路 -- 函数初始

    1.函数 1.1 认识函数 定义一个事情或者是功能,等到需要的时候直接去用就好了.那么这里定义东西就是一个函数 函数:对代码块和功能的封装和定义 函数的好处: 减少代码的重复性 代码可读性高 将功能进 ...

  2. 百万年薪python之路 -- 数据库初始

    一. 数据库初始 1. 为什么要有数据库? ​ 先来一个场景: ​ 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来hold住十一期间全国的购票需求,你怎么写? 由于在同一时 ...

  3. 百万年薪python之路 -- 面向对象初始

    面向对象初始 1.1 面向过程编程vs函数式编程 函数编程较之面向过程编程最明显的两个特点: 1,减少代码的重用性. 2,增强代码的可读性. 1.2 函数式编程vs面向对象编程 面向对象编程:是一类相 ...

  4. 百万年薪python之路 -- 函数的动态参数

    1.函数的动态参数 1.1 动态接收位置参数 在参数位置用*表示接受任意参数 def eat(*args): print('我想吃',args) eat('蒸羊羔','蒸熊掌','蒸鹿尾儿','烧花鸭 ...

  5. 百万年薪python之路 -- 函数名的第一类对象及使用

    函数名是一个变量, 但它是一个特殊的变量, 与括号配合可以执行函数的变量 1.1.函数名的内存地址 def func(): print("呵呵") print(func) 结果: ...

  6. 百万年薪python之路 -- 函数的动态参数练习

    1.继续整理函数相关知识点. 2.写函数,接收n个数字,求这些参数数字的和.(动态传参) def func(*args,**kwargs): num_sum = 0 num_dic = [] num ...

  7. 百万年薪python之路 -- 生成器

    1.生成器 #本质就是迭代器 1.1 生成器的构建方式 在python中有三种方式来创建生成器: ​ 1.通过生成器函数 ​ 2.通过生成器推导式 ​ 3.python内置函数或者模块提供 1.2 生 ...

  8. 百万年薪python之路 -- 内置函数二 -- 最常用的内置函数

    1.内置函数 1.1 匿名函数 匿名函数,顾名思义就是没有名字的函数(其实是有名字的,就叫lambda),那么什么函数没有名字呢?这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话 ...

  9. 百万年薪python之路 -- 内置函数练习

    1.整理今天笔记,课上代码最少敲3遍. 2.用列表推导式做下列小题 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 lst = [["a","b"],[ ...

随机推荐

  1. [Design Patterns] 03. Behavioral Patterns - Observer Pattern

    前言 参考资源 Ref: 史上最全设计模式导学目录(完整版) 观察者模式-Observer Pattern[学习难度:★★★☆☆,使用频率:★★★★★] 对象间的联动——观察者模式(一):多人联机对战 ...

  2. filebeat相关registry文件内容解析

    filebeat的registry文件中存放的是被采集的所有日志的相关信息. linux中registry中一条日志记录的内容如下 {"source":"/var/log ...

  3. 了解一下Java SPI的原理

    了解一下Java SPI的原理 1 为什么写这篇文章? 近期,本人在学习dubbo相关的知识,但是在dubbo官网中有提到Java的 SPI,这个名词之前未接触过,所以就去看了看,感觉还是有很多地方有 ...

  4. tomcat下配置jndi数据源c3p0

    Tomcat下通过JNDI配置数据源,使用c3p0连接池 首先在打开tomcat找到在conf文件下,找到server.xml 在server.xml文件中找到标签 在下面添加如下配置 <Res ...

  5. shell脚本一键部署lvs+keepalived

    环境 两个调度器dr1.dr2,两台真实机rs1.rs2.两台真实机安装httpd,并编辑主页内容用于验证 vip="192.168.132.250"dr1="192.1 ...

  6. 原来python如此神奇

    一.优缺点分析 1.缺点: ① 数学问题的生成中只考虑了消除乘除法加括号的无效情况(例如3*(4+5)或(6*5)/2这样的计算),但没有去掉加减法加括号的无效情况(例如(4+(7+8))或(3-(2 ...

  7. Spring 梳理-启用MVC

    启用注解启动的Spring MVC xml <mvc:annotation-dirven> <mvc:annotation-driven /> 是一种简写形式,完全可以手动配置 ...

  8. JDK 自带的性能监控工具

    JDK安装完后,其内置了许多的监控工具,常用的有jvisualvm,jconsole,jps,jmap,jinfo,jstat,jstack,这些命令都在jdk安装的bin目录下: 1.jvisual ...

  9. springboot 使用i18n进行国际化乱码解决

    方式1.设置国际化的编码和你使用的编译器(IDEA之类)一致,如编译器为UTF-8则在application配置文件中添加 #i18n spring: messages: encoding: UTF- ...

  10. Mybatis面试题吐血总结

    高强度训练第二十天总结:Mybatis面试题 什么是Mybatis? Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时 只需要关注 SQL 语句本身,不需要花费精力 ...