自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梁同学与Android

你坚持一件事做了多久?

  • 博客(680)
  • 资源 (20)
  • 收藏
  • 关注

原创 Andriod --- JetPack :Room + ViewModel + LiveData 增删改查实例

1.Andriod — JetPack (一):初识 JetPack2.Andriod — JetPack (二):LifeCycle 的诞生3.Andriod — JetPack (三):ViewModel 的诞生4.Andriod — JetPack (四):BaseObservable 与 ObservableField 双向绑定5.Andriod — JetPack (五):DataBinding + LiveData +ViewModel 简单实例6.Andriod — JetPack

2022-03-31 19:40:49 4730 1

原创 Andriod --- JetPack :Room 增删改查

文章目录一、前言二、Romm 的应用一、前言Android 采用 SQlit 作为数据库存储,开源社区常用的 ORM (Object Relational Mapping) 库有 ORMLite、GreenDao 等。Room 和其他库一样,也是在 SQLite 上提供了一成封装。这个 ORM 我们解释一下,因为我们用 Java 写的程序都是面向对象编程的(oop),而数据库是面向关系的,表与表之间的关系等等,那么我们怎么把这两者之间串联起来的就有了ORM,对象-关系-映射,这个东西。而 Room

2022-03-31 16:11:13 3632

原创 Andriod --- JetPack :BaseObservable 与 ObservableField 双向绑定

一、什么叫单向绑定与双向绑定单向绑定:对象变化的时候 TextView 自动更新双向绑定:对象变化的时候 EditView 自动更新。EditText 变化的时候对象的值也发生变化。二、BaseObservable 双向绑定代码实例MainActivity.javaimport androidx.appcompat.app.AppCompatActivity;import androidx.databinding.DataBindingUtil;import androidx.databin

2022-03-28 17:32:50 2453

原创 Andriod --- JetPack :DataBinding + LiveData +ViewModel 简单实例

一、DataBinding让布局页面承担了部分原本属于页面的工作,是页面文件和布局耦合度进一步降低。页面文件:Activity。布局:activity_main.xml减少了很多 findViewById 与 OnClickListener二、LiveData在 ViewModel 中的数据发生变化时通知页面这里的 Model 层下面的例子未呈现,等过后学到了 JetPack - Room 自然就懂了三、ViewModel1.它是介于 View(视图)和 Model(数据模型)直接的桥梁2

2022-03-14 15:49:44 3777

原创 Andriod --- JetPack:ViewModel 的诞生

一、ViewModel的诞生1.瞬态数据的丢失比如用户在界面上输入了数据,如果屏幕旋转之后,数据就发生了丢失。ViewModel实际上是以Map的方式保存我们的数据2.异步调用的内存泄漏3.类膨胀提高维护的难度和测试的难度比如在 Activity 中写的代码太多,导致维护难度增加二、ViewModel的作用1.它是介于 View(视图)和 Model(数据模型)直接的桥梁2.使视图和数据能够分离,也能够保持通信三、使用ViewModel的注意事项1.不要向ViewModel中传入Co

2022-03-14 14:56:27 770

原创 Andriod --- JetPack :LifeCycle 的诞生

一、使用的原因解耦系统组件与普通组件二、代码实例1比如一个普通控件 Chronometer 的使用与 Activity 的生命周期关联的太强,即普通控件 Chronometer 的业务逻辑必须在 Activity 的生命周期中处理,这样的耦合度就太高,所以我们使用LifeCycle 来解决我们先来看没有使用 LifeCycle 之前的代码:MainActivity.javapackage com.example.lifecycle;import androidx.appcompat.app

2022-03-13 22:09:24 2757

原创 Andriod --- JetPack :初识 JetPack

一、JetPack出现的原因App架构设计的标准的缺失,我们所用过的MVC、MVP、MVVM系列模式可能都是根据自己项目的场景构建的,而并不符合Google的设计方案,所以Google推出Android架构设计标准JetPack。二、什么叫JetPack简单一句话概括:JetPack 是一个由多个库组成的套件,可以帮助开发者遵循最佳做法,减少样板代码编写,可在各种Android版本和设备中一直运行代码,让开发者集中精力编写重要的代码,看下面的图:三、为什么使用JetPack1..

2022-03-13 19:21:19 2971

原创 Android --- CopyOnWriteArrayList 的使用场景及讲解

读操作不加锁:由于每次写操作都会创建一个新的数组,读操作可以在不加锁的情况下进行,因此对于读多写少的应用场景,CopyOnWriteArrayList 比其他线程安全集合(如 Vector 或 synchronizedList)效率更高。这意味着,所有的写操作都是不可变的,不会影响到正在执行的读操作,从而避免了线程竞争的问题。适用于读多写少的场景:由于写操作会复制数组,这会带来一定的性能开销,因此它非常适合读多写少的场景。需要线程安全的列表:在多线程环境下,使用它可以确保线程安全而不需要显式的同步。

2025-05-22 16:10:28 454 1

原创 Android --- View如何实现跟随手指滑动,scrollTo和scrollBy的区别

该代码片段展示了在Android开发中如何处理触摸事件以实现视图的滚动功能。通过重写onTouchEvent方法,代码捕捉了手指按下、移动和抬起的事件。在手指移动时,计算手指的位移(dx),并通过scrollBy(-dx, 0)实现视图的水平滚动,负号确保视图滚动方向与手指滑动方向相反,符合用户直觉。此外,代码还使用了Scroller类来实现平滑滚动效果,通过computeScroll方法持续更新视图位置,直到滚动结束。scrollTo和scrollBy的区别在于前者是绝对滚动到指定位置,后者是相对当前视图

2025-05-22 09:23:06 506

原创 C++:字符数组与字符串指针变量的大小

在C++中,sizeof和strlen函数在处理字符数组和字符串指针时表现不同。对于字符数组str,sizeof(str)返回数组的总大小(128字节),而strlen(str)返回字符串的实际长度(11)。对于字符串指针str2,sizeof(str2)返回指针本身的大小(在64位系统上为8字节,32位系统上为4字节),而strlen(str2)仍返回字符串的长度(11)。sizeof用于获取指针或数组的大小,而strlen用于获取字符串的实际长度。

2025-05-15 11:30:10 245

原创 Android --- FrameWork 入门:Product是什么?

源码路径:build/target/product/AndroidProducts.mkCOMMON_LUNCH_CHOICES就是lunch的列表实际lunch有好几十个,但上面只有4个选项啊?其实是在其他路径下还有这个配置文件,比如device/generic/x86_64/AndroidProducts.mk 也有配置,所以最终lunch列表就有很多。

2025-04-16 17:48:22 229

原创 Android --- FrameWork 入门:极速上手AOSP

2.VMware Workstation 下载。存储空间不低于500G,建议 1TB SSD。CPU不低于6核心,建议8核及以上。内存不低于32G,建议64G。2.修改repo自动更新镜像。3.初始化仓库并同步远程代码。网址如果失效可以联系我。这里最好不要小于20G。1.下载 repo工具。点击红框内的进行下载。

2025-04-16 16:50:21 391

原创 Android --- SystemUI启动流程

一.SystemServer中的启动代码路径:frameworks/base/services/java/com/android/server/SystemServer.java二.SystemUI中的启动1.应用的启动肯定是初始化Application类代码路径:/code/app/src/com/android/systemui/SystemUIApplication.java主要为了注册开机广播,来获取开机完成的事件,用来作为启动各个服务的条件.2.SystemUIService的

2025-04-16 13:58:37 375

原创 mysql下载安装及配置

基本操作参考:https://www.cnblogs.com/zhangkanghui/p/9613844.html。输入命令查看端口号占用,然后kill掉。

2024-12-31 15:52:31 217

原创 Android --- MediaSession的理解

https://developer.android.google.cn/media/legacy?hl=zh-cn

2024-12-27 16:48:27 146

原创 Android --- 在AIDL进程间通信中,为什么使用RemoteCallbackList 代替 ArrayList?

因为 ArrayList 不能自动移除无效的回调对象,因此服务 E 可能会试图与已经失效的进程通信,导致阻塞。如果你使用 ArrayList 存储跨进程的回调对象,当某个进程发生 binder dead(即进程崩溃或连接断开)时,ArrayList 无法自动移除失效的回调,这可能导致内存泄漏或者后续的通信失败。在进程间通信时,如果使用 ArrayList 存储 AIDL 回调对象,可能会导致一个进程崩溃后,ArrayList 中的其他元素(即其他连接到服务的客户端)也会受到影响,从而阻塞正常的通信。

2024-12-27 10:26:48 1459

转载 Android --- SparseArray替代HashMap来提高性能

总体而言,在Android这种内存比CPU更金贵的系统中,能经济地使用内存还是上策,何况SparseArray在其他方面的表现也不算差(另外,SparseArray删除数据的时候也做了优化——使用了延迟整理数组的方法,可参考官方文档SparseArray,读者可以自行把代码9中的hash.get和sparse.get改成hash.remove和sparse.delete试试,你会发现二者的性能相差无几)。通过结果我们看出,在正序插入数据时候,SparseArray比HashMap要快一些;

2024-12-27 10:07:40 140

原创 Android --- Kotlin,Fragment 怎么使用 ObserveForever 监听 Livedata

在 Kotlin 中,observeForever() 是 LiveData 提供的一个方法,它用于永久地观察 LiveData 对象的数据变化,不依赖于生命周期的管理。当我们使用 observeForever() 时,必须确保在不再需要时手动移除观察者,特别是在 Fragment 或 Activity 销毁时。需要注意的是,observeForever() 不会自动解除绑定(如在生命周期结束时自动移除观察者),因此必须手动移除观察者,以避免内存泄漏或不必要的资源消耗。

2024-11-27 11:46:06 853

原创 Android --- Textview 如果超过20长度显示省略号失效!

但是如果你加了:layout_weight就会失效,如下。

2024-10-23 15:20:18 202

原创 Android --- android所有版本,以及API级别,不断更新

2024-09-24 08:46:51 275

原创 Android --- complieonly 和implement的区别

‌implementation‌:与compileOnly不同,implementation依赖的库不仅参与编译,还参与打包。这意味着,当项目依赖了一个implementation的库时,这个库不仅在编译时可用,而且在运行时也是必须的。这意味着,如果一个项目依赖了某个compileOnly的库,那么在编译时这个库是必须的,以确保代码能够成功编译。然而,在打包时,这个库不会被包含在内,因此,如果其他模块或工程没有显式地添加这个库作为依赖,那么在运行时就会出现问题,因为运行时找不到这个库。

2024-09-10 13:47:59 1527

原创 Android --- observer和observerForever的区别

也就是说,当 LifecycleOwner 不再处于活跃状态时(例如,Activity 被销毁),观察者会自动停止接收更新。使用 observeForever 时,观察者没有生命周期管理,需要手动处理添加和移除,适用于需要在所有情况下都接收更新的场景。用途: 注册一个观察者,不依赖于 LifecycleOwner,无论组件的生命周期状态如何,观察者都会持续接收数据变化。使用 observe 时,观察者与 LifecycleOwner 绑定,适用于需要自动管理生命周期的场景。

2024-09-03 15:04:52 1234 1

原创 Android --- 都有哪些情况会发生anr,怎么解决?

如果应用声明的服务无法在规定时间内完成Service.onCreate()和Service.onStartCommand()/Service.onBind()执行,或者Context.startForegroundService()在前台启动新服务但该服务在5秒内未调用startForeground(),则会发生ANR。Android发生ANR的情况主要包括输入调度超时、广播超时、服务超时等,解决ANR问题的方法包括避免在主线程进行耗时操作、导出ANR日志信息、分析系统资源信息、查看主线程状态等。

2024-09-02 15:49:24 848

转载 Android --- 解决LiveData数据倒灌的新思路

每次 setValue 的时候,就打开所有 Observer 的开关,表示可以接受分发。这种方式的优点是:改动小,不需要反射,也不需要用HashMap存储等,缺点是:有一定的侵入性,假如后面这个方法的访问权限修改或者包名变动,就无效了,但是我认为这种可能性是比较小,毕竟androidx库迭代了这么多版本,算是比较稳定了。updateData方法发送了一次数据,当下面调用LiveData的observe方法时,会立即打印==============第一次发送数据,这就是上面说的“数据倒灌”现象。

2024-09-02 12:43:21 473

原创 Android --- Fragment 提交的方法主要有以下几种

【代码】Android --- Fragment 提交的方法主要有以下几种。

2024-08-28 17:10:33 311

原创 Android --- livedata是粘性事件,什么叫粘性事件

在LiveData中,粘性事件的具体表现是,如果一个Activity(例如FirstActivity)发送了数据,然后用户导航到另一个Activity(例如SecondActivity),在SecondActivity中监听LiveData的变化,即使是在FirstActivity发送数据之后才注册监听LiveData的事件,也能收到之前的发射数据。这与常规的观察者模式有所不同,常规模式下,我们一般是先注册监听事件,然后才会有事件回调,并且注册事件是不考虑之前发生的逻辑的。

2024-08-27 14:49:05 582

原创 Android --- transaction.commitAllowingStateLoss();和transcation.commit 有什么区别

transaction.commit() 和 transaction.commitAllowingStateLoss() 是 Android FragmentManager 中用于提交 Fragment 事务的方法,它们之间的主要区别在于状态丢失的处理。总结一般情况下,推荐使用 commit() 来确保 Fragment 状态的一致性。只有在确定丢失状态不会对用户体验产生严重影响时,才使用 commitAllowingStateLoss()。

2024-08-27 12:30:46 959

原创 Android --- Fragemnt 的生命周期

在实际应用中,你可以重写这些方法来执行特定的操作,比如数据加载、资源释放、用户交互处理等。记得在重写这些方法时调用父类相应的方法,以确保生命周期方法能够正常执行。Fragment的生命周期。

2024-08-26 11:40:57 488

原创 Android --- Kotlin学习之路:协程的使用,什么是协程,为什么要用协程?(学习笔记)

协程是基于线程,它是轻量级的线程java用的是线程,kotlin用的是协程,协程是个并发管理工具,定位跟线程其实是一样的。其实就是把java的线程包了一层。之前我们做网络请求的时候,想把网络请求的结果响应在主线程中,应该怎么写?一般情况下我们会在主线程去开启一个子线程发起网络请求,然后将请求的结果在主线程显示比如Retrofit,会帮我们实现自动在主线程去发起网络请求,不用我们自己new Thread,然后。

2024-07-19 14:24:39 2159

原创 Android --- Kotlin学习之路:自己写一个SDK给别的APP用(暴漏一个接口,提供学生的身高数据)

今天又来肝kotlin了,主题是:用kt写一个SDK给其他人用,这个小技能在项目中会经常用到,应该有很多小伙伴还不会用,不会的请往下看—⬇。接下来,我们到另外一个app,把刚才打包好的hights-release.aar放到libs下面。接下来你就会在项目工程下面看到刚刚所创建的module,我这里是hights。下添加以下代码,为了后面打包用,写完下面代码,记得sync一下。最终打包好的aar就会输出到build/libs/下面。最后随便写个main,调用SDK中的方法就可以了。

2024-07-12 16:52:24 649

原创 Android --- Kotlin学习之路:基础语法学习笔记

----------------------------------------基础只是学习完之后训练的例子-------------------------------------------------println(“server respose result : ${if (isLogin) “登录成功” else “登录失败”}”)我们可以给jar包中的某个类添加方法,因为jar包中的那个方法本身是不可以修改的。println(“是否继续使用程序,继续使用请输入Y,不使用请输入N”)

2024-07-10 15:11:28 1204

原创 Android --- Android 8.0之后不允许在后台启动一个服务的解决方案

这些限制导致在后台运行的服务可能会被系统认为是无效的,从而限制或者终止这些服务。JobIntentService 是 Android 提供的一个服务类,专门用于处理那些需要长时间运行的后台任务,它能够利用系统的 JobScheduler API,在适当的时候执行任务,而不会像普通服务那样直接在后台无限期运行。如果你的应用确实需要在后台长时间运行,并且需要执行一些重要的任务,可以将服务设置为前台服务(Foreground Service)。前台服务会在状态栏显示一个持续的通知,用户可以随时看到服务正在运行。

2024-07-09 15:51:43 1082

原创 Android --- 运行时Fragment如何获取Activity中的数据,又如何将数据传递到Activity中呢?

在 Fragment 中,可以通过 getActivity() 方法获取当前 Fragment 所依附的 Activity 实例。使用 ViewModel 来管理数据,Fragment 和 Activity 都可以通过获取同一个 ViewModel 实例来共享数据。定义一个接口,在 Fragment 中实现该接口,并在 Activity 中设置接口的回调,这样可以实现 Fragment 向 Activity 传递数据的双向通信。

2024-07-09 14:27:23 1295

原创 Android --- Kotlin学习之路:Retrofit 异步网络请求

【代码】Android --- Kotlin学习之路:Retrofit 异步网络请求。

2024-07-08 13:20:23 183

原创 Android --- Kotlin学习之路:Okhttp 同步异步网络请求

【代码】Android --- Kotlin学习之路:Okhttp 同步异步网络请求。

2024-07-05 16:34:14 446

原创 Android --- Kotlin学习之路:ViewBinding+Adapter+RecycleView实现垂直列表

【代码】Android --- Kotlin学习之路:ViewBinding+Adapter+RecycleView实现垂直列表。

2024-07-05 14:31:18 560

原创 Android --- 新电脑安装Android Studio 使用 Android 内置模拟器电脑直接卡死,鼠标和键盘都操作不了

大概原因就是,初始化默认Google的安卓模拟器占用的RAM内存是2048,如果电脑的性能和内存一般的话就可能卡死,解决方案是手动修改安卓模拟器的config文件,重启模拟器。新电脑安装Android Studio 使用 Android 内置模拟器电脑直接卡死,鼠标和键盘都操作不了。1.点击模拟器右侧三个点 - Show on Disk。3.修改hw.ramSize = 256字段即可。下面有演示的是 2024版本的 AS。2.找到config文件。

2024-07-02 10:03:35 1757 1

原创 Android --- MVVM+DataBinding+Fragment+Retrofit+Adapter 简单示例

首先,我们将使用 Retrofit 进行网络请求,所以我们需要添加 Retrofit 的依赖。接下来,我们创建一个接口来定义我们的 API 请求。

2024-06-07 10:30:45 471

转载 Android --- 线程池概述

Executors:jdk1.5之后的一个新类,提供了一些静态方法,帮助我们方便的生成一些常用的线程池,ThreadPoolExecutor是Executors类的底层实现//构造方法public ThreadPoolExecutor(int corePoolSize,//核心池的大小int maximumPoolSize,//线程池最大线程数long keepAliveTime,//保持时间TimeUnit unit,//时间单位。

2024-06-04 10:45:12 96

转载 Android --- 自定义View的三种实现方式及自定义属性使用介绍

我们在使用Android原生控件的时候,经常可以看到在布局文件中可以设置很多的属性值,如

2024-06-03 12:18:30 2122

520/情人节/过生日/纪念日表白 - 爱心飘落

全屏爱心飘落特效,中间是一个由27张图片组成的爱心,右上角记录在一起的时间 详细制作教程在资源里有一张图片。 提醒,该作品为网页版,需要自己手动制作(需要我制作的额外收费50元并私信)。实际运行双击pages文件夹下的aixin.html即可 制作该作品需要以下内容: -》在一起的时间 -》27 张 女友/男友 图片 + 右下角的狗狗图片 + 左下角的二维码 + 背景图片 (压缩包中有,自行替换) -》可以替换自己喜欢的背景音乐 一、文件夹目录 images:放你图片的位置 js:特效文件 mp3:你喜欢的音乐的位置 pages:网页代码位置 二、开始制作 1、images 文件夹 该文件夹放图片,注意图片的格式是 jpeg,1-27 是你的女朋友或者男朋友,28 是背景图片,29 或 30 你随意放。 注意:如果你用的是 google 浏览器或者是火狐是默认没有声音的,需要手动开启声音,火狐浏览器手动开启声音方法 - 允许即可,google 自行度娘,或者你用 360 或者搜狗浏览器都行:

2024-07-08

Python 基础课程《17.数据结构与算法》

16.1 数据结构概述 16.1.1 逻辑结构 16.1.2 物理结构 16.2 线性表 16.2.1 顺序表 16.2.2 链表 16.3 栈与队列 16.3.1 栈 16.3.2 队列 16.4 算法概述 16.5 排序算法 16.5.1 冒泡排序法 16.5.2 选择排序法

2024-05-29

Python 基础课程《16.函数使用进阶》

15.1 函数的嵌套 15.2 函数名作为参数 15.3 函数名作为返回值 15.4 闭包 15.5 装饰器 15.6 匿名函数 15.7 递归函数 举个例子,我们来计算阶乘 n! = 1 x 2 x 3 x ... x n, 用函数 fact(n)表示,可以看出: fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n 所以,fact(n)可以表示为 n x fact(n-1),只有 n=1 时需要特殊处理。 于是,fact(n)用递归的方式写出来就是: 1. def fact(n): 2. if n == 1: 3. return 1 4. return n * fact(n - 1)

2024-05-29

Python 基础课程《15.迭代器与生成器》

14.1 迭代的概念 我们已经知道对字符串、列表、元组等序列类型的数据,可以使用 for 循环从前往后依 次访问数据中的每一个元素,我们把这样的过程称为遍历,也叫迭代。 例如: 1. list1 = [1,2,3] 2. 3. for i in list1: 4. print(i) 14.2 可迭代对象 可以使用 for 循环遍历取值的对象叫做可迭代对象 比如:列表、元组、字符串、字典、集合、range()函数生成的数字序列 14.3 迭代器 14.4 生成器

2024-05-29

Python 基础课程《14.异常》

13.1 异常的概述 13.2 异常处理语句 13.2.1 try…except 语句 13.2.2 try…except…else 语句 13.2.3 try…except…finally 语句 13.3 raise 语句

2024-05-29

Python 基础课程《13.变量的使用进阶》

12.1 变量的作用域 12.1.1 作用域的创建 12.1.2 作用域的类型 12.1.3 LEGB 法则 12.1.4 在函数中修改全局变量的值 12.1.5 global 与 nonlocal 关键字 12.2 引用计数 12.3 深拷贝和浅拷贝 12.4 ==与 is 运算符

2024-05-29

Python 基础课程《12.文件的基本操作》

11.1 文件的介绍 11.2 文件的打开与关闭 11.2.1 文件的打开 11.2.2 文件指针 11.2.3 关闭文件 11.3 文件的读写 11.3.1 写文件 11.3.2 读文件 11.3.3 read()方法 11.3.4 文件指针的定位 11.3.5 readline()方法 11.3.6 readlines()方法

2024-05-28

Python 基础课程《11.面向对象》

10.1 面向过程与面向对象 10.1.1 面向过程的程序设计 10.1.2 面向对象的程序设计 10.2 类的定义与实例的创建 10.2.1 类的概念 10.2.2 类的组成 10.2.3 Python 中定义一个类 10.2.4 创建类的实例 10.3 属性与方法 10.3.1 创建实例属性 10.3.2 “魔术”方法 - __init__() 10.3.3 类属性 10.3.4 实例方法 10.3.5 类方法 10.3.6 静态方法 10.4 为属性与方法添加访问限制 10.5 继承 10.5.1 单继承 10.5.2 方法重写 10.5.3 多继承

2024-05-28

Python 基础课程《10.模块与包》

9.1 模块的概述 9.2 模块的种类与导入方法 9.2.1 标准模块 9.2.2 import 语句 9.2.3 from…import 语句 9.2.4 自定义模块 9.2.5 第三方模块 9.3 Python 中的包

2024-05-28

Python 基础课程《9.海龟作图高阶4》

1.跟我一起画个圆 2.圆的浪漫 3.太阳花 4.小海龟庐山真面目 5.课后作业 海龟登峰完整代码: 课后作业一完整代码:

2024-05-28

Python 基础课程《9.海龟作图高阶3》

1.一颗小星星 2.n角星 3.一张艺术画 4.不一样的小星星 5.小测验 n角星代码: 一幅艺术画代码: 作业二:太阳花代码:

2024-05-28

Python 基础课程《9.海龟作图高阶2》

1.rgb宝箱 2.多彩的渐变色 3.填充色 4.正多边形 5.课堂测验

2024-05-28

Python 基础课程《9.海龟作图高阶1》

1.小海龟的家 2.小海龟的画笔 3.小海龟的角 4.加速的小海龟 5.尽情创作(课后作业)

2024-05-28

Python 基础课程《8.函数》

7.1 函数的介绍 7.2 创建函数 7.3 调用函数 7.4 函数的参数 7.4.1 形式参数与实际参数 7.4.2 可变数据类型与不可变数据类型 7.4.3 位置参数 7.4.4 关键字参数 7.4.5 默认参数 7.4.6 可变参数 7.5 函数返回值 7.5.1 返回单个值 7.5.2 返回多个值 7.6 变量的作用域 7.6.1 局部变量 7.6.2 全局变量 7.6.3 global 关键字

2024-05-28

Python 基础课程《7.字典与集合》

6.1 字典 6.1.1 字典的创建方法 6.1.2 通过“键值对”访问字典 6.1.3 通过 get()方法获取指定键的值 6.1.4 遍历字典 6.1.5 向字典中添加元素和修改元素 6.1.6 从字典中删除元素 6.1.7 查找字典中的元素 6.2 集合 6.2.1 集合的创建方法 6.2.2 向集合中添加元素 6.2.3 从集合中删除元素 6.2.4 查找集合中的元素 6.2.5 集合的交集、并集和差集运算 6.3 列表、元组、字符串、字典、集合的区别

2024-05-28

Python 基础课程《6.列表、元组、字符串》

5.1序列的介绍 5.2列表 5.2.1列表的创建方法 5.2.2列表的索引 5.2.3输出列表的内容 5.2.4向列表中添加元素 5.2.5从列表中删除元素 5.2.6 修改列表中的元素 5.2.7查找列表中的元素 5.2.8对列表进行排序 5.2.9列表推导式 5.3元组 5.3.1元组的创建方法 5.3.2输出元组的内容 5.3.3查找元组中内容 5.4字符串 5.4.1字符串的创建方法 5.4.2字符串的常用操作方法 5.5列表、元组、字符串的一些通用操作 5.5.1切片 5.5.2序列相加 5.5.3乘法 5.5.4 len()函数、min()函数、max()函数

2024-05-28

Python 基础课程《5.循环结构》

4.1 循环结构的介绍 4.2 while 循环 4.3 for 循环 4.4 循环嵌套 4.5 break 语句 4.6 continue 语句

2024-05-28

Python 基础课程《4.选择结构》

3.1 程序的结构 3.2 选择结构概述 3.3 if 语句 3.4 if…else 语句 3.5 if…elif…else 语句 3.6 if 语句的嵌套

2024-05-28

Python 基础课程《3.python基础语法》

一、变量 二、运算符 三、进制与进制之间的转换 四、数据类型 五、数据类型的转换 六、type() 函数查看变量的数据类型 七、Python 中的输入 八、Python 中的输出 九、格式化输出 十、逻辑运算符高阶 十一、ASCII 编码 十二、 Python 的注释

2024-05-28

Python 基础课程《2.python的世界》

1.1 认识 Python 1.2 Python的发展历史 1.3 Python的优缺点 1.4 Python可以做什么工作(略) 1.5我的第一个 Python 程序(略) 1.6 Pycharm的使用

2024-05-28

Python 基础课程《1.python 小海龟画图基础》

主要讲解了用turtle画图 画直线、画三角形等。

2024-05-28

《中国电子学会青少年编程Python》2022年12月6级题目及答案

青少年软件编程(Python)等级考试试卷(六级) 一、单选题(共25题,共50分) 1. 数据文件“abc.txt”中包含若干个英文单词,如图所示: 读取文件“abc.txt”中数据的Python程序段如下: file = 'abc.txt' word_b = [] for word in open(file):     if word[0:1] = = 'a' and len(word)>4:         word_b.append(word) 该程序段执行后,列表word_b中的数据为?( )   A.  文件“abc.txt”中所有包含字母“b”且长度大于4的单词 B.  文件“abc.txt”中所有首字母为“a”且长度大于4的单词 C.  文件“abc.txt”中所有第2个字母为“a”且长度大于4的单词 D.  文件“abc.txt”中所有第1、2个字母均为“a”且长度大于4的单词 试题编号:20220422-jx-016 试题类型:单选题 标准答案:B

2023-11-18

《中国电子学会青少年编程Python》2022年12月5级题目及答案

青少年软件编程(Python)等级考试试卷(五级) 分数:100  题数:38 一、单选题(共25题,共50分) 1. 下面哪个语句正确定义了元组类型数据tuple1?( )   A.  tuple1=["张三","李四","王五"] B.  tuple1=("张三";"李四";"王五") C.  tuple1=(张三,李四,王五) D.  tuple1=("张三",) 试题编号:20220427-ph-006 试题类型:单选题 标准答案:D 试题难度:一般

2023-11-18

《中国电子学会青少年编程Python》2022年12月4级题目及答案

青少年软件编程(Python)等级考试试卷(四级) 一、单选题(共25题,共50分) 1. 有n个按名称排序的商品,使用对分查找法搜索任何一商品,最多查找次数为5次,则n的值可能为?( )   A.  5 B.  15 C.  30 D.  35 试题编号:20220428-fcl-017 试题类型:单选题 标准答案:C

2023-11-18

《中国电子学会青少年编程Python》2022年12月3级题目及答案

青少年软件编程(Python)等级考试试卷(三级) 一、单选题(共25题,共50分) 1. 列表L1中全是整数,小明想将其中所有奇数都增加1,偶数不变,于是编写了如下图所示的代码。 请问,图中红线处,代码应该是?( )   A.  x || 2 B.  x ^ 2 C.  x && 2 D.  x % 2 试题编号:20220425-ll-016 试题类型:单选题 标准答案:D

2023-11-18

《中国电子学会青少年编程Python》2022年12月2级题目及答案

青少年软件编程(Python)等级考试试卷(二级) 一、单选题(共25题,共50分) 1. 运行下列程序,最终输出的结果是?( ) info = {1:'小明', 2:'小黄',3:'小兰'} info[4] = '小红' info[2] = '小白' print(info)   A.  {1: '小明', 2: '小白', 3: '小红', 4: '小兰'} B.  {1: '小明', 2: '小白', 3: '小兰', 4: '小红'} C.  {1: '小白', 2: '小名', 3: '小兰', 4: '小红'} D.  {1: '小明', 2: '小红', 3: '小兰', 4: '小白'} 试题编号:20220515-ny-024 试题类型:单选题 标准答案:B

2023-11-18

《中国电子学会青少年编程Python》2022年12月1级题目及答案

一、单选题(共25题,共50分) 1. 关于Python语言的注释,以下选项中描述错误的是?( )   A.  Python语言有两种注释方式:单行注释和多行注释 B.  Python语言的单行注释以#开头 C.  Python多行注释使用###来做为标记 D.  注释用于解释代码原理或者用途 试题编号:20220426-lyl-012 试题类型:单选题 标准答案:C 试题难度:一般

2023-11-18

《中国电子学会青少年编程Python》2022年9月5级题目及答案

青少年软件编程(Python)等级考试试卷(五级) 分数:100  题数:38 一、单选题(共25题,共50分) 1. 已知字符串:s="语文,数学,英语",执行print(s.split(","))语句后结果是?( )   A.  ['语文', '数学', '英语'] B.  [语文, 数学, 英语] C.  ['语文, 数学, 英语'] D.  ['语文 数学 英语'] 试题编号:20220427-ph-009 试题类型:单选题 标准答案:A 试题难度:一般

2023-11-18

《中国电子学会青少年编程Python》2022年9月4级题目及答案

分数:100  题数:38 一、单选题(共25题,每题2分,共50分) 1. 下列不是评判一个算法优劣的标准是?( )   A.  时间复杂度 B.  空间复杂度 C.  难易度 D.  健壮性 试题编号:20220428-fcl-011 试题类型:单选题 标准答案:C

2023-11-18

《中国电子学会青少年编程Python》2022年9月3级题目及答案

青少年软件编程(Python)等级考试试卷(三级) 分数:100  题数:38 一、单选题(共25题,共50分) 1. 十六进制数100,对应的十进制数为 ?( )   A.  128 B.  256 C.  28 D.  56 试题编号:20220425-ll-001 试题类型:单选题 标准答案:B

2023-11-18

《中国电子学会青少年编程Python》2022年9月2级题目及答案

青少年软件编程(Python)等级考试试卷(二级) 一、单选题(共25题,共50分) 1. 运行以下代码,结果输出的是?( ) means=['Thank','You'] print(len(means)) A. 8 B. 6 C. 2 D. 1 试题编号:20220515-ny-019 试题类型:单选题 标准答案:C

2023-11-18

《中国电子学会青少年编程Python》2022年9月1级题目及答案

青少年软件编程(Python)等级考试试卷(一级)202209 1. 表达式len("学史明理增信 ,读史终生受益") > len(" reading history will benefit you ")的结果是?( ) A. 0 B. True C. False D. 1 试题编号:20220426-lyl-003 试题类型:单选题 标准答案:C

2023-11-18

《中国电子学会青少年编程Python》2022年6月5级题目及答案

青少年软件编程(Python)等级考试试卷(五级) 分数:100  题数:38 一、单选题(共25题,共50分) 1. Python中 print("八进制{:o}".format(12)) 正确的输出结果是?( )   A.  八进制:O B.  八进制:O14 C.  八进制14O D.  八进制14 试题编号:20220421-qdc-009 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:字符串的format()格式。 考生答案:D

2023-11-18

《中国电子学会青少年编程Python》2022年6月4级题目及答案

青少年软件编程(Python)等级考试试卷(四级) 分数:100  题数:38 一、单选题(共25题,共50分) 1. 有如下Python程序,包含lambda函数,运行该程序后,输出的结果是?( ) g = lambda x,y:x*y print(g(2,3))   A.  2 B.  3 C.  6 D.  8 试题编号:20220428-fcl-001 试题类型:单选题 标准答案:C

2023-11-18

《中国电子学会青少年编程Python》2022年6月3级题目及答案

青少年软件编程(Python)等级考试试卷(三级) 分数:100  题数:38 一、单选题(共25题,共50分) 1. 如下所示的2行代码,最后print()函数打印出来的结果是?( ) c = [['赵大',21,'男','北京'],['钱二',20,'男','西安'],['孙三',18,'女','南京'],['李四',20,'女','杭州']] print(c[1][3])   A.  男 B.  北京 C.  西安 D.  女 试题编号:20220425-ll-005 试题类型:单选题 标准答案:C

2023-11-18

《中国电子学会青少年编程Python》2022年6月2级题目及答案

青少年软件编程(Python)等级考试试卷(二级) 分数:100  题数:37 一、单选题(共25题,共50分) 1. 运行下列程序,输出的结果是?( ) tup1 = ('苏炳添', '谷爱凌', '北京冬奥会', '2022') tup2 = (201, 8, 4, 21, 155, 255, 22 ) print (tup1[-1::-2],sum(tup2))   A.  ('2022', '谷爱凌') 666 B.  '2022','谷爱凌' 666 C.  '2022','北京奥运会' 666 D.  ('2022',)666 试题编号:20220418-zy-013 试题类型:单选题 标准答案:A

2023-11-18

《中国电子学会青少年编程Python》2022年6月1级题目及答案

青少年软件编程(Python)等级考试试卷(一级) 分数:100  题数:37 一、单选题(共25题,共50分) 1. 在Python编辑器中写好程序代码后,在Run菜单中,下列哪个命令可以用来执行程序?( )   A.  Check Module B.  Run Module C.  Python shell D.  任意一个都可以 试题编号:20220427-yxy-002 试题类型:单选题 标准答案:B

2023-11-18

《中国电子学会青少年编程Python》2022年3月5级题目及答案

1. 下面有关random的常用方法,描述错误的是? ( )   A.  random.random()生成一个[0.0,1.0)之间的随机小数 B.  random.randint(a,b)生成一个[a,b]之间的随机整数 C.  random.choice(seq)从序列中随机选择一个元素 D.  random.uniform(a,b)生成一个[a,b]之间的随机字符 试题编号:20220221-ssn-002 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:random.uniform(a,b)生成一个[a,b]之间的随机小数 考生答案:D

2023-11-18

《中国电子学会青少年编程Python》2022年3月4级题目及答案

青少年软件编程(Python)等级考试试卷(四级) 分数:100  题数:38 一、单选题(共25题,共50分) 1. 关于函数,以下选项中描述错误的是? ( )   A.  函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。 B.  使用函数的主要目的是减低编程难度和代码重用。 C.  Python 使用 del 保留字定义一个函数。 D.  函数是一段具有特定功能的、可重用的语句组。 试题编号:20200316-ysy-007 试题类型:单选题 标准答案:C

2023-11-18

《中国电子学会青少年编程Python》2022年3月3级题目及答案

青少年软件编程(Python)等级考试试卷(三级) 分数:100  题数:38 一、单选题(共25题,共50分) 1. 二进制数101100111对应的十六进制数的数值是? ( )   A.  6 B.  369 C.  167 D.  165 试题编号:20220210-ssn-001 试题类型:单选题 标准答案:C

2023-11-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除