条件语句、循环语句1. 条件语句 在判断语句的结果不是不是 0 或者 False 或者 ‘’ 或者 None 时,那么都视为真 Python 语言中,使用 缩进 来判断代码的层级 可以使用 input() 函数来接收键盘输入。 1.1 if…else 语句使用 if...else 进行判断,满足条件则执行 if 下的代码,不满足则执行 else 下的代码 Python 中,if 语句的基本形式如下: 1234if 判断条件: 执行语句...else: 执行语句... if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系 123456results = 59if results >= 60: print('恭喜你,考试通过')else: print('很遗憾,考试未通过') 非零数值、非空字符串、非空 list 等,判断为 True,否则为 False 123num = 6if num: print('num 不 ...
浅拷贝和深拷贝拷贝需要导入 copy模块 1、赋值:简单地拷贝对象的引用,两个对象的id 相同。2、浅拷贝:创建一个新的组合对象,这个新对象与原对象 共享 内存中的子对象。3、深拷贝:创建一个新的组合对象,同时递归地拷贝所有子对象,新的组合对象与原对象没有任何关联。 浅拷贝浅拷贝:是指创建一个新的对象,其内容是原对象中元素的引用。(拷贝组合对象,不拷贝子对象) 方法:copy.copy() 浅拷贝 等价于 切片[:] 使用浅拷贝时,子对象共用(list1 的子对象改变时,list2 的子对象也会改变) 123456789import copylist1 = [10, 20, 30, [40, 50]]list2=copy.copy(list1)print(list2) # [10, 20, 30, [40, 50]]# 修改了list1的值,list2中的值也会跟着改变list1[-1][0] = 60print(list2) # [10, 20, 30, [60, 50]] 深拷贝深拷贝:是指创建一个新的对象,递归的拷贝原对象所包含的子对象。 方法:copy.deepcopy ...
列表与元组1. 列表(list)1.1 定义列表类似于 Java 中的数组,但是它更强大,可以存放 任意 数据类型。 列表的内容 可以改变,字符串的内容 不可改变,如果需要改变则需要重新赋值。 123456# 定义一个空列表nameList = []# 列表可以存放 任意 数据类型a = [1, 2, 3.14, 'hello', [7,8,9] ] 1.2 切片列表可以用元素索引的方式取出里面的元素; 也可以用切片操作 截取一部分内容生成 新的列表。列表的 索引和切片操作和 字符串是 类似的。 列表切片后得到的结果仍然为 列表。 列表切片后得到的是新列表,原来的列表不变。 1234567a = [1, 2, 3.14, 'hello', [7,8,9] ]print(a[3]) # 3.14print(a[-1]) # [7,8,9]print(a[3:]) # ['hello', [7,8,9] ]print(a[-1][:2]) # [7,8] 1.3 增、删、改1.3.1 增 使用 append添加值到列表的 ...
一、线程 线程是由进程创建的,线程就是进程的实体 线程可以分为单线程 和 多线程 单线程: 同一时刻,只允许执行一个线程; 多线程: 同一时刻,可以执行多个线程; - 并发: 同一时刻,多个任务交替执行,单核 CPU 实现多任务并发; - 并行: 同一时刻,多个任务同时执行,多核 CPU 可以实现并行; - 并行 与 并发 也可能同时存在 1. 线程使用创建线程的两种方法: 继承 Thread 类,重写 run 方法; 实现 Runnable 接口,重写 run 方法; 继承 Thread 类,创建线程: 主线程结束后,子线程任然在执行时,进程不会结束; 调用 run() 方法并不会启动线程,而且会造成主线程阻塞 调用 start() 方法可以启动线程,不会造成线程阻塞,主线程和子线程会同时执行 1234567891011121314151617181920212223// 继承 Thread 类 - 案例public class Thread01{ public static void main(String[] args) { ...
一、绘图坐标体系 坐标原点位于左上角,以像素为单位; 坐标原点(0,0): 第一个是 X 坐标,表示当前位置 水平 方向距离原点 X 个像素; 第二个是 Y 坐标,表示当前位置 垂直 方向距离原点 Y 个像素; Graphics 常用方法: 画直线 drawLine(int x1, int y1,intx2,inty2) 画矩形边框 drawRect(int x,int y, int width, int height) 画椭圆边框 drawOval (int x, int y, int width, int height) 填充矩形 fillRect (int x, int y, int width, int height) 填充椭圆 fillOval (int x, int y, int width, int height) 画图片 drawImage (Image img, int x, int y, …) 画字符串 drowString (String str, int x, int y) 设置画笔字体 setFont (Fon ...
一、反射(reflection) 反射: 加载完类之后,在堆中会产生一个 Class 类 对象(一个类只有一个 Class 类对象),这个类对象包含了该类的所有信息。 通过这个类对象,可以操作该类的所有方法或属性; 反射相关的主要类(反射中, 万物皆对象): java.lang.Class 代表一个类 Class 对象表示某个类加载后再堆中的对象 java.lang.reflect.Method 代表类的方法 Method 对象表示某个类的方法 java.lang.reflect.Field 代表类的成员变量 Field 对象表示某个类的成员变量 java.lang.refect.Constructor 代表类的构造方法 Constructor 对象表示构造器 12345678910111213141516171819// CatDemo1.javapublic class CatDemo1 { public String name = "波斯喵"; public CatDemo1() { ...
一、 协程(Coroutine)技术1. 基本用法线程 :又叫 微线程 、 纤程 协程是一种用户级的轻量级线程 。 协程 拥有自己的寄存器上下文和栈。 协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来时,恢复先前保存的寄存器和栈。 优点: 协程极高的执行效率。 因为子程序切换不是线程切换,而是由程序自身控制,因此没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。 不需要多线程的锁机制 只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就可以,所以执行效率比多线程高很多。 缺点: 无法利用多核资源 协程的本质是个单线程,他不能同时将 单个 CPU 的多个核用上,协程需要和进程配合才能运行在多 CPU上。(适用于 CPU 密集型 应用) 进行阻塞(Blocking) 操作(如 IO 时)会阻塞掉整个程序 2. geventgevent :一个现在很火、支持也会全面的 Python 第三方协程库。 由于切换是在 IO 操作时自动完成,所以 gevent 需要修改 Python 自带的一些标准库,这一过程在启动时通过 ...
一. 语法结构 12345public class Demo{ public static void main(String[] args) { System.out.println("你好,java"); }} 说明: Demo :表示一个类,类名为 Demo,与文件名相同 public: 表示一个公有的类 public static void main:表示一个主方法,即程序的入口(固定写法) System.out.println("你好,java"); : 表示输出到屏幕,“;”表示语句结束 Java 语言严格区分大小写; 每个语句都必须以 “ ;” 结束; 括号都是成对出现的; 一个源文件只能有 一个 public类,其他类的数量不限; 每一个类在编译完成后,都会生成一个 “ .class ” 文件 如果原文件包含 public 类,则文件名必须与 类名相同; 二. 常用的转义字符 字符 说明 案例 运行结果 \t 制表符 System.out.println(“北京\t天 ...
一、元素定位 定位模式 是否脱标 移动位置 是否常用 static(静态定位) 不脱标 不能使用边偏移 很少 relative(相对定位) 不脱标(占有位置) 相对自身位置移动 常用 absolute(绝对定位) 脱标(不占有位置) 带有定位的父级 常用 fixed(固定定位) 脱标(不占有位置) 浏览器可视区 常用 sticky(粘性定位) 不脱标(占有位置) 浏览器可视区 当前阶段少 1. 定位的组成 定位 : 将盒子定在某个位置,所以 定位也是在摆放盒子,按照定位的方式移动盒子 定位 = 定位模式 + 边偏移 定位模式:指定一个元素在文档中的定位方式边偏移 : 决定了该元素的最终位置 语法:1position: static | relative | absolute | fixed 定位模式: 参数 含义 static 静态定位 relative 相对定位 absolute 绝对定位 fixed 固定定位 sticky 粘性定位 边偏移: 边偏移属性 示例 描述 top top: 80 ...