1.整理函数相关知识点

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

def func(lst):
    lst = lst[1::2]
    return lst

传列表
lst = [1,2,3,4,5,6,7,8,9]
f = func(lst)
print(f)

传元组
tu = (1,2,3,4,5,6,7,8,9)
f = func(tu)
print(f)

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

def my_len(s):
    count = 0
    for i in s:
        count += 1
    return count

s = "dasd"
lst = [1,2,3,4]
tu = ("ada",1,'sda')
a = my_len(s)
b = my_len(lst)
c = my_len(tu)
print(a)
print(b)
print(c)

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

def check(lst):
    if len(lst) > 2:
        lst = lst[:2]
    return lst

lst = [1,2,3,4]
a = check(lst)
print(a)

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

def num(s):
    int_count = 0
    alpha_count = 0
    qt_count = 0
    for i in s:
        if i.isdecimal():
            int_count += 1
        elif i.isalpha():
            alpha_count += 1
        else:
            qt_count += 1
    return int_count,alpha_count,qt_count

s = "1564dasihd,;',.在"
a,b,c = num(s)
print(f"数字{a}个,字母{b}个,其他{c}个")

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

def max(a,b):
    if a > b:
        pass
    else:
        a,b =b,a
    return a

print(max(456,1223))

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

def check(dic):
    for k in dic.keys():
        if len(dic[k]) > 2:
            dic[k] = dic[k][0:2]
    return dic

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
print(check(dic))

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

def list_dict(lst):
    if type(lst) == list:
        dic = {}
        count = 0
        for i in lst:
            dic[count] = i
            count += 1
    else:
        dic = "这不是列表"
    return dic

lst = [11,22,33]
print(list_dict(lst))

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

def func(name,sex,age,xl):
    with open("student_msg","a",encoding="UTF-8") as f:
        f.write(name+" "+sex+" "+age+" "+xl+"\n")

name = input("请输入姓名:")
sex = input("请输入性别:")
age = input("请输入年龄:")
xl = input("请输入学历:")
func(name,sex,age,xl)

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

def func(name,age,xl,sex="男"):
    with open("student_msg","a",encoding="UTF-8") as f:
        f.write(name+" "+sex+" "+age+" "+xl+"\n")

while 1:
    name = input("请输入姓名(退出请按q/Q):")
    if name.upper() == "Q":
        break
    sex = input("请输入性别:")
    age = input("请输入年龄:")
    xl = input("请输入学历:")
    if not sex.strip():
        func(name,age,xl)
    else:
        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. Redis专题(3):锁的基本概念到Redis分布式锁实现

    拓展阅读:Redis闲谈(1):构建知识图谱 Redis专题(2):Redis数据结构底层探秘 近来,分布式的问题被广泛提及,比如分布式事务.分布式框架.ZooKeeper.SpringCloud等等 ...

  2. JavaScript之深入函数(二)

    上一篇我们主要讲解了函数的执行过程和原理,本篇我们将介绍函数的另外两个特殊表现:闭包和立即执行函数. 一 闭包 1,  闭包的形成 之前我们提到,函数执行完毕,马上就会销毁自己的AO对象.但是如果遇到 ...

  3. 【linux】【maven】maven及maven私服安装

    前言 系统环境:Centos7.jdk1.8 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的用户使用.当Maven需要下载构件的时候,它从私服请求,如 ...

  4. PHPSTORM 2019 激活

    1.获取激活码 请自行百度 2.输入激活码 ​ 3.配置本地hosts 添加配置如下​ 0.0.0.0 account.jetbrains.com 0.0.0.0 www.jetbrains.com

  5. linux环境下Nginx的安装

    因为工作环境大多数都是windows server服务器,仅有的linux服务器同事们都在抢着用,所以特意买了一台阿里云服务器,感兴趣的小伙伴可以了解一下,一年只要293: https://promo ...

  6. SpringBootSecurity学习(08)网页版登录整合MyBatis

    创建数据库 前面介绍了springboot-security整合jdbc从数据库中查询用户的方式,适用性有限,下面介绍最常用的整合MyBatis,这种在开发和生产环境中是最常用,也是最实用的.首先需要 ...

  7. mybatis 配置之<typeAliases>别名配置元素设置

    一.方式一:使用typeAlias <typeAliases> <typeAlias alias="User" type="com.**.entity. ...

  8. Nginx+Tomcat Https SSL部署方案

    1.软件版本: nginx-1.15+ tomcat-8.0+ 2.先解决一个疑问:Tomcat到底需不需要配置SSL? 答案:不需要 3.SSL申请 使用腾讯云.阿里云的服务器,会更加方便申请.(申 ...

  9. 编程小技巧之 Linux 文本处理命令

    合格的程序员都善于使用工具,正所谓君子性非异也,善假于物也.合理的利用 Linux 的命令行工具,可以提高我们的工作效率. 本文简单的介绍三个能使用 Linux 文本处理命令的场景,给大家开阔一下思路 ...

  10. 揭秘C# SQLite的从安装到使用

    SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 ...