在学习中遇到的Python的一个坑,那就是使用列表作为默认参数。
我们知道,在Python中,列表(list)是可变对象,所以列表的内容可能会在函数内改变。另一个需要注意的是,使用列表作为函数的默认参数时,列表的内容变化情况。
首先,我们看以下的代码例子:
def add(x, lst=[]): if x not in lst: lst.append(x) return lst def main(): list1 = add(1) print(list1) list2 = add(2) print(list2) list3 = add(3, [11, 12, 13, 14]) print(list3) list4 = add(4) print(list4) main() 你可能以为输出的结果会是:
[1] [2] [11, 12, 13, 14, 3] [4] 但事实上,该程序输出的结果是:
[1] [1, 2] [11, 12, 13, 14, 3] [1, 2, 4] 这是为什么呢?函数add的功能是当x不在列表中时,将x追加给列表lst。当函数第一次执行时,参数lst的默认值[]被创建。这个默认值只会被创建一次。add(1)将1加到lst。
当函数再次被调用时,lst是[1]而不是[],因为lst只被创建一次。当参数的lst为[11,12,13,14]时,lst就是[11,12,13,14]。list4调用函数时,使用默认参数,因此,现在默认参数lst为[1,2]。
为了更好地理解调用情况,可以在add函数中输出lst的id,如以下代码:
def add(x, lst=[]): print(id(lst)) if x not in lst: lst.
写在前面的一些P话: 在公司网站开发中,我们往往借助于Flask、Django等网站开发框架去提高网站开发效率。那么在面试后端开发工程师的时候,面试官可能就会问到网站开发的底层原理是什么?
我们不止仅仅会使用框架开发,还需要知其所以然
今天领大家不借助任何框架的基础上手动搭建一个资料查找网站点击此处找管理员免费领取资料
主要内容 TCP网络模型 正则表达式匹配资源 如何编写一个tcp server服务端 开始我们的代码,先是导入模块 如何实现一个静态的服务器呢? 可以使用Python自带的一个通讯模型:socket
python中内置的网络模型库tcp / udp
import socket 为浏览器发送数据的函数 1. 当浏览器链接到网站服务器的时候
def service_client(new_socket): request = new_socket.recv(1024) print(request) 2. 向浏览器发送http数据如果浏览器在接收完http协议数据之后遇到了换行,自动将下面的数据转成网站内容body中去
response = 'HTTP/1.1 200 OK \r\n' response += '\r\n' # 构建你想要显示的数据内容 response += 'hello world' 3. 浏览器接受到的数据是由编码集的,所以我们需要对字符串进行一次编码
new_socket.send(response.encode('utf-8')) 4. 当服务完浏览器之后,需要释放系统资源
new_socket.close() 创建一个执行函数 1. 创建一个tcp套接字socket模块需要两个参数 网络协议(pc ipv4 ipv6) 模型类型
def main(): tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 我们操作系统内部有65535个服务端口,当一个程序运行的时候[进程] 占用一个端口浏览器软件运行占用的端口:80文件上传端口:22网站指定端口:443
写在前面的一些P话: 今天这个案例,就是控制自己的摄像头拍照,并且把拍下来的照片,通过邮件发到自己的邮箱里。想完成今天的这个案例,只要记住一个重点:你需要一个摄像头
思路 通过opencv调用摄像头拍照保存图像本地用email库构造邮件内容,保存的图像以附件形式插入邮件内容用smtplib库发送邮件到指定邮箱
开始代码 工具导入
import time import cv2 # pip install opencv-python -i 镜像源网址 from email.mime.image import MIMEImage # 用来构造邮件内容的库 from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import smtplib # 发送邮件 调用摄像头,保存图片 拍照呢,是用手机的摄像头,软件用的是:IP摄像头(安卓),因为在同一个局域网内,打开APP,里面出现的网址就是摄像头的地址
def GetPicture(): 拍照保存图像 :return: # 创建一个窗口 cv2.namedWindow('camera', 1) # 调用摄像头 IP摄像头APP video = http://admin:
[email protected]:8081/video cap = cv2.VideoCapture(video) while True: success, img = cap.read() cv2.imshow(camera, img) # 按键处理 key = cv2.waitKey(10) if key == 27: # esc break if key == 32: # 空格 fileaname = 'frames.
使用Canvas 在浏览器中使用canvas,只用引入<canvas>标签即可!
注意:
在canvas标签中写入文字,如果浏览器支持就不会显示文字,不支持的话,就会显示文字 指定画布大小:直接在标签中指定width和height即可 对于canvas来说,不能直接使用margin: 0 auto;进行居中。如果需要居中,可以给他添加一个父元素,让父元素居中。 <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <meta http-equiv=X-UA-Compatible content=IE=edge> <meta name=viewport content=width=device-width, initial-scale=1.0> <title>Document</title> </head> <body> <!-- canvas在低版本中不兼容,需要给用户提示信息 --> <canvas width=500px height=600px> 您的浏览器版本过低,请升级浏览器或使用Chrome浏览器 </canvas> </body> </html> 在canvas中画直线 步骤如下:
获取画布 获取画布的上下文 开始一条路径 确定起始点 确定结束点 着色 结束路径 <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <meta http-equiv=X-UA-Compatible content=IE=edge> <meta name=viewport content=width=device-width, initial-scale=1.0> <title>Document</title> <style> canvas { border: 2px solid black; display: block; } </style> </head> <body> <!
课程:《Python程序设计》班级: 2042姓名: 秦瑗蔚学号:20204225实验教师:王志强实验日期:2022年4月19日必修/选修: 公选课
CSDN博文链接:https://blog.csdn.net/weixin_65205600/article/details/124278272
MySQL二进制安装及源码包安装 目录 内容概述 内容详细 1.MySQL二进制安装 2.MySQL源码包安装 3.MySQL数据库基本管理 设置Mysql密码 MySQL连接工具与方式 MySQL配置文件 统一字符集编码 修改MySQL root密码 mysqladmin命令 内容概述 1.MySQL二进制安装 2.MySQL源码包安装 3.MySQL数据库基本管理 内容详细 1.MySQL二进制安装 MySQL二进制安装需要用到二进制包,二进制包其实就是编译好的源码包,这样我们就省去了编译的步骤了。 1.卸载MariaDB yum -y remove mariadb-libs.x86_64 2.创建用户 useradd -M -s /sbin/nologin -r mysql 3.安装依赖包: yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf 4.下载MySQL二进制包 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz 5.解压二进制包并做好软链接 tar -xf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/ ln -s /usr/local/mysql-5.7.35-linux-glibc2.12-x86_64/ /usr/local/mysql 6.配置MySQL数据存放目录并授权 chown -R mysql.
本文由 简悦 SimpRead 转码, 原文地址 www.csdn.net
csdn已为您找到关于git 同时提交多个仓库相关内容,包含git 同时提交多个仓库相关文档代码介绍、相关教程视频课程,以及相关git 同时提交多个仓库问答内容。为您解决当下相关问题,如果想了解更详细git 同时提交多个仓库内容,请点击详情链接进行了解,或者注册账号与客服人员联系给您提供相关内容的帮助,以下是为您准备的相关内容。
1.进入项目根目录 2.点击查看,显示隐藏文件夹 出现git文件夹
3.进入.git文件夹 4.
4.编辑config 原文件
修改后
代码如下
[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true [submodule] active = . [remote origin] url = https://gitee.com/stylesmile/snow.git fetch = +refs/heads/*:refs/remotes/origin/* url = https://github.com/stylesmile/snow.git [branch master] remote = origin merge = refs/heads/master [remote github] url = https://github.
分类
风险来源 Sources
人
用户
近五年来,随着人们在各个领域对正版意识的加强,以游戏为例,艾瑞咨询的2018年中国PC单机游戏行业研究报告指出,已经有89%单机玩家购买过正版游戏,在2018年Steam平台支持中文的游戏中,有70%是独立游戏。独立游戏对于开发者和玩家,带来的潜力是巨大的。
利益相关者
如今在国内存在着一批独立游戏开发者,他们或多或少有着已经发布的游戏,但他们的总人数处于一个较低的水平,同时,他们的作品也由于各种原因并没有广为人知,在很多方面仍然有着很大的提升空间。
对于玩家来说,近年来的游戏前景很是“糟糕”,没有像前几年有着如此多的“大作”可供游玩,人们对于国内游戏的看法也还是停留在“抄袭”阶段,这种看法迫切的需要改变。玩家作为最后的受益者,也能在游戏开发阶段就给出自己在如玩法设计等方面起到较大的作用。
团队成员
团队成员均对各种类别的游戏有一定的了解,参加或简介参加过游戏开发,均能对后期编程能够给出自己的建议,小组对各个领域都有较为擅长的成员,能在本项目上起到建设性作用。
政治因素
游戏源代码可能存在潜在的利益纠纷问题,目前对于游戏代码的保护似乎仍处于空白,项目需要为此做出一个较为完善的解决方案,否则将对游戏开发的整体过程产生较大的影响。
流程
项目的目标
GitIndie致力于让如今的独立游戏开发者运用我们的平台更快更好的完成一款游戏,能够尽可能的在寻找团队、开发等减少时间,在创意构思和剧情设计等方面花更多的时间,最终希望能为人们带来更优质的国产游戏,而不是停留在过去一味的“抄袭”别人的作品。
决定流程
团队成员通过若干次线上会议,确定了项目的整体设计方向、可行性和主要功能,并对本项目的前景进行分析,通过问卷的形式进行需求分析,抓住用户的真实需求,及时调整业务目标
项目特点
无论是什么都会的“大牛”,亦或是刚刚入门的“小白”,他们都可以在这片天地当中自由交流自己在游戏开发时遇到的问题,分享心得,甚至是招兵买马,共同合作开发一款游戏。Git Indie可以说为每一位独立游戏开发者——无论是专业开发者,还是业余爱好者——都提供了一个可以自由展现自身能力与水平和吸纳知识的舞台。
预算
服务器、开发等各类费用预计在¥50,000
日程
3-6个月完成初版开发
需求
1、添加依赖包和配置数据源 在官网找到对应的依赖
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency> 数据源不变
application.yml
spring: datasource: username: root password: 12345 url: jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver #这个是指定对应的扫描包和配置文件,相当于不用写mybatis的配置文件了 mybatis: type-aliases-package: com.wcy.pojo mapper-locations: classpath:mybatis/mapper/*.xml 2、创建pojo和mapper Books类
import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor public class Books { private int bookID; private String bookName; private int bookCounts; private String detail; } BookMapper类
import com.wcy.pojo.Books; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; import java.util.List; //这个注解表示这是mybatis的一个mapper类 @Mapper @Repository public interface BookMapper { List<Books> queryAllBooks(); } BookMapper.