[{"content":"dart列表类型- List 场景 当一个变量需要多少个值存储时，可以使用列表类型list\n需要 一个班级学生list 支持对学生 查找 增加 删除 循环\n会发 List 属性名 = [\u0026ldquo;学生1”，“学生2“]\n1 2 3 4 void main(){ List students = [\u0026#34;小明\u0026#34;, \u0026#34;小红\u0026#34;, \u0026#34;小刚\u0026#34;]; print(students); } List常用的操作方法 在尾部添加 add（内容）\n在尾部添加一个列表 addAll（列表）\n删除满足内容的第一个 remove（内容） 注意 只删除满足条件的第一个\n删除最后有个 removeLast（）\n删除引用范围内的数据 removeRange（start,end）注意 开始包含 结尾不包含 从0开始\n0,1,2,3,4\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 void main(){ List students = [\u0026#34;小明\u0026#34;, \u0026#34;小红\u0026#34;, \u0026#34;小刚\u0026#34;]; print(students); student.add(\u0026#34;小芳\u0026#34;); print(students); student.add(\u0026#34;小芳\u0026#34;); print(students); students.addAll(\u0026#34;小王\u0026#34;,\u0026#34;小夏\u0026#34;); print(students); students.remove(\u0026#34;小芳\u0026#34;); print(students); students.removeLast(); print(students); students.removeRange(0,4); print(students); } 1 2 3 4 5 6 [小明 小红 小刚 小芳] [小明 小红 小刚 小芳 小芳] [小明 小红 小刚 小芳 小芳 小王 小夏] [小明 小红 小刚 小芳 小王 小夏] [小明 小红 小刚 小芳 小王] [小王] ","date":"2026-08-10T04:38:02+08:00","image":"https://yuban11451.github.io/p/dart%E5%88%97%E8%A1%A8/matt-le-SJSpo9hQf7s-unsplash_hu_6db8f8cd5ede62a6.jpg","permalink":"https://yuban11451.github.io/p/dart%E5%88%97%E8%A1%A8/","title":"Dart列表"},{"content":"dart的布尔类型 - bool 场景 我们需要一个属性来表示当前状态为真（ture）或者假（false）的时候 需要用上bool关键词声明\n需求 声明自己是否完成家庭作业\n语法 bool 属性名 = ture 或者false\n1 2 3 4 5 6 void main(){ bool finish = false; print(\u0026#34;我目前的作业状态$finish); finish = ture; print(\u0026#34;我目前的作业状态$finish); } ","date":"2026-08-10T04:18:03+08:00","image":"https://yuban11451.github.io/p/dart%E5%88%A4%E6%96%AD/matt-le-SJSpo9hQf7s-unsplash_hu_1a162753c2d8ed5d.jpg","permalink":"https://yuban11451.github.io/p/dart%E5%88%A4%E6%96%AD/","title":"Dart判断"},{"content":"dart string 场景 当我们需要一个变量描述一段文本，就可以使用string来声明\n关键词 string\n语法 string 属性名 = = ‘文本内容’\n特点 引号支持双引号或者单引号 ， 支持拼接及模版字符串\n1 2 3 4 void main(){ String text = \u0026#34;明天\u0026#34;; print(text); } dart -string -模板字符串 场景 当String 类型的变量当前时间来显示 ， 可以使用模板字符串或者拼接实现\n需求 打印出我要在具体时吃饭\n语法 String 属性名 = ‘文本内容$变量名’。或者String 变量名 = ‘文本内容${变量名}’\n1 2 3 4 void main(){ String text = \u0026#34;小米\u0026#34;; print(\u0026#34;我的名字叫$text\u0026#34;); } 1 2 3 4 void main(){ text = \u0026#34;我今天要在${DateTimes.now()}睡觉\u0026#34;； print（text）; } ","date":"2026-08-08T08:22:32+08:00","image":"https://yuban11451.github.io/p/dart%E5%92%8C%E5%AD%97%E7%AC%A6%E4%B8%B2/matt-le-SJSpo9hQf7s-unsplash_hu_e4f71bfa63561fff.jpg","permalink":"https://yuban11451.github.io/p/dart%E5%92%8C%E5%AD%97%E7%AC%A6%E4%B8%B2/","title":"Dart和字符串"},{"content":"dart数字类型 - int/num/double 场景 当我们需要一个数字类型的时候，需要使用int/num/double\n区别 int-整数数字 num-可整可小数 double-小数\n1 2 3 4 5 6 7 8 void main() { int friendCount = 5; // 整数 print(\u0026#34;我有 $friendCount 个朋友\u0026#34;); num rest = 1.5; // 可整数可小数 print(\u0026#34;我有 $rest 月的假期\u0026#34;); double appleCount = 1.5; // 小数 print(\u0026#34;我买了 $appleCount 个苹果\u0026#34;); } double 不能直接给int赋值 （把需赋值处理 放最后面）\n1 2 3 friendCount // int appleCount // double friendCount = appleCount.toInt(); // double 转换为 int 进行赋值 num 不能直接给double赋值\n1 2 3 appleCount // double rest // num appleCount = rest.toDouble(); // num 转换为 double 进行赋值 double 可直接能给num赋值\n1 2 3 appleCount // double rest // num rest = appleCount; // double 可以直接给 num 赋值 ","date":"2026-08-06T19:06:35+08:00","image":"https://yuban11451.github.io/p/dart-number-types/matt-le-SJSpo9hQf7s-unsplash_hu_4943803257804a1f.jpg","permalink":"https://yuban11451.github.io/p/dart-number-types/","title":"Dart数字类型"},{"content":" dart变量与常量 dart变量（可被修改） dart变量声明 - var\n关键词 var\n语法 var 变量名 = 值/表达式；\nvoid main(){\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 void main(){ var age = 20; //第一次被赋值之后 类型被确定 后面不许被更改其他类型 print(age); var age = 21; print(age); var age1 = 20 + 21; print(age1); } 20 21 41 2 . 注意\n​ ；结尾\n​ 第一次被赋值之后 类型被确定 后面不许改为其他类型\ndart常量（不可修改） const声明 关键词:const\nconst 属性名 = 值/表达式；\nconst 不允许表达式中有变量存在，必须为常量或者固定值\n1 2 3 4 5 6 void main(){ const num1 = 3.1415926; const num = num1; const length = 2 *num* 10; //圆的周长 1 2 3 4 5 6 7 8 void main(){ const num = 3.1415926; num = 3.14; //修改常量 const length = 2 *num* 10; } final 声明（获取时间） 关键词 final\nfinal 属性词 = 表达式/值\n3.find运行时被初始化 其值设置后不可以被修改\n1 2 3 4 5 void main(){ final time = DateTime.now()；//获取用户电脑时间 运行时为常量 print（time） } ","date":"2026-07-31T20:35:35+08:00","image":"https://yuban11451.github.io/p/dart/matt-le-SJSpo9hQf7s-unsplash_hu_ded898490ded3e5e.jpg","permalink":"https://yuban11451.github.io/p/dart/","title":"Dart"},{"content":"使用surfing需求以及surfing模块介绍 我有很多需要翻到外网的需求\n但是众所周知原因 在大陆使用外网很麻烦\n启用clash 等待节点启动 打开谷歌服务 然后在打开网站app\n有些过于麻烦 且代理软件全局代理会影响国内软件正常使用\n我们可以使用surfing模块解决以上问题\n以下是surfing模块介绍：\nGitMetaio/Surfing: Magisk and KernelSU modules for Clash/mihomo services.\n本项目为 Clash/mihomo、sing-box、v2ray、xray、hysteria 的 Magisk 、 Kernelsu 、 APatch 模块。支持 REDIRECT（仅 TCP）、TPROXY（TCP + UDP）透明代理，支持 TUN（TCP + UDP）亦可 REDIRECT（TCP）+ TUN（UDP） 混合模式代理。\n基于上游为集成式一体服务、开箱即用 此适用以下人群：\n懒癌 小白 项目主题及配置仅围绕 Clash/mihomo.Meta\n准备工作 一部已经解锁并root的安卓手机\n下载好模块zip GitMetaio/Surfing: Magisk and KernelSU modules for Clash/mihomo services.\n3.熟悉并熟练使用root权限与模块加载\n一个代理节点（提前查明自己的节点支持客户端和格式）\n安装模块\nlsp选择系统框架并重启\n重启运行模块\n进入surfing app\n目前我们常用的\n第一栏logo 点击后可以对app就行更新\n第二栏 对代理进行配置\n目前我们代理是没有启动状态 需要我们进行配置\n点击下栏的设置\n配置 点击第二栏的配置覆写\n订阅管理 添加订阅\n复制订阅链接到URL\n保存确定\n按需调试 DNS模式 Fake-IP（假IP）模式（目前最主流） 代理软件不等待真实DNS结果，而是立即返回一个保留IP（如 198.18.x.x）给应用，同时后台去查真实IP。\n优点：极速响应、无DNS污染，且分流只看域名，不需要等IP，效率极高。\n缺点：部分不联网的本地服务或日志记录可能会留下“假IP”。\nRedir-Host（真实IP模式）（传统模式） 应用发起请求时，代理必须先向DNS服务器查询到真实IP，再用这个IP去匹配规则（如IP段）、发起连接。\n· 优点：兼容性最好，所有应用都认真实IP。\n· 缺点：慢（必须等DNS响应）；容易被ISP或GFW污染；且在TUN模式下，可能因为拿不到IP导致请求卡死。\n入站模式 REDIRECT（重定向）：传统Linux方法，靠修改数据包目标地址来劫持流量。仅支持TCP（不支持UDP，比如游戏语音、DNS会失效），且会丢失原始目标IP，可能导致分流不准。优点是资源占用极低。\nTPROXY（透明代理）：REDIRECT的升级版。完美支持TCP+UDP，且不修改数据包头部，能完整保留原始目标IP，分流最精准。对游戏、VoIP等UDP应用最友好，是目前透明代理的最优解。\nTUN（虚拟网卡）：在系统创建虚拟网卡，从更底层接管所有IP层数据（TCP/UDP/ICMP）。兼容性最强（连Ping都能代理），但性能开销最大，且在全局模式下最容易产生“意外流量”导致堆钱。\n“MIXED:REDIRECT TCP + TUN UDP” 是混合模式——即TCP走REDIRECT，UDP走TUN。兼顾了TCP的低延迟和UDP的兼容性，但在IP纯净度上不如纯TPROXY。\n纯TUN：所有流量（TCP+UDP+ICMP）全部强制塞进TUN虚拟网卡。系统层面完全感知不到代理，兼容性最强（连Ping命令都能走代理），且分流只看域名，极其精准。\nuser-Agent 影响代理软件“自己”对外访问时的身份。\n看机场支持客户端\nclashwindows支持度更广\nclashMetaForAndroid更新一点\n配置完成右上角保存 应用过滤 tun过滤 当你开启混合模式“MIXED:REDIRECT TCP + TUN UDP”或纯tun模式需配置 include与exclude 理解为白名单与黑名单\n​\n当前模式\u0026mdash;-黑名单白名单 顾名思义黑名单白名单过滤代理\n为了更好的环境我一般选择黑名单\n但可能会遇到电话打不通 和短信接受延迟\n黑名单问题解决方案 https://xice.cx/posts/SurfingIssueOnSamsung/\n配置完成右上角保存 启动服务 返回主菜单\n点击启动服务\nend 冲浪\n","date":"2026-07-17T19:11:43+08:00","image":"https://yuban11451.github.io/p/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E6%9B%B4%E4%BC%98%E9%9B%85%E8%AE%BF%E9%97%AE%E5%A4%96%E7%BD%91/137483887_p0_master1200_hu_9e99566d7b73d957.jpg","permalink":"https://yuban11451.github.io/p/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E6%9B%B4%E4%BC%98%E9%9B%85%E8%AE%BF%E9%97%AE%E5%A4%96%E7%BD%91/","title":"移动端更优雅访问外网"},{"content":"notebookml使用心得 NotebookLM 的故事始于 *2023 年 5 月的 Google I/O 大会*，当时它以“Project Tailwind”之名首次亮相。 这款最初被定义为“主要是为学生设计的工具”的原型产品，其诞生初衷是“重新构想 AI 时代的笔记软件”。 该项目由知名科普作家 Steven Johnson 和产品经理 Raiza Martin 共同领导，旨在利用强大的语言模型重新定义笔记软件的核心形态。\n我在悠然推荐下接触这款软件 对我自学有很大帮助 目前我的自学成果在 新建标签页 展示\n准备阶段： 1.一个Google账号\n​ 2. 魔法\n​ 3. 一双手，聪明的脑子，和细心的眼睛\n注 ：Google账号 我这边建议推荐购买google（淘宝拼多多都有 目前国内86账户风控严重 注册就封禁）\n魔法 不做推荐 代理地区建议台湾 美国 新加坡 *（不要选香港 审核严重无法使用）*\n开启魔法（注意地区选择） 打开 新建标签页 登录谷歌账号（移动端打开谷歌服务 play商店下载 这里只做pc网页端使用 但大体类似）\n点击创建笔记\n按照选项你可以选择你所需要学习对象的文件 网站（注 如b站或者linux.do论坛无法爬取\n你可以去自行复制B站视频字幕论坛网站内容选择复制文字粘贴解决\n这里不再赘述）\n使用案例 比如现在我在自学python 我使用自学网站为简介 - Python教程 - 廖雪峰的官方网站\n首先复制链接\n复制链接 函数的参数 - Python教程 - 廖雪峰的官方网站\n打开notebooklm网站 将链接复制\n点击创建\n有三个页面：\n添加来源\nai对话框\nstudio\n首先我们自学 不是一上来就库库点studio页面全部选一遍\n首先我们目标是自学 先从学开始\n先仔细研读一遍网页网站\n这篇文章\n我会发现有一段不懂\ndef power(x, n):\n​ s = 1\n​ while n \u0026gt; 0:\n​ n = n - 1\n​ s = s * x\n​ return s\n这行代码为什么要s = 1\n这时候你可以去问notebookml\n打开对话界面 将这行代码复制进对话框\nnotebooklm会给出解释 *仔细读并理解给出的解释：*\n这段代码是用来计算 *$x$ 的 $n$ 次方*（即 $x^n$）的。\n在大白话里，s = 1 的意义可以从以下几个方面来理解：\n*乘法的“起步价”：* 我们要算的是连乘（把 $n$ 个 $x$ 乘在一起）。在数学里，乘法的初始值必须是 *1*。就像你存钱一样，如果是计算翻倍，手里得先有“1块钱”作为基数，才能翻成2块、4块。\n*为什么不能是 0？* 如果 s = 0，那么在循环里执行 s = s * x 时，无论 $x$ 是多少，结果永远是 0 * x = 0。这样不管循环多少次，最后算出来的结果都是 0，这个函数就废了。\n*对应数学逻辑：*\n当 $n = 0$ 时（即 $x^0$），循环一次都不执行，函数直接返回 s 的初始值 *1*。根据数学定义，任何非零数的 0 次方都等于 1，这刚好对上了。\n当 $n = 1$ 时，循环执行一次，s = 1 * x，结果就是 $x$ 本身。\n当 $n = 2$ 时，循环执行两次，s 变成了 1 * x * x，也就是 $x^2$。\n*总结一下：* s 在这里扮演的是一个“累乘器”的角色，它负责把每次循环里的 $x$ 给“攒”起来。为了不影响乘法的结果，必须用 *1* 作为初始值来开始累加。\n如果你还无法理解 可以让notebooklm大白话解释\n如果还是理解不了 选出不理解的地方提出问题\n如此反复知道理解为止\n*然后如何确定你确实理解了？*\n你可以把你理解的话丢给ai进行确认\n当然你想更深入理解 你可以让ai出题\n给我出类似的题目进行测验\n你可以加深自己对这个知识点理解\n*模式框架就是：*\n*选出你不理解的地方*\n*说出你的不理解地方*\nps：把所有的东西都理解透了后 我的建议按照网站的代码重新敲一遍加深理解\n最后收尾阶段\n点击studio 选择闪卡和测验进行测试\n（闪卡我推荐如公交地铁这种短时间空闲时间进行短时记忆与复习\n大部分时间我推荐使用测验进行收尾工作\n这里我点击测验\n如果不太明白点击提示\n选择错误选项\nnotebooklm会给你解释\n如果还是不太理解 选择解释跳转对话界面给出详细解释\n还是不理解 *按照上文方法继续*\n做完这一切后 我会写一篇博客网站作为学习笔记\n随时可以访问博客复习\n这是我目前使用notebookml使用心得与体会\n*自学还是需要个人努力 而不是更好的工具*\n当然可能很肤浅 欢迎各位补充\nsee you\n","date":"2026-07-05T18:12:10+08:00","image":"https://yuban11451.github.io/p/notebookml%E4%B8%AA%E4%BA%BA%E4%BD%BF%E7%94%A8%E7%BB%8F%E9%AA%8C/matt-le-SJSpo9hQf7s-unsplash_hu_82fcb43a9e3b602f.jpg","permalink":"https://yuban11451.github.io/p/notebookml%E4%B8%AA%E4%BA%BA%E4%BD%BF%E7%94%A8%E7%BB%8F%E9%AA%8C/","title":"Notebookml个人使用经验"},{"content":"函数 直接从Python的官方网站查看文档，也可以在交互式命令行通过help(abs)查看abs函数的帮助信息\n函数名 功能说明 备注 abs() 求绝对值 接收 1 个参数；参数数量或类型错误会报 TypeError。 max() 返回最大值 可以接收任意多个参数。 int() 转换为整数 将其他数据类型（如字符串或浮点数）转换为整数。 float() 转换为浮点数 将其他数据类型转换为小数形式。* str() 转换为字符串 将其他数据类型转换为文本字符串形式。* bool() 转换为布尔值 将其他数据类型转换为 True 或 False。* hex() 转换为十六进制 将一个整数转换成十六进制表示的字符串。 help() 查看帮助信息 在交互式命令行中使用，例如 help(abs)。 说明：\n带有 * 标记的函数（float, str, bool）虽然在当前的文本片段中未详细展开，但它们与 int() 共同构成了 Python 的基本类型转换工具箱，符合来源中提到的“数据类型转换函数”这一分类。\n函数名作为引用：请记住，表格中的这些名称（如 abs、int）本质上都是指向函数对象的引用，你可以像执行 f = abs 一样为它们起别名。\n调用 abs 函数(绝对值) 1 2 3 4 5 6 7 8 9 a = abs(100) print(a) 100 a = abs(-20) print(a) 20 a = abs(12.34) print(a) 12.34 调用函数的时候，如果传入的参数数量不对，会报TypeError的错误，并且Python会明确地告诉你：abs()有且仅有1个参数，但给出了两个：\n1 2 3 4 abs(1, 2) Traceback (most recent call last): File \u0026#34;\u0026lt;stdin\u0026gt;\u0026#34;, line 1, in \u0026lt;module\u0026gt; TypeError: abs() takes exactly one argument (2 given) 如果传入的参数数量是对的，但参数类型不能被函数所接受，也会报TypeError的错误，并且给出错误信息：str是错误的参数类型：\n1 2 3 4 abs(\u0026#39;a\u0026#39;) Traceback (most recent call last): File \u0026#34;\u0026lt;stdin\u0026gt;\u0026#34;, line 1, in \u0026lt;module\u0026gt; TypeError: bad operand type for abs(): \u0026#39;str\u0026#39; 2.int()整数\n1 2 3 4 5 6 a = int(\u0026#39;123\u0026#39;) print(a) 123 a = int(12.34) print(a) 12 3.max函数 选取最大值\n1 2 3 4 5 6 a = max(1,2) print(a) 2 a = (2,3,4,5,6,-1,-2) print(a) 6 float 浮点数 1 2 3 a = float(12.34) print(a) 12.34 str 数字转换为文本 1 2 3 4 5 6 a = str(1.23) print(a) \u0026#39;12.34\u0026#39; a = str(100) print(a) \u0026#39;100\u0026#39; bool() 布尔值 1 2 3 4 bool(1) ture bool(\u0026#39;\u0026#39;) false 7.hex()整数 转换为十六进制表示的字符串\n1 2 3 4 5 6 n1 = hex(255) print(n1) 0xe1 n2 = hex(1000) print(n2) 0x3e8 在 Python 中，函数被视为一种对象。函数名（比如 abs）并不是函数本身，而是一个变量，它存储了指向该函数对象的内存地址，也就是所谓的“引用”。\n可以把它想象成一个标签：\n把函数名赋给变量 既然函数名只是一个变量（标签），那么你当然可以把这个变量的值赋给另一个变量。\n执行 a = abs 时，你并不是在运行函数，而是把 abs 指向的那个“机器地址”也告诉了变量 a。现在，标签 abs 和标签 a 都贴在了同一个“绝对值计算”机器上。\n1 2 3 \u0026gt;\u0026gt;\u0026gt; a = abs # 变量a指向abs函数 \u0026gt;\u0026gt;\u0026gt; a(-1) # 所以也可以通过a调用abs函数 1 ","date":"2026-06-29T20:08:17+08:00","image":"https://yuban11451.github.io/p/%E8%B0%83%E7%94%A8%E5%87%BD%E6%95%B0/matt-le-SJSpo9hQf7s-unsplash_hu_47bdebdb4d752ed4.jpg","permalink":"https://yuban11451.github.io/p/%E8%B0%83%E7%94%A8%E5%87%BD%E6%95%B0/","title":"调用函数"},{"content":"dict Python内置了字典：dict的支持，dict全称dictionary，在其他语言中也称为map，使用键-值（key-value）存储，具有极快的查找速度。\n1 2 3 d = {\u0026#39;Michael:95,\u0026#39;BOb\u0026#39;:75,\u0026#39;Tracy\u0026#39;:85} d[\u0026#39;Michael\u0026#39;] 95 为什么dict查找速度这么快？因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字，我们要查某一个字，一个办法是把字典从第一页往后翻，直到找到我们想要的字为止，这种方法就是在list中查找元素的方法，list越大，查找越慢。\n第二种方法是先在字典的索引表里（比如部首表）查这个字对应的页码，然后直接翻到该页，找到这个字。无论找哪个字，这种查找速度都非常快，不会随着字典大小的增加而变慢。\ndict就是第二种实现方式，给定一个名字，比如'Michael'，dict在内部就可以直接计算出Michael对应的存放成绩的“页码”，也就是95这个数字存放的内存地址，直接取出来，所以速度非常快。\n把数据放入dict的方法，除了初始化时指定外，还可以通过key放入:\n1 2 3 d[\u0026#39;Adam\u0026#39;] = 67 print(d[\u0026#39;Adma\u0026#39;]) 67 由于一个key只能对应一个value，所以，多次对一个key放入value，后面的值会把前面的值冲掉：\n1 2 d = [\u0026#39;jack\u0026#39;] = 90 print(d[\u0026#39;jack\u0026#39;]) 通过in判断key是否存在\n1 2 \u0026#39;Thomas\u0026#39; in d false 二是通过dict提供的get()方法，如果key不存在，可以返回None，或者自己指定的value:\n1 2 3 d.get(\u0026#39;Thomas\u0026#39;) d.get(\u0026#39;Thomas\u0026#39;,-1) -1 要删除一个key，用pop(key)方法，对应的value也会从dict中删除：\n1 2 3 4 d.pop(\u0026#39;BOb\u0026#39;) 75 print(d) {\u0026#39;Michael\u0026#39;: 95, \u0026#39;Tracy\u0026#39;: 85} dict内部存放的顺序和key放入的顺序是没有关系的。\n和list比较，dict有以下几个特点：\n查找和插入的速度极快，不会随着key的增加而变慢； 需要占用大量的内存，内存浪费多。 而list相反：\n查找和插入的时间随着元素的增加而增加； 占用空间小，浪费内存很少。 dict是用空间来换取时间的一种方法\n第一条就是dict的key必须是不可变对象\nset set和dict类似，也是一组key的集合，但不存储value。由于key不能重复，所以，在set中，没有重复的key\n1 2 3 s = {1,2,3} print(s) {1,2,3} 通过add(key)方法可以添加元素到set中，可以重复添加，但不会有效果\n1 2 3 4 5 6 s.add(4) print(S) {1,2,3,4} s.add(4) print(s) {1,2,3,4} 通过remove(key)方法可以删除元素\n注：无法使用s.pop\n1 2 3 s.remove(4) s {1,2,3} set可以看成数学意义上的无序和无重复元素的集合，因此，两个set可以做数学意义上的交集、并集等操作：\n1 2 3 4 5 6 s1 = {1,2,3} s2 = {2,3,4} s1 \u0026amp; s2 {2,3} s1|s2 {1,2,3,4} set和dict的唯一区别仅在于没有存储对应的value，但是，set的原理和dict一样，所以，同样不可以放入可变对象，因为无法判断两个可变对象是否相等\n为了保证 dict 和 set 能快速、准确地找到数据，它们要求钥匙（key）必须是绝对不可变**的 。\n整理了关于 dict 和 set 的详细对比及操作表格： 1. dict 与 set 的核心概念对比 这两者在 Python 中都是非常高效的数据结构，但用途有所不同：\n特性 dict (字典) set (集合) 定义 使用 键-值 (key-value) 存储，具有极快的查找速度 [1]。 一组 key 的集合，但不存储 value [2]。 重复性 一个 key 只能对应一个 value，多次赋值会覆盖旧值 [3]。 key 不能重复，重复元素会自动被过滤 [2, 4]。 有序性 内部存放顺序和 key 放入的顺序无关 [2]。 无序，显示的顺序不代表内部实际顺序 [4]。 对 Key 的要求 必须是 不可变对象（如字符串、整数）[2]。 同样必须是 不可变对象，不能放入 list 等 [4]。 主要用途 快速根据 key 查找对应的 value [1]。 数学意义上的去重、交集、并集运算 [4]。 2. dict 与 set 的常用操作方法 下表列出了文中提到的主要操作方式：\n操作类型 dict (字典) set (集合) 初始化/创建 d = {'Michael': 95, 'Bob': 75} [1] s = {1, 2, 3} 或 set([5-7]) [2, 4] 添加/修改 d['Adam'] = 67 [3] s.add(4) [4] 查找/判断是否存在 key in d 或 d.get(key) [3] key in s (原理同 dict) 删除元素 d.pop(key) [3] s.remove(key) [4] 特殊运算 —— 交集 s1 \u0026amp; s2，并集 `s1 3. dict 与 list 的性能对比（空间换时间） 源码中明确对比了 dict（哈希表原理）和 list（顺序查找）的差异 [2]：\n特性 dict list 查找和插入速度 极快，不会随 key 增加而变慢 [2]。 随着元素增加，耗时越来越长 [2]。 内存占用 较大，需要占用大量内存，浪费多 [2]。 占用空间小，浪费内存很少 [2]。 结论 用空间换取时间的方法 [2]。 适合数据量小、对内存敏感的场景。 💡 重要提醒：关于“不可变对象” 无论是 dict 的 key 还是 set 的元素，都必须使用 不可变对象 [2, 4]。\n可以放入： 字符串 (str)、整数 (int)、全由不可变对象组成的元组 (tuple) [2, 8]。\n不可以放入： 列表 (list)，因为它是可变的，无法计算固定的哈希值，会导致报错 [2, 4]。\n在 Python 中，花括号 {} 和圆括号 () 分别代表了不同的数据结构，其核心区别在于功能用途和可变性： 1. 花括号 {}：用于 dict 和 set 在源码中，花括号主要有两种用途：\ndict（字典）： 采用 “键-值对”（key-value） 的形式存储数据 [1]。 写法： d = {'Michael': 95, 'Bob': 75} [1, 2]。 特点： 查找速度极快，不会随元素增加而变慢，但占用内存较多 [1, 3]。 set（集合）： 是一组 key 的集合，但不存储 value [3]。 写法： s = {1, 2, 3} [3]。 特点： 元素不重复（自动过滤重复项），且内部元素是无序的 [4]。 2. 圆括号 ()：用于 tuple 圆括号在源码中被用来表示 tuple（元组）。\ntuple（元组）： 一种不可变的有序列表 [5]。 写法： t = (1, 2, 3) [5]。 特点： 一旦初始化就不能修改。因为它是不可变的，所以安全性更高 [5]。 3. 核心区别汇总 特性 花括号 {} (dict/set) 圆括号 () (tuple) 数据类型 dict 或 set [1, 3] tuple [5] 存储内容 dict 存键值对，set 只存键 [1, 3] 存储有序的元素序列 [5] 重复性 key 不允许重复（set 会去重）[3, 4] 允许元素重复 有序性 无序（存放顺序与放入顺序无关）[3, 4] 有序 [5] 可变性 dict 和 set 本身是可变的（可添加删除）[2, 4] tuple 是不可变对象 [5] ","date":"2026-06-28T23:30:05+08:00","image":"https://yuban11451.github.io/p/dict%E5%92%8Cset/matt-le-SJSpo9hQf7s-unsplash_hu_72215e6682ed02cb.jpg","permalink":"https://yuban11451.github.io/p/dict%E5%92%8Cset/","title":"Dict和set"},{"content":"循环 为了让计算机能计算成千上万次的重复运算，我们就需要循环语句\n1 2 3 4 5 6 7 names = [\u0026#39;Michael,\u0026#39;Bob\u0026#39;,\u0026#39;tracy\u0026#39;] for name in name print(name) Michael Bob Tracy ​ 其中 for name in 中表示 ‘ name \u0026lsquo;元素中每一个元素\n​ 计算1-10的整数之和 sum变量做累加\n1 2 3 4 sum = 0 for x in [1,2,3,4,5,6,7,8,9,10]: sum = sum + x print(sum) range()函数，可以生成一个整数序列，再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数\n1 2 list(range(5)) [0,1,2,3,4] while循环 while循环，只要条件满足，就不断循环，条件不满足时退出循环。比如我们要计算100以内所有奇数之和，可以用while循环实现\n1 2 3 4 5 6 7 sum = 0 n = 99 while n \u0026gt; 0: sum = sum + n n = n - 2 print(sum) 循环依次对list中的每个名字打印出Hello, xxx!\n1 2 3 L = [\u0026#39;Bart\u0026#39;, \u0026#39;Lisa\u0026#39;, \u0026#39;Adam\u0026#39;] for L in name print(f\u0026#39;hello,{name}!) 关于f (f 是 format（格式化） 的缩写。\nf'Hello, {name}!' 是 Python 3.6 版本引入的一种语法，正式名称叫 f-string（格式化字符串字面量）。\n它的核心作用是：在字符串中直接嵌入变量或表达式，而不需要像之前那样用加号（+）拼接。\n1. 具体含义拆解 f：告诉 Python 解释器，这是一个“格式化字符串”。 '...'：字符串内容。 {name}：花括号 {} 里面的内容会被当作普通的 Python 代码执行，并将计算结果替换到字符串中。 2. 对比老方法（为什么用 f） 写法 代码 特点 拼接法 'Hello, ' + name + '!' 加号多，容易漏掉空格，较繁琐。 传统格式化 'Hello, %s!' % name 需要记占位符（%s），变量多时容易对错位置。 f-string（你问的） f'Hello, {name}!' 最直观，变量写在哪就显示在哪，一目了然。 3. 进阶用法（花括号里不仅能放变量） 因为 {} 内会执行 Python 代码，所以你可以直接写运算或调用方法：\n1 2 3 4 5 6 7 8 9 # 直接做运算 print(f\u0026#39;明年我就 {18 + 1} 岁了\u0026#39;) # 输出：明年我就 19 岁了 # 调用字符串方法 name = \u0026#39;adam\u0026#39; print(f\u0026#39;首字母大写：{name.capitalize()}\u0026#39;) # 输出：首字母大写：Adam # 调用函数 print(f\u0026#39;列表长度是 {len([1,2,3])}\u0026#39;) # 输出：列表长度是 3 ⚠️ 注意事项 f 必须紧贴在引号前面，中间不能有空格（f 'Hello' 会报错）。 如果字符串内部需要显示花括号本身（比如字典），需要写双花括号 {{ 和 }}： 1 print(f\u0026#39;字典显示：{{\u0026#34;key\u0026#34;: 1}}\u0026#39;) # 输出：字典显示：{\u0026#34;key\u0026#34;: 1} 这种写法是现在 Python 最推荐、最主流的字符串格式化方式，既清晰又高效（执行速度比拼接和 % 格式化都快）。)\n1 2 3 L = [\u0026#39;Bart\u0026#39;, \u0026#39;Lisa\u0026#39;, \u0026#39;Adam\u0026#39;] for L in name print(\u0026#39;Hello,\u0026#39; + name + \u0026#39;!\u0026#39;) continue continue语句跳过某些循环\n1 2 3 4 5 6 n = 0 while n \u0026lt; 10: n = n + 1 if n % 2 == 0:# 如果n是偶数，执行continue语句 continue # continue语句会直接继续下一轮循环，后续的print()语句不会执行 print(n) break 1 2 3 4 5 6 7 n = 1 while n \u0026lt;= 100 # 只要 n ≤ 100 就一直循环 if n \u0026gt; 10 :# 当n = 11时，条件满足，执行break语句 break # 立刻跳出整个 while 循环（不再执行后续代码） print(n) # 打印当前的 n n = n + 1 # n 增加 1 print(\u0026#39;end\u0026#39;) # 循环结束后打印 END 逐轮执行流程（盯着 print 看） 第1轮循环：执行到 print(n) → 此时 n=1，屏幕显示 1 → 接着执行 n=n+1，n 变成 2（但屏幕没反应）。 第2轮循环：再次执行到 print(n) → 此时 n 已经是 2，屏幕显示 2 → 接着执行 n=n+1，n 变成 3。 第3轮循环：再次执行到 print(n) → 此时 n 已经是 3，屏幕显示 3 .. ","date":"2026-06-27T01:20:39+08:00","image":"https://yuban11451.github.io/p/%E5%BE%AA%E7%8E%AF/matt-le-SJSpo9hQf7s-unsplash_hu_5e55fe861308e0a4.jpg","permalink":"https://yuban11451.github.io/p/%E5%BE%AA%E7%8E%AF/","title":"循环"},{"content":"数据类型与变量 变量名第一个数不能为数学\n12356\u0026hellip;\n解决特殊符号\n1 2 3 4 5 6 7 8 9 s2 = \u0026#39;hello,\\\u0026#39;adam\\\u0026#39;\u0026#39; print(s2) hello,\u0026#39;adam\u0026#39; 或者这样解决: a = \u0026#34;\u0026#39;hello world\u0026#39;\u0026#34; print(a) \u0026gt; \u0026#39;hello world\u0026#39; 布尔法则 1 2 3 4 5 a = Ture b = False print(a and b) #False（又一个假取假） print(a or b) #Ture（一个为真为真） print（not a） #False（取反） 变相指向\n1 2 3 4 5 6 a = \u0026#39;ABC\u0026#39; b = a a = \u0026#39;XYZ\u0026#39; print(b) \u0026gt; abc a = \u0026lsquo;abc\u0026rsquo;\n​ b = a\n​\n​ a = XYZ\n​ ​ b = ABC\n# 数据算数 / = ➗\n10/3 3.3333333333333335 // = 除法保留整数\n1 2 10 // 3 3 % = 除法保留余数\n1 2 \u0026gt;\u0026gt;\u0026gt; 10 % 3 1 ","date":"2026-06-19T23:34:17+08:00","image":"https://yuban11451.github.io/p/%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/matt-le-SJSpo9hQf7s-unsplash_hu_35a44e1861d98c26.jpg","permalink":"https://yuban11451.github.io/p/%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/","title":"数据类型"},{"content":"针对若干个变量匹配 ​ 可以使用 mate 语句\n1 2 3 4 5 6 7 8 9 socer = \u0026#39;b\u0026#39; if socer = \u0026#39;a\u0026#39; print(\u0026#39;socer is b\u0026#39;) elif socer = \u0026#39;b\u0026#39; print(\u0026#39;socer is b\u0026#39;) elif socer = \u0026#39;c\u0026#39; print(\u0026#39;socer is c\u0026#39;) else: print(\u0026#39;linalid socer.\u0026#39;) 如果使用match语法 代码更易读\n1 2 3 4 5 6 7 8 9 10 socer = \u0026#39;a\u0026#39; match socer: case \u0026#39;a\u0026#39; print(\u0026#39;score is a\u0026#39;) case \u0026#39;b\u0026#39; print(\u0026#39;score is b\u0026#39;) case \u0026#39;c\u0026#39; print(\u0026#39;score is c\u0026#39;) case_: 表示匹配条件 print(\u0026#39;socer is ???\u0026#39;) 针对若干复杂条件:\n1 2 3 4 5 6 7 8 9 10 11 12 13 age = 15 match age: case x if x \u0026lt; 10: print(f\u0026#39;\u0026lt; 10 years old: {x}\u0026#39;) #范围比较 case 10: print(\u0026#39;10 years old.\u0026#39;) #匹配 case 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18: print(\u0026#39;11~18 years old.\u0026#39;) case 19: print(\u0026#39;19 years old.\u0026#39;) case _: print(\u0026#39;not sure.\u0026#39;) match语句还可以匹配列表是输出，功能非常强大\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 args = [\u0026#39;gcc\u0026#39;, \u0026#39;hello.c\u0026#39;, \u0026#39;world.c\u0026#39;] # args = [\u0026#39;clean\u0026#39;] # args = [\u0026#39;gcc\u0026#39;] match args: # 如果仅出现gcc，报错: case [\u0026#39;gcc\u0026#39;]: print(\u0026#39;gcc: missing source file(s).\u0026#39;) # 出现gcc，且至少指定了一个文件: case [\u0026#39;gcc\u0026#39;, file1, *files]: print(\u0026#39;gcc compile: \u0026#39; + file1 + \u0026#39;, \u0026#39; + \u0026#39;, \u0026#39;.join(files)) # 仅出现clean: case [\u0026#39;clean\u0026#39;]: print(\u0026#39;clean\u0026#39;) case _: print(\u0026#39;invalid command.\u0026#39;) 易错项 case [\u0026lsquo;gcc\u0026rsquo;, file1, *files]\n*[gcc 第一个文件 剩余文件 ]\n如果任何一个case没有匹配成功 程序会跳过这个match\ncase [\u0026lsquo;clean\u0026rsquo;]: 这种写法是精确匹配，要求列表里有且仅有一个元素且内容为 \u0026lsquo;clean\u0026rsquo;。\ncase [\u0026lsquo;clean\u0026rsquo;, *files]: 这种写法表示第一个是 \u0026lsquo;clean\u0026rsquo;，后面可以带零个或多个其他 内容。\n如果数据是 [\u0026lsquo;clean\u0026rsquo;]，最精准的匹配方式是不带星号的 case [\u0026lsquo;clean\u0026rsquo;]\n","date":"2026-06-18T19:41:02+08:00","image":"https://yuban11451.github.io/p/%E6%A8%A1%E5%BC%8F%E5%8C%B9%E9%85%8D/helena-hertz-wWZzXlDpMog-unsplash.jpg_hu_f47d559157815801.png","permalink":"https://yuban11451.github.io/p/%E6%A8%A1%E5%BC%8F%E5%8C%B9%E9%85%8D/","title":"模式匹配"},{"content":"条件判断 1.判断 ​ 注意添加 ：\n1 2 3 age = 20 if age \u0026gt;= 18: prnit(\u0026#39;adult\u0026#39;) 1 2 3 4 5 age = 3 if age \u0026gt;= 18: print(\u0026#39;adult\u0026#39;) else: print(\u0026#39;teenager\u0026#39;) 2. 多次判断 age \u0026gt;= 3 if age \u0026gt;= 18: print('adult') elif age \u0026gt;= 6: print('teenager') else: print('kid') ​ 其中elif是else if的缩写\n1 2 3 4 5 6 7 8 9 if \u0026lt;条件判断1\u0026gt;: \u0026lt;执行1\u0026gt; elif \u0026lt;条件判断2\u0026gt;: \u0026lt;执行2\u0026gt; elif \u0026lt;条件判断3\u0026gt;: \u0026lt;执行3\u0026gt; else: \u0026lt;执行4\u0026gt; ​ “先到先得”原则：在 if\u0026hellip;elif\u0026hellip;else 结构中，程序非常“懒”，只要碰到第一个符合条件的选项，它做完就收工了，后面的哪怕也符合条件，它也不会再看\n​ else 是最后的港湾：当所有条件都不成立时，程序才会去找 else。\n3.str 与 int 1 2 3 4 5 birth = input(\u0026#39;birth: \u0026#39;) if birth \u0026lt; 2000: print(\u0026#39;00前\u0026#39;) else: print(\u0026#39;00后\u0026#39;) ​ 报错\nTraceback (most recent call last): File \u0026ldquo;\u0026rdquo;, line 1, in TypeError: unorderable types: str() \u0026gt; int()\n​ 因为input 返回数值为str str不能与整数比较 需要转换为int\n1 2 3 4 5 6 s = input(\u0026#39;birth: \u0026#39;) birth = int(s) if birth \u0026lt; 2000: print(\u0026#39;00前\u0026#39;) else: print(\u0026#39;00后\u0026#39;) ​ 类型转换的风险：用 int() 转换 input() 的内容时，一定要确保用户输入的是数字，否则程序会“罢工”报错。\n","date":"2026-06-16T17:45:57+08:00","image":"https://yuban11451.github.io/p/if/helena-hertz-wWZzXlDpMog-unsplash.jpg_hu_8f681f815a5cbd8d.png","permalink":"https://yuban11451.github.io/p/if/","title":"If"},{"content":"list 1.列表 有序集合 可随时添加和删除其中元素\n1 2 3 \u0026gt;\u0026gt;\u0026gt; classmates = [\u0026#39;Michael\u0026#39;, \u0026#39;Bob\u0026#39;, \u0026#39;Tracy\u0026#39;] \u0026gt;\u0026gt;\u0026gt; classmates \u0026gt;\u0026gt;\u0026gt; [\u0026#39;Michael\u0026#39;, \u0026#39;Bob\u0026#39;, \u0026#39;Tracy\u0026#39;] len() 获取list元素个数\n1 2 \u0026gt;\u0026gt;\u0026gt;len(classamtes) \u0026gt;\u0026gt;3 **索引元素 ** ​ 0开始\n1 2 3 4 5 6 classmates[0] \u0026#39;Michael\u0026#39; classmates[1] \u0026#39;Bob\u0026#39; classmate[2] \u0026#39;Tracy\u0026#39; 1 2 3 4 classmates[-2] \u0026#39;Bob\u0026#39; classmates[-3] \u0026#39;Michael\u0026#39; 超出范围\n1 2 3 Traceback (most recent call last): File \u0026#34;\u0026lt;stdin\u0026gt;\u0026#34;, line 1, in \u0026lt;module\u0026gt; IndexError: list index out of range list 添加 添加后缀元素\n1 2 3 classmates.append(\u0026#39;Adma\u0026#39;) classmates [\u0026#39;Michael\u0026#39;,\u0026#39;Bob\u0026#39;,\u0026#39;Tracy\u0026#39;,\u0026#39;Adam\u0026#39;] 元素插定指定位置 选择位置 原元素位置推后一位\n1 2 3 classamtes.insert(1,\u0026#39;Jack\u0026#39;) classmates [\u0026#39;Michael\u0026#39;,\u0026#39;Jack\u0026#39;,\u0026#39;Bob\u0026#39;,\u0026#39;Tracy\u0026#39;,\u0026#39;Adam\u0026#39;] 删除元素 pop（） ​ 单独删除后缀 pop（）\n1 2 3 4 classmates.pop() Adam classmates [\u0026#39;Michael\u0026#39;,\u0026#39;Jack\u0026#39;,\u0026#39;Bob\u0026#39;,\u0026#39;Tracy\u0026#39;] 指定位置 pop （i）\n1 2 3 4 classmates.pop(1) \u0026#39;Jack\u0026#39; classmates [\u0026#39;Micheal\u0026#39;,\u0026#39;Bob\u0026#39;,\u0026#39;Tracy\u0026#39;] 替换元素\n1 2 3 classmates[1] = \u0026#39;Sarah\u0026#39; classmates [\u0026#39;Michael\u0026#39;,\u0026#39;Sarah\u0026#39;,Tracy\u0026#39;] 元素可以不同\n1 L= [\u0026#39;apple\u0026#39;,123,ture] list 也可以套入list\ns = ['python',['asp','php'],'scheme'] ​ list 里面无元素\nL = [] len(L) 0 # tuple tupe 与 list 非常相似 tupe 无法修改（更加安全）\nt = (1,2) t (1,2) 1 2 3 t = () t () ​\n1 2 3 t = (1) t 1 加上括号 避免误认为数学括号\nt = (1,) (1,) ​\nt =('a','b',['A','B']) t[2][0] = 'x' t[2][1] = 'y' ('a','b',['x','y']) ","date":"2026-06-14T14:53:09+08:00","image":"https://yuban11451.github.io/p/list/helena-hertz-wWZzXlDpMog-unsplash.jpg_hu_e31b1ba522b8aad4.png","permalink":"https://yuban11451.github.io/p/list/","title":"List"},{"content":"hello world ","date":"2026-01-17T17:05:17+08:00","permalink":"https://yuban11451.github.io/p/myfirstblog/","title":"Myfirstblog"},{"content":"正文测试 而这些并不是完全重要，更加重要的问题是， 带着这些问题，我们来审视一下学生会退会。 既然如何， 对我个人而言，学生会退会不仅仅是一个重大的事件，还可能会改变我的人生。 我们不得不面对一个非常尴尬的事实，那就是， 可是，即使是这样，学生会退会的出现仍然代表了一定的意义。 学生会退会，发生了会如何，不发生又会如何。 经过上述讨论， 生活中，若学生会退会出现了，我们就不得不考虑它出现了的事实。 学生会退会，到底应该如何实现。 这样看来， 在这种困难的抉择下，本人思来想去，寝食难安。 对我个人而言，学生会退会不仅仅是一个重大的事件，还可能会改变我的人生。 就我个人来说，学生会退会对我的意义，不能不说非常重大。 莎士比亚曾经提到过，人的一生是短的，但如果卑劣地过这一生，就太长了。这似乎解答了我的疑惑。 莫扎特说过一句富有哲理的话，谁和我一样用功，谁就会和我一样成功。这启发了我， 对我个人而言，学生会退会不仅仅是一个重大的事件，还可能会改变我的人生。 学生会退会，到底应该如何实现。 一般来说， 从这个角度来看， 这种事实对本人来说意义重大，相信对这个世界也是有一定意义的。 在这种困难的抉择下，本人思来想去，寝食难安。 了解清楚学生会退会到底是一种怎么样的存在，是解决一切问题的关键。 一般来说， 生活中，若学生会退会出现了，我们就不得不考虑它出现了的事实。 问题的关键究竟为何？ 而这些并不是完全重要，更加重要的问题是。\n奥斯特洛夫斯基曾经说过，共同的事业，共同的斗争，可以使人们产生忍受一切的力量。　带着这句话，我们还要更加慎重的审视这个问题： 一般来讲，我们都必须务必慎重的考虑考虑。 既然如此， 这种事实对本人来说意义重大，相信对这个世界也是有一定意义的。 带着这些问题，我们来审视一下学生会退会。 我认为， 我认为， 在这种困难的抉择下，本人思来想去，寝食难安。 问题的关键究竟为何？ 每个人都不得不面对这些问题。 在面对这种问题时， 要想清楚，学生会退会，到底是一种怎么样的存在。 我认为， 既然如此， 每个人都不得不面对这些问题。 在面对这种问题时， 那么， 我认为， 学生会退会因何而发生。\n引用 思念是最暖的忧伤像一双翅膀\n让我停不了飞不远在过往游荡\n不告而别的你 就算为了我着想\n这么沉痛的呵护 我怎么能翱翔\n最暖的憂傷 - 田馥甄\n图片 1 2 3 ![Photo by Florian Klauer on Unsplash](florian-klauer-nptLmg6jqDo-unsplash.jpg) ![Photo by Luca Bravo on Unsplash](luca-bravo-alS7ewQ41M8-unsplash.jpg) ![Photo by Helena Hertz on Unsplash](helena-hertz-wWZzXlDpMog-unsplash.jpg) ![Photo by Hudai Gayiran on Unsplash](hudai-gayiran-3Od_VKcDEAA-unsplash.jpg) 相册语法来自 Typlog\n字体 返扇花週認契適違込遷雇述請曜藤突扉直角\n","date":"2020-09-09T00:00:00Z","image":"https://yuban11451.github.io/p/test-chinese/helena-hertz-wWZzXlDpMog-unsplash_hu_7d5f5b09f91c89db.jpg","permalink":"https://yuban11451.github.io/p/test-chinese/","title":"Chinese Test"},{"content":"This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.\nHeadings The following HTML \u0026lt;h1\u0026gt;—\u0026lt;h6\u0026gt; elements represent six levels of section headings. \u0026lt;h1\u0026gt; is the highest section level while \u0026lt;h6\u0026gt; is the lowest.\nH1 H2 H3 H4 H5 H6 Paragraph Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.\nItatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.\nBlockquotes The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations.\nBlockquote without attribution Tiam, ad mint andaepu dandae nostion secatur sequo quae. Note that you can use Markdown syntax within a blockquote.\nBlockquote with attribution Don\u0026rsquo;t communicate by sharing memory, share memory by communicating.\n— Rob Pike1\nTables Tables aren\u0026rsquo;t part of the core Markdown spec, but Hugo supports supports them out-of-the-box.\nName Age Bob 27 Alice 23 Inline Markdown within tables Italics Bold Code italics bold code A B C D E F Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ultricies, sapien non euismod aliquam, dui ligula tincidunt odio, at accumsan nulla sapien eget ex. Proin eleifend dictum ipsum, non euismod ipsum pulvinar et. Vivamus sollicitudin, quam in pulvinar aliquam, metus elit pretium purus Proin sit amet velit nec enim imperdiet vehicula. Ut bibendum vestibulum quam, eu egestas turpis gravida nec Sed scelerisque nec turpis vel viverra. Vivamus vitae pretium sapien Code Blocks Code block with backticks 1 2 3 4 5 6 7 8 9 10 \u0026lt;!doctype html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;utf-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Example HTML5 Document\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;p\u0026gt;Test\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Code block indented with four spaces \u0026lt;!doctype html\u0026gt; \u0026lt;html lang=\u0026quot;en\u0026quot;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026quot;utf-8\u0026quot;\u0026gt; \u0026lt;title\u0026gt;Example HTML5 Document\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;p\u0026gt;Test\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Code block with Hugo\u0026rsquo;s internal highlight shortcode 1 2 3 4 5 6 7 8 9 10 \u0026lt;!doctype html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;utf-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Example HTML5 Document\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;p\u0026gt;Test\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Diff code block 1 2 3 4 5 [dependencies.bevy] git = \u0026#34;https://github.com/bevyengine/bevy\u0026#34; rev = \u0026#34;11f52b8c72fc3a568e8bb4a4cd1f3eb025ac2e13\u0026#34; - features = [\u0026#34;dynamic\u0026#34;] + features = [\u0026#34;jpeg\u0026#34;, \u0026#34;dynamic\u0026#34;] List Types Ordered List First item Second item Third item Unordered List List item Another item And another item Nested list Fruit Apple Orange Banana Dairy Milk Cheese Other Elements — abbr, sub, sup, kbd, mark GIF is a bitmap image format.\nH2O\nXn + Yn = Zn\nPress CTRL + ALT + Delete to end the session.\nMost salamanders are nocturnal, and hunt for insects, worms, and other small creatures.\nHyperlinked image The above quote is excerpted from Rob Pike\u0026rsquo;s talk during Gopherfest, November 18, 2015.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"2019-03-11T00:00:00Z","image":"https://yuban11451.github.io/p/markdown-syntax-guide/pawel-czerwinski-8uZPynIu-rQ-unsplash_hu_9e6bcf9cfe9a9448.jpg","permalink":"https://yuban11451.github.io/p/markdown-syntax-guide/","title":"Markdown Syntax Guide"},{"content":"Lorem est tota propiore conpellat pectoribus de pectora summo.\nRedit teque digerit hominumque toris verebor lumina non cervice subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum.\nExierant elisi ambit vivere dedere Duce pollice Eris modo Spargitque ferrea quos palude Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria tractus malis.\nComas hunc haec pietate fetum procerum dixit Post torum vates letum Tiresia Flumen querellas Arcanaque montibus omnes Quidem et Vagus elidunt The Van de Graaf Canon\nMane refeci capiebant unda mulcebat Victa caducifer, malo vulnere contra dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere furit nec; iaculi matertera et visa est, viribus. Divesque creatis, tecta novat collumque vulnus est, parvas. Faces illo pepulere tempus adest. Tendit flamma, ab opes virum sustinet, sidus sequendo urbis.\nIubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae vulnus haerentia iuste et exercebat, sui et.\nEurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel mitis temploque vocatus, inque alis, oculos nomen non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem Propoetides parte.\n","date":"2019-03-09T00:00:00Z","image":"https://yuban11451.github.io/p/placeholder-text/matt-le-SJSpo9hQf7s-unsplash_hu_55222a4565f8ab23.jpg","permalink":"https://yuban11451.github.io/p/placeholder-text/","title":"Placeholder Text"},{"content":"Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries.\nIn this example we will be using KaTeX\nCreate a partial under /layouts/partials/math.html Within this partial reference the Auto-render Extension or host these scripts locally. Include the partial in your templates like so: 1 2 3 {{ if or .Params.math .Site.Params.math }} {{ partial \u0026#34;math.html\u0026#34; . }} {{ end }} To enable KaTeX globally set the parameter math to true in a project\u0026rsquo;s configuration To enable KaTeX on a per page basis include the parameter math: true in content files Note: Use the online reference of Supported TeX Functions\nExamples Inline math: $\\varphi = \\dfrac{1+\\sqrt5}{2}= 1.6180339887…$\nBlock math: $$ \\varphi = 1+\\frac{1} {1+\\frac{1} {1+\\frac{1} {1+\\cdots} } } $$","date":"2019-03-08T00:00:00Z","permalink":"https://yuban11451.github.io/p/math-typesetting/","title":"Math Typesetting"},{"content":"Emoji can be enabled in a Hugo project in a number of ways.\nThe emojify function can be called directly in templates or Inline Shortcodes.\nTo enable emoji globally, set enableEmoji to true in your site\u0026rsquo;s configuration and then you can type emoji shorthand codes directly in content files; e.g.\n🙈 :see_no_evil: 🙉 :hear_no_evil: 🙊 :speak_no_evil:\nThe Emoji cheat sheet is a useful reference for emoji shorthand codes.\nN.B. The above steps enable Unicode Standard emoji characters and sequences in Hugo, however the rendering of these glyphs depends on the browser and the platform. To style the emoji you can either use a third party emoji font or a font stack; e.g.\n1 2 3 .emoji { font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols; } ","date":"2019-03-05T00:00:00Z","image":"https://yuban11451.github.io/p/emoji-support/the-creative-exchange-d2zvqp3fpro-unsplash_hu_25e98f89e1c69204.jpg","permalink":"https://yuban11451.github.io/p/emoji-support/","title":"Emoji Support"}]