python:一日总结

一日一技:用Python做游戏有多简单 自从表白代码发了以后,有很多同学问我除了这种表白的,还有其他什么小游戏吗,游戏是怎么做的,难不难。我就用两篇文章来介绍一下,如果使用Python做游戏。 兔子与灌 俄罗斯方块 休闲五子棋 走迷宫 推箱子 消消乐 超多小游戏玩转不停↓ 更多小游戏可以评论区讨论哦,喜欢支持的话,关注 + 私信 “小游戏” 得源代码哦!!小游戏源码腾讯文档-在线文档https://docs.qq.com/doc/DU2t4VW1aQU9DcGdZ ....... 阅读详情

日志: 

 日志是一种可以追踪某些软件运行时所发生事件的方法。

      概念:  用来记录程序中, 你认为重要的消息.

日志的作用 : 

      可以简单总结为以下3点:

                                            1. 程序调试

                                                    2. 了解软件程序运行情况,是否正常

                                                         3.  软件程序运行故障分析与问题定位

日志的等级     在python中最常用的有五种等级

日志等级(level)描述
DEBUG最详细的日志信息,典型应用场景是 问题诊断
INFO信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
WARNING当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
ERROR由于一个更严重的问题导致某些功能不能正常运行时记录的信息
CRITICAL当发生严重错误,导致应用程序不能继续运行时记录的信息

调试 Debug      一般信息Info     警告Warning      错误Error      致命Critical

说明:

      上面列表中的日志等级是从上到下依次升高的,即:DEBUG < INFO < WARNING < ERROR < CRITICAL,而日志的信息量是依次减少的;

一种方法:

#日志的使用
#简单使用,在控制面板输出
import logging    #先引入模块logging

logging.debug('this is a debug')
logging.info('this is a info')
logging.warning('this is a warning')
logging.error('this is a error')
logging.critical('this is a critical')
#输出为: WARNING:root:this is a warning
#          ERROR:root:this is a error
#         CRITICAL:root:this is a critical
'''
只输出三条: 
    因为logging模块提供的日志记录函数所使用的日志器设置的日志级别是WARNING,
因此只有 WARNING 级别的日志记录以及大于它的 ERROR 和 CRITICAL 级别的日志记录被输出了
而小于它的DEBUG和INFO级别的日志记录被丢弃了。
'''

另一种方法:

#简单使用,在控制面板输出
import logging    #先引入模块logging
logging.log(logging.DEBUG,'this is a debug')
logging.log(logging.INFO,'this is a info')
logging.log(logging.WARNING,'this is a warning')
logging.log(logging.ERROR,'this is a error')
logging.log(logging.CRITICAL,'this is a critical')
#输出为三条 同上
#          WARNING:root:this is a warning       
#          ERROR:root:this is a error
#         CRITICAL:root:this is a critical

上面输出结果中每行日志记录的各个字段含义分别是:

            日志级别  :  日志器名称  :   日志内容


将日志输出到文件中 ,需使用函数 :

     logging.basicConfig(**kwargs)      该方法用于为logging日志系统做一些基本配   

filename指定日志输出目标文件的文件名,指定该设置项后日志信心就不会被输出到控制台了
format指定日志格式字符串,即指定日志输出时所包含的字段信息以及它们的顺序。logging模块定义的格式字段下面会列出。
datefmt指定日期/时间格式。需要注意的是,该选项要在format中包含时间字段%(asctime)s时才有效
level指定日志器的日志级别      

函数说明: 可以内置的参数

#简单使用,在文件中输出  并配置
import logging    #先引入模块logging
log_format='%(asctime)s %(levelname)s %(message)s '  # 指定日志格式字符串,
DATE_FORMAT = "%m/%d/%Y %H:%M:%S:%p"    #指定时间的输出
logging.basicConfig(level=logging.DEBUG , filename='my.log' , format=log_format , datefmt=DATE_FORMAT)
logging.log(logging.DEBUG,'this is a debug')
logging.log(logging.INFO,'this is a info')
logging.log(logging.WARNING,'this is a warning')
logging.log(logging.ERROR,'this is a error')
logging.log(logging.CRITICAL,'this is a critical')

Random (随机数)

random()是不能直接访问的,需要导入 random 模块

    语法:   import random

1.random.random()

    random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0

import random   #注   需要引入模块
print(random.random())  
#打印为:  0.6538968726581385    每次打印都不相同

2. random.uniform()

   random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限, 一个是下限. 如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。

import random   #注  需要引入模块
print( random.uniform(1,9))   #打印为: 1.59368996297742
print( random.uniform(10,20))   #打印为 : 17.90086045138722
#注 每次打印的结果都各不相同

3.random.randint()

    random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b

import random   #注需要引入模块
print( random.randint(1,9))   #打印为:   2
print(random.randint(20,20))   #结果永远是20  
#print(random.randint(20, 10)) #该语句是错误的。下限必须小于上限

4.random.randrange()

         random.randrange的函数原型为:random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。

import random
print(random.randrange(10,100,2))  #打印为 :26
print(random.randrange(1,9,6))  #打印为 :1或者7
#每次打印都不相同
5.random.choice()

  random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。

import random
print(random.choice("人生苦短,我学python"))  #打印为: 我     字符串
print(random.choice(["JGood","is","a","handsome","boy"]))  #打印为:  is     列表
print(random.choice(("Tuple","List","Dict")))  #打印为: Dict     元组
#每次打印都各不相同

6.random.choices()  扩展  

   其函数原型为:random.choice(sequence,k=n)   输出结果为列表  n  为

import random
print(random.choices("人生苦短,我学python",k=3))  #打印为:   ['p', ',', '苦']
print(random.choices(["JGood","is","a","handsome","boy"],k=2))  #打印为: ['is', 'handsome']
print(random.choices(("Tuple","List","Dict"),k=2))  #打印为: ['List', 'Dict']
#每次打印都会组成列表形式

7.random.shuffle()

  random.shuffle的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。

import random
lis=["JGood","is","a","handsome","boy"]
print(random.shuffle(lis))  #如果这样则返回None
#正确的使用方法:
random.shuffle(lis)
print(lis)   #打印为: ['a', 'handsome', 'JGood', 'boy', 'is']

8.random.sample

  random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。

import random
print(random.sample(range(20),6))  #打印为: [19, 11, 18, 17, 10, 9]
print(random.sample(["JGood","is","a","handsome","boy"],3))   #打印为['boy', 'handsome', 'is']   


模块:

import sys
print(sys.path)路径。打印后是一个列表,可以向其中追加路径

reload()重新加载路径

from   需要引入的文件路径    import    * (   *号表示全部    也可以指定)       

模块互相调用不可以,会产生死锁



推  导  : 

推导式是Python中很强大的、很受欢迎的特性,具有语言简洁,速度快等优点。推导式包括:

1.列表推导式

2.字典推导式

3.集合推导式

           不多说 , 上干货

1.列表推导式

#例1:整除3的数字列表
number=[]
for i in range(20):
    if i%3==0:
       number.append(i)
print(number)
#打印为: [0, 3, 6, 9, 12, 15, 18]
#   使用    列表推导式
nums=[x for x in range(20) if x%3==0]   #使用中括号
print(nums)   #打印为: [0, 3, 6, 9, 12, 15, 18]
#也可以这样
nums=[x+x for x in range(20) if x%3==0]   #使用中括号
print(nums)   #打印为:[0, 6, 12, 18, 24, 30, 36]

#列表-->可以调方法
def squared(x):
    return  x*x
numb=[squared(x) for x in range(20) if x%3==0]
print(numb)   #打印为: [0, 9, 36, 81, 144, 225, 324]

      使用()生成 generator 将列表推导式的 [ ] 改成 ( ) 即可得

到生成器。--yeild

num=(x for x in range(20) if x%3==0)
print(type(num))  #打印为:<class 'generator'>
#如果想打印出来有两种办法:
#办法一:
print(num.__next__())  #使用__next__()   一个个打印 得到 0   想要得到别的数字 可以在继续打印
#方法二:
print([y for y in num])  #使用推导的方法  [3, 6, 9, 12, 15, 18] 

2.字典推导式

          典推导和列表推导的使用方法是类似的,只不过中括号该改成大括号。

直接举例说明:  快速更换key和value

# #字典推导式
#使用推导的方法
dic={'name':'jock','age':16,'class':'七班'}
new_dic={v:k for k,v in dic.items()}
print(new_dic)   #打印为: {'jock': 'name', 16: 'age', '七班': 'class'}
#使用for循环的方法
new_dict={}
for k,v in dic.items():
    new_dict[v]=k
print(new_dict)   #打印为{'jock': 'name', 16: 'age', '七班': 'class'}

3.集合推导式

          它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。

# #集合推导式
#求平方:
sets={x**2 for x in range(10)}
print(type(sets))   #打印为:<class 'set'>
print(sets)  #打印为:{0, 1, 64, 4, 36, 9, 16, 49, 81, 25}

让我们用一些例子,证明推导的简单快捷:

例1: 用集合推导 字符串长度的集合

strings = ['a','is','with','if','file','exception']
len=[len(s) for s in strings]
print(len)  #打印为: [1, 2, 4, 2, 4, 9]  有长度相同的会只留一个 ,这在实际上也非常有用

例2: 将单词长度大于3的转为大写输出

#将单词长度大于3的转为大写输出
names = ['bob','tom','alice','jerry','wendy','smith']
name=[name.upper() for name in names if  len(name)>3 ]
print(name)   #打印为: ['ALICE', 'JERRY', 'WENDY', 'SMITH']

例3:求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表:

# #求(x,y)其中x是0-5之间的偶数   y是0-5之间的奇数组成的元组列表
tup=[(x,y) for x in range(6) if x%2==0 for y in range(6) if y%2==1]
print(tup)  #输出为: [(0, 1), (0, 3), (0, 5), (2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)]


          勤苦修行得自在,道力有边边亦无边!

一日一技:极其简单,用Python写前端 今天要介绍这个神器,可以说是 pywebio 的Plus +Pro +Max版,原谅我的词穷,但它真的非常的强~ 正常在学习一个新框架之前, 肯定要先调研下这个框架究竟能做些什么事吧? 但对于 streamlit 来说,请你相信我,这是一个你可以无脑去学习的框架,我之所以这么说,是因为我相信终有一天,你一定能用得上它。 Streamlit 是一个用于机器学习、数据可视化的 Python 框架,它能几行代码就构建出一个精美的在线 app 应用。 它能做什么,取决于你想干什么... 阅读详情

相关推荐

Mastering-Python 精通python 高清版pdf 电子书 带目录

Mastering-Python 精通python 高清版pdf 电子书 带目录

2.日志生成

1. 日志格式 ip localtime url reference status 156.124.10.29 2019-03-20 05:10:13 GET www/4 HTTP/1.0 https://www.baidu.com/s?wd=快乐人生 404 ip 访问IP localtime 访问时间 url 访问链接 www 之后的数字表示访问类型 1 电影 2 电视...

Penn的博客 231

精通python网络编程原书高清pdf附随书代码

Mastering Python Networking. 网络编程对所有开发语言都是一样的,Python也不例外。用Python进行网络编程,就是在Python程序本身这个进程内,连接别的服务器进程的通信端口进行通信。

python中random的基本用法

那么怎么使 a 随机生成一个数值呢,来研究一下random的部分程序;python中random模块的几个函数可以随机生成数值,下面咱们看一下random的几个函数的使用方法。 random()是不能直接访问的,需要导入random模块通过random静态调用该方法。随机浮点数random.uniform()用于生成指定范围内的浮点数,两个参数,一个是上限,一下是下限 1 im...

BDZ76862730的博客 380

爱上processing

getting start with processing ——作者:Casey Reas & Ben Fry

Chapter 7 Linear Voltage Regulators

这一章我们介绍LDO.

2304_76736886的博客 2764

[Python] 计算下一天

Python题目打卡

weixin_60479183的博客 1192

三菱FX5U通信之CCLINK操作步骤

11. 连接 CC‐Link 用的端子排,连接 Ver.1.10 对应 CC‐Link 专用电缆。备注:1、以上对应的寄存器都是一一对应的,主站的点数可以比从站多,但是都需要一一对应起来。3.直接安装孔,用于直接安装的螺钉孔(2‐φ4.5,安装螺钉为 M4 螺钉)2.点阵 LED(显示模块中设置的站号和测试模式的内容)5.次段扩展连接器(连接扩展模块的扩展电缆的连接器)4.动作状态(显示 LED 显示模块的动作状态)10 电源连接器,用于连接电源电缆的连接器。1.扩展电缆(扩展时连接用的电缆)

ZXL622722的博客 6932

python实现nextday() 时间戳转换

通过日期与时间戳之间转换获取下一天的日期

870

Trae编程工具Cline插件深度集成与Claude 3.7 API Key高级配置实战

本文详细介绍了如何在Trae编程工具中深度集成Cline插件并配置Claude 3.7 API Key的高级技巧。通过实战案例,展示了如何提升代码补全质量、实现多轮对话记忆及自定义代理设置,特别适合全栈工程师和需要私有化AI服务的团队。文章还涵盖了安装流程、API Key获取方式及企业级部署的最佳实践。

weixin_28829903的博客 436

企业知识库AI助手的权限管理架构:如何实现细粒度控制?

在展开架构设计前,我们需要先明确“细粒度权限”的核心定义,并理解它对AI助手的特殊意义。权限管理的“粒度”,本质是权限控制的精准程度。维度粗粒度权限细粒度权限资源范围entire document(整个文档)field/paragraph(字段/段落)操作类型read/write(读/写)generate_summary/download/export(生成摘要/下载/导出)上下文约束无(静态权限)time/ip/device(时间/IP/设备)适用场景简单系统(如内部wiki)

大数据洞察的博客 1042

python菜鸟笔记—第四篇

随机数函数 (1)choice() 方法返回一个列表,元组或字符串的随机项。choice()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。 代码: 结果: (2)randrange() 方法返回指定递增基数集合中的一个随机数,基数默认值为1。 原函数random.randrange ([start,] stop [,step]),其...

Katrina1995的博客 238

STMicroelectronics 系列:STM32G4 系列_(11).STM32G4系列编程基础

通过本文,我们学习了如何在 STM32CubeIDE 中搭建开发环境,创建新项目,配置 GPIO、定时器和 ADC 外设,并编写相应的代码示例。这些基础知识将帮助你快速上手 STM32G4 系列的编程。希望本文对你有所帮助,祝你编程愉快!

2401_87715305的博客 1280

一日精通python编程_爱上Python:一日精通Python编程

目录第1章 什么是Python ?11.1 什么是 Python ? 11.2 为什么学习 Python ? 1第2章 为 Python 做好准备 32.1 安装解释器 32.2 使用 Python Shell、IDLE 并编写第一个程序 4第3章 变量和操作符的世界 73.1 变量是什么? 73.2 命名一个变量 73.3 赋值符号 83.4 基本操作符 93.5 更多的分配操作符 10第4章 ...

weixin_39556474的博客 239

YOLOv11改进策略【卷积层】| SPD-Conv 针对小目标和低分辨率图像的检测任务

SPD-Conv是一种新的 CNN 构建模块,用于替代传统 CNN 架构中使用的步长卷积(strided convolution)和池化(pooling)层,它由空间到深度(Space-to-depth,SPD)层和非步长卷积(non - strided convolution)层组成。

Limiiiing的博客 4978

机器学习扩散模型简介

​ 扩散模型是生成模型,在过去几年中越来越受欢迎,这是有充分理由的。仅在 2020 年代发布的几篇开创性论文就向世界展示了 Diffusion 模型的能力,例如在图像合成方面击败 GAN[6]。最近,从业者将看到DALL-E 2(OpenAI 上个月发布的图像生成模型)中使用的扩散模型。

gongdiwudu的专栏 4271

python 编程一日一练-爱上Python:一日精通Python编程

目录第1章 什么是Python ?11.1 什么是 Python ? 11.2 为什么学习 Python ? 1第2章 为 Python 做好准备 32.1 安装解释器 32.2 使用 Python Shell、IDLE 并编写第一个程序 4第3章 变量和操作符的世界 73.1 变量是什么? 73.2 命名一个变量 73.3 赋值符号 83.4 基本操作符 93.5 更多的分配操作符 10第4章 ...

weixin_37988176的博客 224

ESP32学习笔记06-UART 的485 通讯模式

通信方式选择UART 控制器支持多种通信模式,使用函数 uart_set_mode() 可以选择模式。选择特定模式后,UART 驱动程序将处理已连接 UART 设备的相应行为。例如,主机开始向 Tx FIFO 缓冲区写入数据时,UART 驱动程序会自动置位 RTS 管脚(逻辑 1);最后一位数据传输完成后,驱动程序就会取消置位 RTS 管脚(逻辑 0)。要使用此模式,软件。

Car12 2476

一日一技:用Python绘画有多好玩

小编把之前发过的好玩的有趣的Python绘画结果总结起来发给大家,可以在各种节日跟心爱的那个TA来个浪漫表白哦~喜欢就收藏下来吧,多多支持哦 樱花树、玫瑰花、表白爱心发射、皮卡丘、圣诞树、清明上河图等~...

m0_59485658的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

python文本格式上一日_一日一技:在 Python 中快速遍历文件

一日一技:在 Python 中快速遍历文件摄影:产品经理厨师:产品经理当我们要在一个文件夹及其子文件夹里面寻找特定类型的文件,我们可能会这样写代码:没有子文件夹时import osall_file = os.listdir('target_folder')target_file = [x for x in all_file if x.endswith('.py')]有子文件夹时:import os...

weixin_39574555的博客 135

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

一日一技:用Python做游戏有多简单 (2)

现在用Python来制作游戏越来越方便,虽然某些方面有所限制。但是利用Pygame工具包基本能制作所有的2D游戏在制作的同时对游戏的理解也会更加深刻,因为本质上都是对图片的定位和图片碰撞的判断,从而以此为原理衍生出各种各样的游戏类型。...

m0_59485658的博客 6658

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python:一日一总结

Python基础语法 1.注释 单行注释(在说明性文字前面加#,#后面的文字就是注释) 多行注释将说明性文字放在’’’ ‘’'或者""" “”"中间 ''' 注释1 注释2 注释3 ''' 2.语句 一条有效代码就是一个语句 一般情况下一条语句占一行 一条语句结束不需要分号(如果多条语句在一行显示,语句之间必须用分号隔开) 如果一条语句很长,需要多行显示的时候,在换行的时候需要用 / 连接 3.缩进 python是通过缩进和冒号来产生代码块的,在没有块语法的时候不能随便在代码中添加缩进 4标识符和

qs77yo的博客 140

一日一技:python中的断言

使用python中的断言来自动检测python程序中的错误,让程序更加可靠且更易于调试: 从根本上来说,python中的断言语句是一种调试工具,用来测试某个断言条件,如果断言条件为True,则程序将继续正常执行;但如果断言条件为假False,则会引发AssertionError异常并显示相关的错误消息。 示例: 假设你需要使用python构建在线商城,为了添加打折优惠功能,你编写了下面这个apply_discount函数: def apply_discount(product, discount)

weixin_42000303的博客 4023

一日一技:我有 Anaconda 了,还能单独安装 Python 吗?

摄影:产品经理厨师:kingname有一些 Python 初学者,在学习网上教程的时候是以 Anaconda 入门的。此时他们电脑里面第一个 Pytho...

简说Python的博客 7108

一日一技:在Python类里面初始化自己

摄影:产品经理厨师:kingname当我们写一个类的时候,一般会覆写 __init__方法,来初始化一些数据。例如:class People: ...

简说Python的博客 826
上一篇: python--继承
下一篇: python 推导后续 枚举 文件流
Hao_python
博客等级 码龄9年 5粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值