首页 > 编程语言 >python基础学习Day_04

python基础学习Day_04

时间:2024-07-14 23:26:23浏览次数:20  
标签:函数 04 python random 迭代 time print Day math

引言

        今天休息,我就开始学习,学了四天的东西,太爽了我靠,今天学习内容:

  1. 函数
  2. lamda,生成器,迭代器
  3. 模块

1.函数

函数的定义

存在的概念:实现重复的代码块,用来实现单一的功能相关联的代码块。

自定一个函数

1、关键字 def开头:后面跟命名,是否传参用括号显示():函数体

2、传参:一定要把参数写在括号内

3、函数里面的内容,以:冒号为主来进行缩进。

4、函数定义以后,不调用,不执行;直接函数方法名调用。

函数的参数

1、函数的参数,分为形参和实参

形参:形式参数。使用范围是在函数内。

实参:实际参数

2、可变类型参数和不可变类型参数

可变类型:list、dict、 set

不可变类型:str,int,float

3、位置参数

注意:根据位置一一对应,而不是根据变量名

4、关键字参数

注意:跟关键字有关,和位置无关

5、默认值参数

在形参处进行赋值,再次调用后不需要二次传值。如果传值则覆盖之前的值

6、可变长度参数{*args}

转化为元组类型

转化为字典类型{**args}

函数返回值

当两个函数之间,想要互相使用他们的内部变量的时候,就可以用到函数的返回值。

注意:

1、使用return返回值,一定返回内容。

2、返回后,创建新的变量来进行比较。

3、在返回时没有定义返回值,还有一种返回值是隐含的返回值。

4、不知能返回一个值,还能返回多个值。返回的形式是元组

5、当调用该函数时,遇到return,后面的语句则不再执行。

函数作用域

1、L(local):局部作用域,作用范围实在函数内。

2、E(enclosing):函数的嵌套,函数内的函数的作用域。

3、G(global):全局变量,跟模块平级。

4、B(build-in):内建函数。创建一个对象init(

当全部变量和局部变量碰撞的时候,以局部变量为主。

global关键字,先声明全局变量,在进行变量赋值。该变量则升级为全局变量

2.lamda,生成器,迭代器

匿名函数

1、lambda : 函数体

2、lambda x(参数): 函数

3、lambda *args : , **args: 函数体

注意

匿名函数的函数体,只支持单行数据。决定这匿名函数不是特别的常用。处理的代码块比较简单

三元运算:成立 if 判断条件 else 不成立

列表推导式

推导式:[变量 for 变量 in 取值的位置 if的判断类型]

生成器

1、当没有函数介入,只有值的时候。称之为生成器

gen = (i for i in range(5))

2、生成器函数。作用是提高代码运行效率

函数 + yield ------> 生成器:

迭代器

1、可迭代对象(可遍历对象)

str , list , tuple , dict , set , 生成器

2、迭代器:肯定不是用来定义

输出的根据你的指针

总结:迭代对象和迭代器的区别:

1、可用于for循环便利的都是可迭代的对象

2、作用于next()都是迭代器类型

3、list,dict,str可迭代对象,但不是迭代器。iter()强转为迭代器

4、for 循环执行迭代器。本质是循环执行next();

迭代器和生成器

1、生成器可以做所有迭代器能做的事,(生成器包含迭代器)

2、生成器它自身包含next()和iter(),生成更简洁更高效

3.模块

1.模块的引入

from tool import util

# import 导包
# 从包里面去导入某个模块
from tool.util import encrypt as jiami

2.内置模块_math模块

import math

a = 3
b = 4

# 1、做基本的数学运算
print(a+b)

# 2.、幂运算
result1 = math.pow(a,b) # 3的4次方
print(result1)

# 3、平方根
result3 = math.sqrt(100)
print(result3)

# 4、四舍五入,内置函数
result4 = round(3.1415926,2)# 不需要math调用,保留两位小数
print(result4)

# 5、取整,向上取整,向下取整
result5 = math.ceil(9.2) # 向上取整
print(result5)
result55 = math.floor(9.2) # 向下取整

# 6、去一个数的绝对值
result6 = math.fabs(-2)
print(result6)
print(abs(-2)) # 括号内是什么类型,打印出来的结果也是啥类型

#7、最大最小值。max、min
print(max(1, 2, 3, 4))
print(min(1,2,3,5,6))

#8、常量
print(math.pi)
print(math.e)

#9、三角函数
print(math.log(2))
print(math.exp(2))

#10、正弦函数、余弦函数
angele = math.radians(30)
print(math.sin(angele))
print(math.cos(angele))
print(math.tan(angele))

3.内置函数_os模块

import os

# 1、当前文件工作的目录
print(os.getcwd())

# 2.txt、返回指定路径所有的文件,以及文件夹,将文件夹的内容打印出来
print(os.listdir("D:\往事随风\JAVA\pythonProject\pythonProject\day-12"))

# 3、创建多个文件夹
"""
    makedirs:一次创建多个文件夹
    name:创建目录的路径名称
    mode:是什么文件
    exist_ok:默认False,如果目录存在创建:FileExistsError
                True,创建目录已经存在,不抛出异常
"""
os.makedirs("data2/demo",exist_ok=True)

# # 一次创建单个文件夹
os.mkdir("data2/date3")

# 判断该文件夹是否存在
# if os.path.exists("data2/date4"): # 返回给我们的是True后者False
#     print("该文件已存在,不需要二次创建")
# else:
#     os.mkdir("data2/date4")
#     print("创建成功")
#     # print(os.path.exists("data2/date3"))
#

# 删除文件夹 remove
# print(os.rmdir("data2/date3"))

# # 同时删除多个文件夹
# os.removerdirs("data2/date4")

# # 文件夹重命名,不需要在意是否有子类文件夹
# # 名称{通过文件夹}
# os.rename("data1","dataa1")

# # 判断文件夹内是否有文件 -->有返回值
# os.path.exists(" ") #返回给我们的是True或者是False结果
# os.path.isfile("text.txt") # 返回给我们的是True或者是False结果

4.内置函数_sys模块

import sys
# 看一下 sys 版本是什么
print(sys.version)
"""while True:
    for i in range(10):
        if i == 4:
            print("该数字查找成功")
            # break # 结束的是for循环
            sys.exit(8)"""

print("请输入内容",end ="")
aa = sys.stdin.readline()
bb = input("请输入内容") # input默认换行
print(aa)
print(bb)
# 当前的路径,以及已安装的内置模块和第三方模块
print(sys.path)

5.random模块

import random

# 随机取一个种子
# random.seed(3)

# 随机取一个整数
print(random.randint(1, 10))  # 有返回值对象 , 前后都可以取到

# 生成随机偶数
print(random.randrange(0, 10, 2))


# 随机生成一个浮点数 , 默认是计算机小数的长度 , 最大取不到1
print(random.random())

# 随机生成一个浮点数 返回小数的尾数
print(random.uniform(1.2, 1.9))  # 浮点数根据计算机长度来做定长 , 1之后的数字

# 随机取序列中的某一位数
print(random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))

# 从序列中要取数字,要取多少个
print(random.choices([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], k=2))
l1 = ["一等奖", "二等奖", "三等奖", "空奖"]
print(random.choices(l1, weights=[1, 2, 3, 20]))  # 出现的概率,数字越大,权重越大,出现的几率越高

# k代表的是,从列表里随机抽取几个元素
print(random.sample(l1, k=1)) 

# 将列表l1里的数据打乱顺序
random.shuffle(l1)  
print(l1)

# 抽奖系统 从指定参与者随机抽取一位中奖的人,把中奖的名字打印出来
# name = ["张三","张四","张五","张六"]
# print(random.sample(name,k=1)[0])
list_person = []
while True:
    name = input("请录入参与者的姓名(退出):")
    if name == "退出":
        break
    list_person.append(name)

# 写中奖者名单
if len(list_person) == 0:
    print("暂无人参与")
else:
    winner = random.choice(list_person)
    print(winner)

6.time模块

import time

# 时间戳 , 以秒为单位 从1970年1月1号 0:0:0
t = time.time()
print(t)
# 当前时间被格式化,大约能看懂的
t2 = time.localtime()
print(t2.tm_year)
print(t2.tm_mon)
# 获取当时的时间,格式化为变成能看懂的样式
t3 = time.strftime("%Y-%m-%d %H:%M:%S", t2)
print(t3)
# 常用的方法
# start = time.time()
# t4 = input("请等待5秒钟后按结束...")
# end = time.time()
# print(end - start)
# 格式化本地时间
t5 = time.time()
new_t5 = time.localtime(t5)
print(new_t5)
# 把格式化的时间 区分为字符串的形式 把字符串转化为元组
t6 = time.strptime("2024-05-02 12:25:00","%Y-%m-%d %H:%M:%S")
print(t6)
# 结构化时间 {元组}
t = time.localtime()
print(t)
print(time.asctime(t))
# # 结构化时间戳 {float}
t1 = time.time()
print(t1)
print(time.ctime(t1))

# 当下时间距离晚上12点还有多少时间

结语

        今天是python学习者,梦想是月入过万的男人,mai起来!

标签:函数,04,python,random,迭代,time,print,Day,math
From: https://blog.csdn.net/wuliwavv/article/details/140425100

相关文章

  • Python代码 | 井字棋
    importrandomcheckerboard=[[0,0,0],[0,0,0],[0,0,0]]i=0print(f"欢迎来玩井子棋,请在轮到你落子时输入你要下的位置,第x行,第y列,用逗号隔开,例如:1,2")defprint_board():forrowincheckerboard:forcolinrow:ifc......
  • vue学习day09-自定义指令、插槽
    29、自定义指令(1)概念:自己定义的指令,可以封装一些dom操作,扩展额外的功能。(2)分类:1)全局注册2)局部注册3)示例:让表单元素一进入页面就获取焦点①全局注册效果:②局部注册(效果和全局注册一样,但作用范围不同)(3)指令的值自定义指令可以通过等号赋值的形式传参,这个值......
  • [附开题]flask框架Web民宿管理系统的设计与实现89x8t(源码+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景:近年来,随着旅游业的蓬勃发展和消费者出行方式的多元化,民宿作为一种新兴的住宿选择,凭借其独特的居住体验、灵活的租赁方式和个性化的服务,受......
  • [附开题]flask框架Web精品课程网络平台的设计与实现3q7nv(源码+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景:随着信息技术的迅猛发展和教育理念的持续革新,传统教学模式正逐步向数字化、网络化转型。精品课程网络平台作为教育信息化的重要载体,不仅能......
  • [附开题]flask框架搬家网平台iz216(源码+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景:随着城市化进程的加速和人口流动性的增强,搬家服务需求日益增长,成为现代生活中不可或缺的一部分。然而,传统搬家行业存在信息不对称、服务质......
  • [附开题]flask框架班级管理系统3pdep(源码+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景:在教育信息化的浪潮中,传统的班级管理模式面临着诸多挑战。随着学生数量的增加和教育资源的日益丰富,如何高效地管理班级信息、协调班级事务......
  • Python 字典(Dict)详解与实战应用
    目录前言一、字典的定义和创建1.使用花括号定义2.使用dict()函数创建二、字典的三种遍历方式方式1:遍历字典的键,通过键获取值 dict.keys()方式2:遍历字典的值,但不能通过值获取键dict.values()方式3:最常用的方法:直接获取键值对 dict.items()三、字典的常见操作1.添......
  • Day2小结.(7.14)
    今天又是全天打比赛。https://www.cnblogs.com/didiao233/p/18301992T1(100)签到题,10分钟内切出来了,还算可以 https://www.cnblogs.com/didiao233/p/18302004T2(10)赛场想到贪心,不过没有考虑最关键的量,而是两个量一起贪心了,结果是显然的,爆炸了。所以,以后贪心得关注最重要的量......
  • Deepfake Day1:Baseline解读
    DeepfakeDeepfake是一种使用人工智能技术生成的伪造媒体,特别是视频和音频深度伪造技术(Deepfake)主要可以分为以下几个研究方向:面部交换:专注于在两个人的图像之间执行身份交换。面部重演:强调转移源运动和姿态。说话面部生成:专注于在角色生成中实现口型与文本内容的自然匹配。......
  • Java基础04:数据类型拓展
    整型拓展十进制整数,如:99,-500,0。八进制整数,要求以0开头,如:015。十六进制数,要求0x或0X开头,如:0x15。//整型inti=10;inti2=010;inti3=0x10;System.out.println(i);//10System.out.println(i2);//8System.out.println(i3);//16浮点型拓展浮点类型float,d......