Other

零基础学Python(一)

一、Python简介:Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。 Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。二、安装Python: Python官网:https://www.python.org/1在Downloads下拉菜单中选择操作系统,例如linux,windows,macOS等等我们选择最熟悉的windows操作系统来举例进行下载和安装在这里我们可以看到最新版本和其他版本的说明,截止目前,Python已经更新到了3.10版本,但是请大家注意,3.10版本无法在Windows 7 或更早版本上使用 Python 3.10.0!按照自己的操作系统来选择32位或者64位进行安装即可。接下去的文章我按照Python3.8这个版本来说明三、第一个Python程序:我们在安装好Python解释器后,打开IDLE,这就是Python的终端,我们可以在终端中写一些代码,例如在学习所有编程语言的开始都是输出“Hello World!”,我们在Python的学习开始也来实现这个最简单的输出:print 是Python的输出函数,例如下面这行代码:输入后按回车键即可运行 print(Hello World)1 没错,就是这样,我们成功的输出了Hello World,但是这里需要注意一个问题:在print后面输入字符串的一定要加上单引号或者双引号!四:Python中数据类型:数据类型包含:数字类型,字符串类型,布尔类型,列表类型,元祖类型,字典类型以及集合类型 数字类型:int列表类型:list布尔类型:bool元祖类型:tuple字典类型:dict集合类型:set我们将在下一节开始讲解字符串的一些使用…接下去我们将学习Python的对象,字符串的操作以及其他函数,列表和元祖的操作,以及字典的操作 五:什么是对象? Python中一切皆对象,Python是一门面对对象的编程语言每个对象都有各自的属性与方法对象的特点就是属性,功能就是方法我们的第一节内容就到这啦,接下去将讲解字符串的内置函数使用方法 ————————————————版权声明:本文为CSDN博主「热爱飞行的小应学长」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/m0_57310550/article/details/121131439

启动monitor出现Failed to create the Java Virtual Machine报错解决方案

一、在android-sdk tools目录下双击启动monitor出现Failed to create the Java Virtual Machine报错,并且命令行出现文件不存在的错误提示,如下图    二、解决方案 执行以下命令之后从新双击monitor即可启动成功 sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home/lib/libserver.dylib

零基础学Python(三)

我们从这一节就正式开始学习Python了,这节讲解一下字符串的一些内置函数以及操作方法。祝大家学习愉快~1:capitalize()----首字母大写方法,()里面不需要填写任何参数我们先定义一个字符串,在Python里变量的定义直接用等于就可以,但是注意变量名不可以使用数字开头,也不可以使用Python内置函数的名字,比如:3a=123,input=123,这都是错误的哦我们这里就取简单一点吧,a 作为变量名 a = hello world #给a赋值一个字符串a = a.capitalize() #调用这个函数print(a)123然后运行脚本: 可以看到已经把字符串的首字母转换成了大写 2:lower()-----小写方法,()里面不需要填写任何参数直接上代码: a = HELLO WORLD # 我们这里先把字符串全部写成大写a = a.lower() # 同样的调用这个函数print(a)123 这样我们也成功的输出了 3:upper()----大写的方法,()里面不需要填写任何参数 a = hello world # 我们这里先把字符串全部写成大写a = a.upper() # 同样的调用这个函数print(a)123直接运行就会把字符串内小写的字符转换成大写字符 4:swapcase()----字母大小写翻转意思是把字符串内小写的转换成大写,大写转换成小写 a = heLLO WORLD a = a.swapcase()print(a) # 运行结果为: HEllo world123455:zfill()—填充方法,为字符串定义长度,如不满足,缺少的部分用0补齐用法:a = a.zfill(width) # a为定义的字符串,width 为希望的字符串长度 a = abc #定义一个字符串a = a.zfill(10) #width 定义为10,意思是新字符串长度希望为10print(a) # 打印输出# 则这个运行结果是 0000000abc # 长度为101234zfill 注意事项:1:与字符串的字符无关2:如果定义长度小于当前字符串长度,则不发生变化 6:count(item)—返回当前字符串内元素的个数,item则为查询的元素例如:a = hello world,我们想查找这里面o的个数

URL网络编程

1.URL:统一资源定位符,对应着互联网的某一资源地址 2.格式: http://localhost:8080/examples/beauty.jpg?username=Tom 协议 主机名 端口号 资源地址 参数列表 url.getProtocol( ): 获取该URL的协议名url.getHost( ): 获取该URL的主机名url.getPort( ): 获取该URL的端口号url.getPath( ): 获取该URL的文件路径url.getFile( ): 获取该URL的文件名url.getQuery( ): 获取该URL的查询名 public class URLTest1 { public static void main(String[] args) { HttpURLConnection urlConnection = null; InputStream is = null; FileOutputStream fos = null; try { URL url = new URL("http://localhost:8080/examples/beauty.jpg"); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.connect(); is = urlConnection.getInputStream(); fos = new FileOutputStream("day10\\beauty3.jpg"); byte[] buffer = new byte[1024]; int len; while((len = is.

网络编程

一、网络编程中有两个主要的问题: 1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用2.找到主机后如何可靠高效地进行数据传输二、网络编程中的两个要素: 1.对应问题一:IP和端口号2.对应问题二:提供网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)三、通信要素一:IP和端口号 1.IP:唯一的标识 Internet 上的计算机(通信实体)2.在Java中使用InetAddress类代表IP3.IP分类:IPv4 和 IPv6 ; 万维网 和 局域网4.域名: www.baidu.com www.mi.com www.sina.com www.jd.com www.vip.com5.本地回路地址:127.0.0.1 对应着:localhost6.如何实例化InetAddress:两个方法:getByName(String host) 、 getLocalHost()  两个常用方法:getHostName() / getHostAddress() 7.端口号:正在计算机上运行的进程。 要求:不同的进程有不同的端口号范围:被规定为一个 16 位的整数 0~65535。8.端口号与IP地址的组合得出一个网络套接字:Socket TCP的3个例子通过三个例子学习客户端与服务端的交互 例子1: 客户端发送信息给服务端,服务端将数据显示在控制台上 public class TCPTest1 { //客户端@Testpublic void client() { Socket socket = null; OutputStream os = null; try { //1.创建Socket对象,指明服务器端的ip和端口号 InetAddress inet = InetAddress.getByName("192.168.14.100"); socket = new Socket(inet,8899); //2.获取一个输出流,用于输出数据 os = socket.getOutputStream(); //3.写出数据的操作 os.write("你好,我是客户端mm".getBytes()); } catch (IOException e) { e.

C# net PDMan/CHINER/元数建模 生成Dapper 代码生成器 代码模板

C# net PDMan/CHINER/元数建模 生成Dapper代码模板 C# net PDMan CHINER 元数建模 生成 Dapper 代码生成器 代码模板  在版本4.0.0以上版本中 增加分类 代码生成器》C#》Dapper using System; using System.Collections.Generic; $blankline {{ var today=new Date(); var fullYear=today.getFullYear(); var month=today.getMonth() + 1; var days=today.getDate(); }} /* * @author : http://www.chiner.com.cn * @date : {{=fullYear}}-{{=month}}-{{=days}} * @desc : {{=it.func.join(it.entity.defName,it.entity.comment,'-')}} */ namespace Chiner.Application { public partial class {{=it.func.camel(it.entity.defKey,true) }} { {{~it.entity.fields:field:index}} /// <summary> /// {{=it.func.join(field.defName,field.comment,';')}} /// </summary> public {{=field.type}} {{=it.func.camel(field.defKey,true)}} { get; set; } $blankline {{~}} } }   ok!

关于c++中的const的总结

1.为什么要用const const本质上其实不仅仅是对变量的一个限定符,更是对程序员的一个限定符,它提醒了程序员,通过const限定的变量的值是不应该被更改的,并且当编译器得知变量或者表达式的求值结果是恒定的时候,编译器也可以在编译期大展拳脚,为我们做出一些编译期优化,进而提高我们的程序在运行时的性能(例如编译器会在编译时直接将字面值常量插入我们的代码段)。 2.const的基本用法 用来进行基本类型变量的声明/*const变量在初始化的时候必须赋予值*/ int z;//正确: 常规变量初始化可不给明确值 const int x = 5; //正确: 以字面值常量5来进行初始化 //const int y; 错误:const变量的声明必须进行初始化 const int y = z; //正确:const型的变量可以被非const型变量进行初始化 /*const变量不允许被修改*/ //x = 3; y = 3 错误:不允许对const型变量进行修改 用来对指针或者引用这种复合类型进行声明/*关于常量指针与指针常量*/ int value = 5; const int c_value = 5; const int* p = &value; //正确:pointer to const 可以被常规变量地址初始化 const int* p1 = &c_value; //正确:pointer to const 可以被const变量地址初始化 //*p = 3, *p1 = 3 错误:无法通过pointer to const来改变所指向变量的值 int* const p2 = &value; //正确: 声明一个const pointer *p2 = 3; //正确: 可以通过const pointer来更改它所指向的值 //p2 = &c_value; 错误: const pointer所指向的地址无法被修改 /*引用类型与指针类型类似*/ const int& cref = value; //正确: 可通过常规变量初始化 const int& cref_1 = c_value;//正确: 可以通过const变量初始化 //cref = 4 错误: 不可通过reference to const改变原变量的值 其实在c++primer中,对于const修饰指针的这种情况有一个非常好的说明: 指针本身是一个对象,它又可以指向另一个对象。因此,指针本身是不是常量以及指针所指的是不是一个常量就是两个相互独立的问题。用名词顶层const表示指针本身是一个常量,而用名词底层const表示指针所指的对象是一个常量。

Redis部署

预先注意事项: 注意事项:文章中的文件路径可能与读者的文件路径存在差异,希望读者可以自行发现,自行解决。 需要对应版本!!!否则会出现不兼容的现象 官网下载文件:https://redis.io/download/  1、解压缩 tar -vxzf /home/ojb/下载/redis-6.2.6.tar.gz 2、重命名文件夹 mv redis-6.2.6 redis 3、移动文件夹 mv redis /usr/local/redis 4、进行安装 cd /usr/local/redis make 5、测试是否安装成功 make test 6、启动客户端 redis-cli #启动失败 Could not connect to Redis at 127.0.0.1:6379: Connection refusednot connected>not connected> exit 7、复制配置文件 sudo cp /usr/local/redis/redis.conf /etc 8、修改配置文件 cd /etc sudo vi redis.conf 9、修改如下 daemonize no 改为 daemonize yes 10、服务端启动 redis-server /etc/redis.conf #启动客户端前确保服务端已经启动 11、再次启动客户端 redis-cli #成功启动  显示本机ip:6379>  

什么是Java数据结构与算法?

编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如果一个开车的人懂变速箱的原理,比如降低速度来获得更大的牵引力,或者通过降低牵引力来获得更快的行驶速度。那么爬坡时使用1档,便可以获得更大的牵引力;下坡时便使用低档限制车的行驶速度。 回到编程而言,比如将一个班级的学生名字要临时存储在内存中,你会选择什么数据结构来存储,数组还是ArrayList,或者HashSet,或者别的数据结构。如果不懂数据结构的,可能随便选择一个容器来存储,也能完成所有的功能,但是后期如果随着学生数据量的增多,随便选择的数据结构肯定会存在性能问题,而一个懂数据结构和算法的人,在实际编程中会选择适当的数据结构来解决相应的问题,会极大的提高程序的性能。 一、数据结构 数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 1、数据结构的基本功能 插入一条新的数据项 寻找某一特定的数据项 删除某一特定的数据项 迭代的访问各个数据项,以便进行显示或其他操作 2、常见的数据结构 数组 Array 栈 Stact 队列 Queue 链表 Linked List 树 Tree 哈希表 Hash 堆 Heap 图 Graph 二、算法 算法简单来说就是解决问题的步骤。 在Java中,算法通常都是由类的方法来实现的。前面的数据结构,比如链表为啥插入、删除快,而查找慢,平衡的二叉树插入、删除、查找都快,这都是实现这些数据结构的算法所造成的。后面我们讲的各种排序实现也是算法范畴的重要领域。 1、算法的五个特征 ①、有穷性:对于任意一组合法输入值,在执行又穷步骤之后一定能结束,即:算法中的每个步骤都能在有限时间内完成。 ②、确定性:在每种情况下所应执行的操作,在算法中都有确切的规定,使算法的执行者或阅读者都能明确其含义及如何执行。并且在任何条件下,算法都只有一条执行路径。 ③、可行性:算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之。 ④、有输入:作为算法加工对象的量值,通常体现在算法当中的一组变量。有些输入量需要在算法执行的过程中输入,而有的算法表面上可以没有输入,实际上已被嵌入算法之中。 ⑤、有输出:它是一组与“输入”有确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法功能。 2、算法的设计原则 ①、正确性:首先,算法应当满足以特定的“规则说明”方式给出的需求。其次,对算法是否“正确”的理解可以有以下四个层次: 程序语法错误。 程序对于几组输入数据能够得出满足需要的结果。 程序对于精心选择的、典型、苛刻切带有刁难性的几组输入数据能够得出满足要求的结果。 程序对于一切合法的输入数据都能得到满足要求的结果。 PS:通常以第 三 层意义的正确性作为衡量一个算法是否合格的标准。 ②、可读性:算法为了人的阅读与交流,其次才是计算机执行。因此算法应该易于人的理解;另一方面,晦涩难懂的程序易于隐藏较多的错误而难以调试。 ③、健壮性:当输入的数据非法时,算法应当恰当的做出反应或进行相应处理,而不是产生莫名其妙的输出结果。并且,处理出错的方法不应是中断程序执行,而是应当返回一个表示错误或错误性质的值,以便在更高的抽象层次上进行处理。 ④、高效率与低存储量需求:通常算法效率值得是算法执行时间;存储量是指算法执行过程中所需要的最大存储空间,两者都与问题的规模有关。 前面三点 正确性,可读性和健壮性相信都好理解。对于第四点算法的执行效率和存储量,我们知道比较算法的时候,可能会说“A算法比B算法快两倍”之类的话,但实际上这种说法没有任何意义。因为当数据项个数发生变化时,A算法和B算法的效率比例也会发生变化,比如数据项增加了50%,可能A算法比B算法快三倍,但是如果数据项减少了50%,可能A算法和B算法速度一样。所以描述算法的速度必须要和数据项的个数联系起来。也就是“大O”表示法,它是一种算法复杂度的相对表示方式,这里我简单介绍一下,后面会根据具体的算法来描述。 相对(relative):你只能比较相同的事物。你不能把一个做算数乘法的算法和排序整数列表的算法进行比较。但是,比较2个算法所做的算术操作(一个做乘法,一个做加法)将会告诉你一些有意义的东西; 表示(representation):大O(用它最简单的形式)把算法间的比较简化为了一个单一变量。这个变量的选择基于观察或假设。例如,排序算法之间的对比通常是基于比较操作(比较2个结点来决定这2个结点的相对顺序)。这里面就假设了比较操作的计算开销很大。但是,如果比较操作的计算开销不大,而交换操作的计算开销很大,又会怎么样呢?这就改变了先前的比较方式; 复杂度(complexity):如果排序10,000个元素花费了我1秒,那么排序1百万个元素会花多少时间?在这个例子里,复杂度就是相对其他东西的度量结果。 本篇文章我们简单的介绍了数据结构和算法的概念,算法是解决问题的步骤,而数据结构的实现离不开算法,可能理解起来比较模糊,不用担心,我们一起来视频中跟着老师学习~ 最后Java初学者推荐:Java300集!2022年最全面的Java课程!新手必备教程!

python的重新尝试执行库 retrying

from retrying import retry @retry() def test(): print('我是正常的代码') print('我是会报错的代码',1/0) test()  这里会发现他一直打印 我是正常的代码 下面是常用的一些方法 # @retry()#报错一直重新尝试 # @retry(stop_max_attempt_number=2)#报错尝试2次 # @retry(stop_max_attempt_number=2,wait_fixed=2000)#报错尝试2次,并且间隔时间是2秒钟 # @retry(stop_max_attempt_number=2,wait_random_min=1000, wait_random_max=2000)#报错尝试2次,并且间隔时间是1-2秒随机时间 # @retry(stop_max_attempt_number=5,wait_exponential_multiplier=1000, wait_exponential_max=2000)#报错尝试5次,并且间隔时间是1并且间隔时间越来越长  搜索 复制