当前位置: 首页 > article >正文

Python核心基础

本文摘要Python核心基础章节系统讲解了编程基础知识主要包括1.字面量的概念与写法强调字符串必须使用引号包裹2.变量与常量的定义与使用介绍命名规则和三种命名风格3.注释的两种形式单行#和多行三引号及其作用4.字符编码原理及UTF-8的重要性5.三种基本数据类型整型、浮点型、字符串及其转换方法6.各类运算符算术、赋值、比较、逻辑的使用7.不同进制数的表示与转换8.输入语句input()的使用及类型转换注意事项。全文通过大量示例代码帮助理解Python编程基础概念。第 3 章 Python 核心基础1. 字面量1.1. 概述来看这样一个场景老师让学生把姓名、年龄、体重写在纸上纸上的文字就是学生想要表达的内容这些内容不需要计算、也不需要转换就是字面上的含义一看就能理解。在程序中也有上述这些“写出来就能被理解”的内容这些内容在程序中叫做字面量即字面量就是直接写在代码中的“具体值”。1.2. 写法下面代码中的内容都是字面量。张三 18 65.2 李四 22 74.6 王五 25 80以上代码中的张三、李四、王五均为字符串。所谓字符串就是由“字符”组成的“串”。例如字符串张三由张 和三两个字符构成。从本质上看字符串属于文本类型可以由任意数量的字符组成——无论是中文、英文、数字还是各种符号。此处我们只需对字符串的概念有初步认识后续课程中将对其进行详细讲解。注意字符串必须要放到引号中使用单引号、双引号、三个单引号、三个双引号都可以但必须是英文的引号。备注写在 Python 文件头部的字符串会被自动识别成 docstring文档字符串文档字符串的主要作用是对当前 Python 文件进行说明且文档字符串必须用三个双引号。这是我写的第一个Python文件 张三 18 65.22. 变量与常量2.1.变量1️⃣前情回顾在上一节中我们通过字面量的形式记录了张三的体重例如65.2现在需要打印一些体重相关的内容代码如下print(张三的体重是, 65.2) print(对于, 65.2, 这个体重张三觉得不满意) print(张三决定开始减肥希望体重比, 65.2, 还要小)小贴士使用print(内容)可以输出内容也叫打印内容这里说的“打印”不是打印在纸上而是指把内容呈现在控制台上。使用print(内容1, 内容2, 内容3)可以输出多个内容不同内容之间用逗号做分隔输出的多个内容默认会在同一行且输出的多个内容之间会有一个空格。备注print()还有很多使用细节和技巧后面会逐步介绍。我们会发现代码中的65.2被使用了 3 次当要修改张三的体重为64.2时就需要手动修改 3 个地方修改起来会很麻烦就像下面这样print(张三的体重是, 64.2) print(对于, 64.2, 这个体重张三觉得不满意) print(张三决定开始减肥希望体重比, 64.2, 还要小)2️⃣什么是变量变量是数据的“代号”它可以和数据建立绑定关系通过变量可以使用数据或更新数据之所以叫变量是因为它和某个值的绑定关系可以随时改变。例如在上述代码中我们可以把体重值和某个『变量』建立一个『绑定关系』以后用到体重的时候直接“呼唤”这个变量就可以了。3️⃣具体语法语法为变量名 值例如下面代码中的name、age、weight都是变量。name 张三 age 18 weight 65.2注意变量名不需要加引号4️⃣示例代码使用weight变量存储体重值并在后续代码中多次使用weigth变量。weight 65.2 print(张三的体重是, weight) print(对于, weight, 这个体重张三觉得不满意) print(张三决定开始减肥希望体重比, weight, 还要小)需要修改体重时通过weight就可以修改修改后再去使用weight时就是修改后的值了。weight 65.2 weight 64.2 print(张三的体重是, weight) print(对于, weight, 这个体重张三觉得不满意) print(张三决定开始减肥希望体重比, weight, 还要小)5️⃣几个关键点在数学中像1 1 2这样的等式表示等号左边的1 1是具体的运算过程等号右边的2是该运算的结果。在代码age 18中等号表示将等号右侧的值与左侧的变量建立绑定关系。因此当程序中需要表示年龄18时可以使用变量age同样也可以通过age来修改该数值。age 18这一行代码也被称为“赋值语句”意思是将右侧的18赋给变量age。在 Python 中变量的创建与赋值是同时完成的。也就是说当程序中出现一个变量时它必须立即与某个值建立绑定关系。变量名不应过于随意命名时需要遵守一定的规则具体命名规则将在下一小节讲解。2.2.标识符命名规则1️⃣什么是标识符在程序中我们给 变量、函数、类.....所起的名字统称为标识符即在程序中所有我们可以自己起的名字都是标识符。2️⃣标识符命名规则如下只能包含数字、字母、下划线且不能以数字开头不能包含空格。区分大小写即Name和name是两个不同的标识符。不能使用关键字关键字的解释在下面⬇️。标识符尽量不要与内置函数同名。标识符虽然没有长度限制但应追求简洁清晰具有描述性。3️⃣Python 中的关键字所谓“关键字”是指那些已被 Python 语言预先保留、具有特定含义和功能的标识符。这些关键字被系统征用因而不能再作为变量名、函数名或其他标识符使用。False None True and as assert async await break class continue def del elif else except finally for from global if import in is lambda nonlocal not or pass raise return try while with yield备注上述关键字暂不作详细说明。随着课程的推进我们会在实际讲解中逐步接触并使用这些关键字届时再进行深入解释。初学者无需在此阶段强行记忆这也并不现实随着使用频率的增加便会在后续学习中自然掌握。4️⃣常见的三种命名风格大驼峰UpperCamelCase: 每个单词的首字母大写例如UserName小驼峰lowerCamelCase: 首词的首字母小写后面单词首字母大写例如userName蛇形snake_case单词间用下划线连接例如user_namePython 中推荐使用『蛇形snake_case』写法。举几个例子2.3. 常量1️⃣什么是常量在程序中一旦被赋值就不希望被修改的量区别于变量。2️⃣具体语法Python 中一般约定使用全大写变量名来表示常量涉及到多个单词时用下划线做分隔。ADULT_AGE 18 MONTHS_IN_YEAR 12 MAX_USERS 1200 PASSING_SCORE 60 MAX_USERS 13003️⃣Python 中没有强制的常量机制当强制对常量进行修改时最终也能改掉但要自觉不改这是 Python 程序员之间的约定。MONTHS_IN_YEAR 12 print(MONTHS_IN_YEAR) MONTHS_IN_YEAR 13 print(MONTHS_IN_YEAR)3.注释3.1. 概述注释是对代码的备注和解释在代码执行的时通常不起任何作用。3.2.注释的作用注释的核心作用如下提高代码的可读性通常用来辅助程序员快速理解代码的逻辑。屏蔽掉暂时不需要的代码。注意在代码中编写清晰易懂的注释是程序员的基本素养之一3.3.单行注释在 Python 中#后的一行内内容会被视为注释。# name 是张三的名字 name 张三 # age 是张三的年龄 age 18 # weight 是张三的体重单位kg weight 65.2 print(name, age, weight) # 这是一句打印关于注释的书写格式Python官方建议在#和注释的内容之间加一个空格在代码和#之间加两个空格。上述的规则属于 Python 编码规范规范的具体内容我们会在课程中逐渐给各位渗透。3.4.多行注释多行注释又称“块注释” Python 中的多行注释使用的是一组三引号单引号双引号都可以。1️⃣多行注释可以换行但不能嵌套。 我是一些注释 我还是一些注释 2️⃣多行注释本质是一个多行字符串。注意Python 中并没有真正的多行注释语法所谓多行注释的本质其实还是字符串。print( Hello World Hello world )3.5. 文件编码注释文件编码又称“字符编码”文件编码注释写在 Python 文件的首行是一种特殊的注释。它的作用是指定当前文件的字符编码。# codingutf-8 print(你好啊)4. 字符编码4.1. 概述计算机对数据会进行两个常见的操作分别是存储数据、读取数据。存储数据时计算机会进行编码。读取数据时计算机会进行解码。编码与解码会遵循一定的规范这个规范就是字符编码并且编码与解码必须遵循相同的编码规范若所用的规范不一致就会出现乱码。# codingiso-8859-1 print(你好啊) # ä½ å¥½å•Šï¼4.2. 常见编码方式1.ASCII大写字母、小写字母、数字、一些符号共计 28个字符。2.ISO 8859-1在ASCII基础上扩展支持西欧语言共计 256 个字符。3.GB2312中国国家编码标准收录约 6763 个简体中文常用汉字和符号。4.GBK兼容GB2312进一步扩展支持简繁体中文和其他汉字共收录 2 万多个字符。5.UTF-8国际通用的编码格式也叫“万国码”支持世界所有语言的字符包括中文、英文、阿拉伯文、日文、韩文等向下兼容ASCII是现代互联网最常用的编码格式。✅最佳实践实际开发中几乎都采用UTF-8编码保存文件。备注在 Python3 中可以不写文件编码声明因为 Python3 默认就使用UTF-8编码。5. 数据类型5.1. 概述就像生活中的物品都有自己所属的分类一样数据也有自己所属的『数据类型』。例如之前写过的这段代码张三 18 65.2 李四 22 74.6在上述代码中✅张三、李四这两个字面量属于『字符串』类型。✅18、22这两个字面量属于『整数』类型。✅65.2、74.6这两个字面量属『浮点数』类型。三种最常见的数据类型类型名称英文名举例说明整型int5,-3,0,2025整数不带小数点的数浮点型float3.14,-0.01带小数点的数字符串stringHello,Python文本要用引号包起来备注数据类型不只上述的这三种还有很多种我们暂且先知道以上这三种即可其他数据类型会在后续章节中逐步讲解。5.2. 查看数据类型通过type()可以查看数据类型type()会返回当前数据的具体类型。# 使用变量接收 type() 返回的类型 result1 type(张三) result2 type(18) result3 type(72.5) print(result1) # class str 注意此处返回的不是string是 string 的简写str print(result2) # class int print(result3) # class float注意在Python 中变量无类型数据有类型。例如a 10其中a是没有类型的但a所关联的数据10是有类型的10是整型我们经常说a是整型其实是一种不太严谨的表述严谨的表述应该是a所对应的数据10是整型。也可以把变量交给type()最终返回的是变量所对应的数据的类型。name 张三 age 18 weight 72.5 # 使用变量接收type()返回的类型 result1 type(name) result2 type(age) result3 type(weight) # 打印这三个数据类型 print(result1) # class str print(result2) # class str print(result3) # class float当然也可以不使用变量接收直接打印type()的结果name 张三 age 18 weight 72.5 # 打印这三个数据类型 print(type(name)) # class str print(type(age)) # class str print(type(weight)) # class float5.3. 整型1️⃣什么是整型所谓整型就是没有小数点的数字 Python 中的整型可以是任意大小的整数包括负整数。2️⃣分隔符当书写很大的数时可使用下划线将数字分组使其更清晰易读Python 自动忽略数字之间的下划线并且这种写法也适用于浮点数但要注意此种写法只有 Python3.6 及以上版本才支持。num1 10_000_000 print(num1)3️⃣整型上限值Python 中存储整数上限值的大小取决于计算机的内存和处理能力我们先来认识一下『幂运算符』代码如下a 3 ** 2 # 表示3的平方 b 2 ** 3 # 表示2的3次方 print(a) # 9 print(b) # 8通过幂运算构建一个很大的数随后打印它我们会发现代码报错了。a 9 ** 9999 # 9的9999次方 print(a) # 打印x上面报错中提及了Exceeds the limit (4300 digits)但这并不代表 Python 最大只能表示4300位的数比如我们把print删掉会发现代码正常运行并且此时的a也是可以正常参与数学运算的。a 9 ** 9999 # 9的9999次方 b a 100那加上了print(a)为什么报错呢原因如下调用print(a)时Python 底层会把a的类型转换成『字符串类型』再输出而从 Python3.11 起Python 对超大整数转换字符串的长度进行了限制默认位数是4300位。扩展知识了解即可通过如下代码可以解除字符串转换时的4300位限制如下代码中包含模块相关内容我们还没有讲到所以不必纠结下面代码的具体含义只需要先知道4300位的限制可以修改即可。import sys sys.set_int_max_str_digits(0) # 设置为0表示不作任何限制 x 9 ** 9999 # 9的9999次方 print(x) # 打印x5.4. 浮点型1️⃣什么是浮点型所谓浮点型就是带小数点的数字比如3.14、-0.5、2.0都是浮点数。2️⃣浮点型的表示方式直接写# 浮点型就是带有小数点的数字。 weight 65.2 balance 1425.58 out_temp -25.2 price 120.0科学计数法# 浮点型的科学计数法表示。 speed_of_sound 3.4e2 # 3.4乘以10的2次方。 world_population 7.8e9 # 7.8乘以10的9次方。 distance_sun_earth 1.496E8 # 1.496乘以10的8次方。 speed_of_light 2.998E8 # 2.998乘以10的8次方。 one_ml 1e-3 # 1乘以10的-3次方。 one_mg 1E-3 # 1乘以10的-3次方。5.5. 字符串5.5.1. 1️⃣字符的四种定义方式写法示例适用场景单引号你好尚硅谷单行字符串不能直接换行换行需要使用圆括号双引号你好尚硅谷三个单引号你好尚硅谷多行字符串可以直接换行三个双引号你好尚硅谷下面代码所表示的都是字符串# 单引号和双引号的写法是等价的二者都不能直接换行要用圆括号才能换行单引号用的多。 message1 尚硅谷让天下没有难学的技术! message2 尚硅谷让天下没有难学的技术! # 三个单引号的写法可以直接换行并且可以作为多行注释使用。 message3 尚硅谷让天下没有难学的技术! # 三个双引号的写法可以直接换行也可以作为多行注释使用还能作为文档字符串使用。 message4 尚硅谷让天下没有难学的技术!5.5.2.2️⃣字符串的格式化输出写法 1直接用加号进行拼接写起来很麻烦而且只能是字符串之间拼接。name 张三 gender 男 weight 65.2 age 12 info1 我叫 name 我是 gender 生写法 2使用占位符。具体规则%s占位字符串%f占位浮点数%i占位整数%d占位十进制的整数%s是万能的如果我们提供的数据不是字符串那 Python 就会把数据转成字符串。name 张三 gender 男 weight 65.2 age 12 info2 我叫%s我是%s生我体重是%f年龄是%d % (name, gender, weight, age)写法 3使用 f-string这是目前 Python 最推荐的方式。name 张三 gender 男 weight 65.2 age 12 info3 f我叫{name}我是{gender}生我体重是{weight}年龄是{age}5.5.3. 3️⃣占位符精度控在占位符前方可以使用m.n的形式来指定精度具体规则见下图示例代码info 我叫%-4.1s性别是%3.2s体重是%-9.3f年龄是%-6.4d % (name, gender, weight, age)5.5.4. 4️⃣转义字符在字符串中有些字符不能直接写换行、制表符、引号等这时就要使用转义字符。例如下面的message字符串中包含了一个单引号但如果就这样直接写就会报错print(在Python中可以使用包裹一个字符串)使用转义字符后即可正常输出print(在Python中可以使用\包裹一个字符串)常见的转义字符梳理转义字符表示的含义\\\n换行\\\\b删除前一个字符\r使光标回到本行开头覆盖输出\t表示水平制表符让光标跳转到下一个制表位测试代码# 使用 \ 输出 print(在Python中可以使用\包裹一个字符串) # 使用 \ 输出 print(在Python中可以使用\包裹一个字符串) # 使用 \n 进行换行 print(注册会员需要以下信息\n姓名\n年龄\n手机号) # 使用 \\ 输出 \ print(D:\\nice) # 使用 \b 删除前一个字符 print(helloo\b) # 使用 \r 使光标回到本行开头覆盖输出 print(67%\r68%) # 使用 \t 表示水平制表符让光标跳转到下一个制表位 # 一个制表位到底是几位是不确定的但我们可以通过在字符串后面加.expandtabs()来指定位数。 print(1234123412341234) print(ab\tcd.expandtabs(4)) print(abc\td.expandtabs(4)) print(abcd\ta.expandtabs(4)) print(我是\t中文.expandtabs(4)) print(12341234123412341234) print(姓名\t性别\t年龄) print(张三\t男\t\t18) print(李四\t女\t\t25) print(王五\t男\t\t32)6. 数据类型转换6.1. 概述何为数据类型转换—— 把一种类型的数据变成另一种类型。6.2. 为什么要数据类型转换例如下面这些场景中我们得到的数据类型和最终要用的数据类型是不一致的那就需要类型转换用户输入的内容是都是字符串若需要进行数学运算就必须进行数据类型转换。对文件进行写入操作时要将其他类型的数据转为字符串。从数据库中读取出的内容都是字符串若需要进行数学运算也需要数据类型转换......6.3. 具体转换方式通过以下函数可以对数据类型进行转换函数说明示例int(x)将x转换为一个整数float(x)将x转换为一个浮点数str(x)将对象x转换为一个字符串7.运算符7.1.算数运算符常用的算数运算符如下测试代码# 加 print(9 7) # 减 print(7 - 2) # 乘 print(3 * 4) # 除 print(9 / 3) # 取整 print(9 // 6) # 取余 print(9 % 6) # 指数 print(2 ** 3)7.2.赋值运算符常用的赋值运算符如下测试代码age 18 print(age) price 52 print(price)age 18 # 加法复合运算符 age 1 # 等价于age age 1 print(age) # 减法复合运算符 age 18 age - 1 # 等价于age age - 1 print(age) # 乘法复合运算符 price 100 discount 0.8 price * discount # 等价于price price * discount print(price) # 除法复合运算符 pay 100 num 5 pay / 5 # 等价于pay pay / num print(pay) # 取整赋值运算符 apple 31 num 14 apple // num # 等价于apple apple // num print(apple) # 取模赋值运算符 seconds 386 minutes 60 seconds % minutes # 等价于seconds seconds % minutes print(seconds) # 指数赋值运算符 a 2 b 3 a ** b # 等价于a a ** b print(a)7.3.比较运算符常用的比较运算符如下备注True 和 False 是布尔类型会在下一小节讲暂且先知道True 表示真False 表示假。# 使用判断左右两侧是否相等 a 5 b 7 c 5 result a c print(result) # 使用!判断左右两侧是否不等 a 5 b 7 c 5 result a ! c print(result) # 使用判断左侧是否大于右侧 a 9 b 7 c 5 result a b print(result) # 使用判断左侧是否小于右侧 a 3 b 7 c 5 result a b print(result) # 使用判断左侧是否大于等于右侧 a 6 b 7 c 5 result a b print(result) # 使用判断左侧是否小于等于右侧 a 9 b 7 c 5 result a b print(result) # 以上这些比较运算符同样适用于字符串 msg1 abc msg2 abc666 print(msg1 msg2) msg1 abc msg2 abc print(msg1 ! msg2)小贴士字符串进行比较时是依次比较每个字符的 Unicode 编码。Unicode 编码是一种全球通用的字符编码标准它会给每个字符都分配一个“身份证号”。具体比较规则是从左到右依次比较两个字符串中的字符。先比较第一个字符如果两个字符不相等就直接根据它们的 Unicode 码值比较大小。如果相等则继续下一步。继续比较下一个字符依次往后进行直到遇到不相等的字符为止。当出现不相等的字符时比较它们的 Unicode 码大小后续的字符将不再参与比较。# 使用ord()查看指定字符的Unicode编码 print(ord(a)) print(ord(我)) # 使用chr()将Unicode编码转为字符 print(chr(97)) print(chr(25105)) msg1 abc msg2 xyz msg3 我爱你 msg4 中国 msg5 abc msg6 abcdef print(msg3 msg1)7.4. 布尔类型我们之前讲的这些类型字符串、整型、浮点型这些类型中每一种类型都有无限多的具体值。但布尔类型的具体值只有两个分别是True和False其中True表示真False表示假。布尔值常用于表示条件是否成立、事件是否发生、操作是否成功、等逻辑状态。注意True和False的首字母必须大写。# 自己定义的布尔值 a True b False # 靠程序执行得到的布尔值 c 5 3 d 7 2 print(type(a), a) # True print(type(b), b) # Flase print(type(c), c) # True print(type(d), d) # Flase布尔类型是int类型的子类型底层的本质是用1表示True用0表示False。# 布尔类型是int类型的子类型底层的本质是用1表示True用0表示False print(int(True)) # 1 print(int(False)) # 0 print(4 True) # 5 print(8 - False) # 8 print(True True) # 2 print(True - False) # 1 print(7 True) # True print(False 0) # TruePython中除0以外的任何数转为布尔值后都为 True# 使用bool()将指定内容转为布尔类型 print(bool(1)) # True print(bool(0)) # False print(bool(300)) # True print(bool(25.6)) # True print(bool(1.8e3)) # True print(bool(12_000)) # True print(bool(-10)) # TruePython中除空字符串以外的任何字符串转为布尔值都是 Trueprint(bool(hello)) # True print(bool(0)) # True print(bool(18.5)) # True print(bool(-9)) # True print(bool()) # False7.5.逻辑运算符常用的逻辑运算符如下1️⃣and 运算符用于判断其两侧的值是否都为Trueprint(True and True) # True print(True and False) # False print(False and True) # False print(False and False) # False print(8 7 and 8 7) # True print(8 7 and 2 3) # False print(2 3 and 8 7) # False print(2 3 and 2 3) # Falseand具备“逻辑短路”能力以下代码中包含3/0这种错误代码但最终没有报错。print(False and 3 / 0) # False print(3 9 and 3 / 0) # Falseand返回的不一定是布尔值它返回的是某个参与计算的值本身and会先看左边如果左边是“假”就直接返回左边否则返回右边若参与and运算的值不是布尔值那 Python 会自动转为布尔值然后再进行逻辑操作。print(2 - 2 and True) # 0 print( and True) print(True and 8 / 2) # 4.0 print(3 3 and 3 * 4) # 122️⃣or 运算符用于判断其两侧是否至少有一个为True只要有一个是True那就返回Trueprint(True or True) # True print(True or False) # True print(False or True) # True print(False or False) # False print(9 2 or 9 2) # True print(9 2 or 3 1) # True print(3 1 or 9 2) # True print(3 1 or 3 1) # Falseor同样具备“逻辑短路”的能力以下代码中包含3/0这种错误代码但最终没有报错。print(True or 3 / 0) # True print(9 3 or 3 / 0) # Trueor返回的也不一定是布尔值它返回的是参与计算的值本身or会先看左边如果左边为“真”就直接返回左边否则返回右边若参与or运算的值不是布尔值那 Python 会自动转为布尔值然后再进行逻辑操作。print(7 - 2 or False) # 5 print(你好 or 尚硅谷) # 你好 print(False or 8 / 2) # 4.0 print(2 - 2 or 3 * 4) # 123️⃣not 运算符not用于取反不过要注意如果参与not运算的值不是布尔值那 Python 会自动将其转为布尔值然后再进行逻辑操作。print(not True) # False print(not False) # True print(not 3 2) # False print(not 3 2) # Truenot返回的值一定是布尔值print(not 0) # True print(not 3 2) # False print(not 9 // 4) # False print(not abc) # False8. 进制8.1. 概述进制是指用多少个符号来表示数值的一种『记数方式』。比如我们平时使用的『十进制』就是用0 ~ 9这十个符号来表示所有的数而计算机中存储和运算的数据都是二进制常见的进制与规则如下二进制0 ~ 1满2进1。八进制0 ~ 7满8进1。十进制0 ~ 9满10进1。十六进制0 ~ 9A-F满16进1。备注在十六进制中除了0 ~ 9这十个数字外还引入了字母以便表示超过9的值字母A对应十进制的10字母B对应十进制的11同理字母C、D、E、F分别对应十进制的12、13、14、15。各进制的表示如下图8.2.代码中如何表示不同进制在 Python 中不同进制的数有不同的前缀二进制以0b或0B开头表示。八进制以0o开头表示十进制无需前缀正常编写即可。十六进制以0x或0X开头表示此处的A-F不区分大小写。# 0b开头表示二进制 num1 0b11001 # 0o开头表示八进制 num2 0o1034 # 0x开头表示十六进制 num3 0x1cf备注Python 中所有的『非十进制』数字只是代码层面的编写方式只是给程序员看的Python 在进行计算、打印等操作时会自动将这些『非十进制』数字转为『十进制』数字。# 0b开头表示二进制 num1 0b11001 # 0o开头表示八进制 num2 0o1034 # 0x开头表示十六进制 num3 0x1cf # Python 在对上面的 num1、num2、num3进行计算、打印等操作时会自动将其转为十进制 print(num1, num2, num3) # 25 540 463 print(num1 1) # 26 print(str(num2)) # 540 print(num3 400) # True8.3. 不同进制之间的转换1️⃣手动转换使用连除法十进制转二进制不断用 2 去除这个数直到商为 0然后把每次的余数倒着写即可。十进制转八进制不断用 8 去除这个数直到商为 0然后把每次的余数倒着写即可。十进制转十六进制不断用 16 去除这个数直到商为 0把每次的余数倒着写若余数≥ 10则依次用A、B、C、D、E、F表示10~15。2️⃣借助 Python 提供的内置函数实现进制转换9. 输入语句在 Python 中输入语句用于从键盘接收用户输入的内容。# 使用input()获取用户的输入 name input(请输入你的姓名) age input(请输入你的年龄) # input()获取到的内容全都是字符串类型 print(type(age))备注程序执行到input()时会暂停等待用户的输入用户输入后敲下回车程序继续运行。input()所获取到的内容全都是字符串类型不过我们可以手动进行数据类型转换。age int(input(请输入你的年龄))

相关文章:

Python核心基础

本文摘要:Python核心基础章节系统讲解了编程基础知识,主要包括:1.字面量的概念与写法,强调字符串必须使用引号包裹;2.变量与常量的定义与使用,介绍命名规则和三种命名风格;3.注释的两种形式&…...

发现FinalBurn Neo:解锁经典街机游戏的终极模拟方案

发现FinalBurn Neo:解锁经典街机游戏的终极模拟方案 【免费下载链接】FBNeo FinalBurn Neo - We are Team FBNeo. 项目地址: https://gitcode.com/gh_mirrors/fb/FBNeo 你是否曾想重温那些定义了游戏黄金时代的经典街机游戏,却苦于找不到合适的平…...

告别IBus!在Ubuntu 22.04上为Fcitx5安装搜狗输入法并设置自启动的完整流程

在Ubuntu 22.04上深度配置Fcitx5与搜狗输入法的现代输入方案 对于追求高效输入的Linux用户而言,输入法框架的选择往往决定了日常使用的流畅度体验。传统IBus框架虽然预装在大多数发行版中,但在中文输入场景下常显力不从心——词库更新滞后、云输入支持有…...

X86与ARM架构深度解析:从指令集到生态的全面对比

1. 项目概述:为什么我们需要重新审视X86与ARM最近几年,无论是选购新电脑、关注手机芯片,还是围观科技新闻,你肯定没少听到“X86”和“ARM”这两个词。苹果的Mac电脑全面转向自研的M系列芯片,让“ARM架构”从手机、平板…...

ZYNQ启动全解析:从BootROM到你的App,SD卡与QSPI Flash烧录究竟差在哪?

ZYNQ启动全解析:从BootROM到你的App,SD卡与QSPI Flash烧录究竟差在哪? 当一块ZYNQ开发板静静躺在桌面上,按下电源键的瞬间,芯片内部究竟发生了什么?为什么有的工程师选择SD卡启动,而另一些则坚…...

做网安的这几年,挖漏洞接私活赚的是我工资的3倍,这些门道没几人知道

前言 这是我做网络安全工程师(简称网安)的第9个年头,从我工作的第3年起,我就一直在开始尝试去接网安方面的私活,这6年平均下来,我接私活赚的钱几乎是我工资的3倍。 而很多人要么不敢去做,要么就…...

【限时解密】ElevenLabs未公开的马来文SSML扩展语法:支持“Johor-Riau变体”、“Kedah重音标记”及连读停顿控制

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs马来文语音合成的技术演进与本地化挑战 ElevenLabs自2022年推出多语言TTS服务以来,持续扩展其语音模型对东南亚语言的支持能力。马来文(Bahasa Melayu)作为…...

别再让治具压坏你的板子!手把手教你用TSK-64应力测试仪搞定ICT/FCT应力管控

从应力失控到精准管控:TSK-64测试仪在ICT/FCT产线的实战指南 当产线突然出现批量PCBA功能异常时,多数工程师的第一反应是检查焊接质量或元器件性能,却往往忽略了治具施加的机械应力这个"隐形杀手"。某汽车电子制造商曾因FCT治具压力…...

HTTP协议认识

什么是 Http 协议? 超文本传输协议,规定了浏览器与服务器通信的规则 Http 协议的特点? 面向连接、安全的协议(基于 TCP)基于请求响应模型的无状态的协议 按F12 一、状态码大类 状态码分类说明1xx响应中…...

开放量子系统模拟:分治法混合态制备与Kraus算子优化

1. 开放量子系统模拟的挑战与机遇量子计算最令人期待的潜力之一,就是能够高效模拟传统计算机难以处理的量子系统动力学。然而在实际物理系统中,完全孤立的量子系统并不存在——环境噪声、退相干效应和测量干扰都会显著影响系统演化。这类与环境相互作用的…...

瑞芯微RV1126在无人机视觉AI应用:从芯片选型到部署实战

1. 项目概述:当国产芯遇上天空之眼最近几年,无人机早已不是航拍发烧友的专属玩具,它在农业植保、电力巡检、安防监控、测绘建模等专业领域大放异彩。在这些场景里,无人机不再仅仅是“会飞的相机”,它需要成为一台“会飞…...

Python运算符:比较运算符(等于不等等于大于小于)与返回值

Python运算符:比较运算符(等于不等等于大于小于)与返回值📚 本章学习目标:深入理解比较运算符(等于不等等于大于小于)与返回值的核心概念与实践方法,掌握关键技术要点,了…...

ElevenLabs湖南话TTS深度评测(2024真实场景压测报告):声调准确率92.6%、连读自然度行业首破88分

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs湖南话语音技术概览 ElevenLabs 作为全球领先的语音合成平台,其多语言支持能力持续扩展,但需明确指出:截至 2024 年底,ElevenLabs 官方模型库*…...

ElevenLabs缅甸文TTS落地难题全拆解:从音素对齐失败到语调失真,3步精准修复

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs缅甸文TTS落地难题的根源认知 ElevenLabs官方API当前未原生支持缅甸文(Burmese, my-MM),其语音合成模型训练语料库中缺乏足够规模、高质量、带韵律标注的缅…...

避坑!STM32CubeIDE偏好设置改了回不去?这份备份与恢复攻略请收好

STM32CubeIDE配置管理实战:从个人备份到团队协作的最佳实践 引言 当你花了整个下午精心调整STM32CubeIDE的代码配色方案,却发现某个关键语法高亮突然失效;当团队新成员反复询问如何统一代码格式化规则;当更换电脑后不得不重新配置…...

图文实操|飞书联动 OpenClaw,搭建智能电脑操控体系

OpenClaw 飞书机器人配置教程|一键对接飞书,聊天下达 AI 指令 适配版本:OpenClaw(小龙虾)前置要求:已部署 OpenClaw Windows 端(Win10/Win11 均可),未部署可先下载一键部…...

AM62x处理器SPI总线实战:从原理到Linux驱动配置与调试

1. 从四根线到高效数据流:深入拆解AM62x处理器的SPI总线实战在嵌入式开发里,和各类传感器、存储芯片、显示屏打交道是家常便饭。当你需要一种简单、高效、引脚又少的通信方式时,SPI总线几乎总是首选方案。它就像一条精心设计的高速公路&#…...

ElevenLabs客家话语音合规红线预警:GDPR+《生成式AI服务管理暂行办法》双框架下,3类方言数据采集授权漏洞与2种语音指纹脱敏方案(含可审计代码模板)

更多请点击: https://codechina.net 第一章:ElevenLabs客家话语音合规红线预警总览 ElevenLabs 作为前沿的AI语音合成平台,其多语言支持能力持续扩展,但对客家话等非标准化方言的生成存在明确的合规边界。平台未将客家话列入官方…...

告别 API 收费!OpenClaw 对接 Ollama,本地大模型免费无限用

OpenClaw 连接 Ollama 本地模型教程 前置准备 已安装并能正常打开 OpenClaw Windows 客户端OpenClaw 顶部 Gateway 状态保持在线电脑可正常联网,能访问 Ollama 官网磁盘空间充足(本地模型占用空间较大)提前确认待下载的模型名称&#xff08…...

限时开放!ElevenLabs未公开东北话语音微调接口文档(含token绕过+方言embedding注入完整POC)

更多请点击: https://codechina.net 第一章:ElevenLabs东北话语音微调接口的发现与边界定义 ElevenLabs 官方 API 文档未显式标注“东北话”支持,但通过其语音克隆(Voice Cloning)与声音微调(Fine-tuning&…...

告别‘断头路’:聊聊DSCNet中那个神奇的拓扑连续性损失函数

告别‘断头路’:DSCNet中拓扑连续性损失函数的深度解析 在医学影像和遥感图像分析中,管状结构(如血管、道路)的精确分割一直是个棘手问题。传统分割网络常产生断裂、毛刺或不连续的结果,这种现象在业内被称为"断…...

从BMP文件头到像素遍历:手把手教你用C语言和VS2022读取图片的RGB数据

从BMP文件头到像素遍历:手把手教你用C语言和VS2022读取图片的RGB数据 在数字图像处理领域,理解图像数据的底层存储结构是开发者必须掌握的核心技能。BMP作为Windows系统中最基础的位图格式,其简单的文件结构使其成为学习图像处理的理想起点。…...

为Claude Code配置Taotoken解决密钥被封与Token不足的烦恼

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为Claude Code配置Taotoken解决密钥被封与Token不足的烦恼 应用场景类,聚焦于使用Claude Code的编程助手用户&#xff…...

大模型是否即将到达算法极限

大模型是否即将到达算法极限:深入总结 一、核心结论 目前的大模型确实已经非常强大,但更准确的判断不是:大模型算法潜力即将到达极限。而是:纯 Transformer 纯互联网语料 纯预训练 scaling 这条旧路线,正在接近阶段性…...

GD32F427以太网通信避坑指南:LAN8720的REF_CLK模式选择与SMI管理接口配置

GD32F427以太网通信避坑指南:LAN8720的REF_CLK模式选择与SMI管理接口配置 在嵌入式系统开发中,以太网通信的稳定性往往决定着整个产品的可靠性。GD32F427作为国产MCU的优秀代表,其内置的ENET控制器配合LAN8720 PHY芯片能够实现高效的网络通信…...

ElevenLabs东北话语音效果翻车?92%开发者忽略的3个声调映射参数,立即校准!

更多请点击: https://codechina.net 第一章:ElevenLabs东北话语音效果翻车现象溯源 近期大量中文开发者在使用 ElevenLabs API 生成东北方言语音时,普遍反馈合成结果严重偏离预期——语调生硬、儿化音缺失、语气词(如“嘎哈”“瞅…...

可变形卷积+深度可分离卷积:手把手复现DAS注意力,在自定义数据集上提升目标检测AP

可变形卷积与深度可分离卷积融合实战:从零实现DAS注意力模块提升目标检测性能 在目标检测领域,如何让模型更精准地聚焦关键区域一直是核心挑战。传统卷积神经网络(CNN)受限于固定感受野,难以动态适应不同目标的几何变…...

别再折腾环境了!手把手教你用Texlive 2022 + Texstudio 4.4.1 一键搞定西电XDUTS论文模板

西电LaTeX论文写作终极指南:Texlive 2022与Texstudio 4.4.1高效配置方案 每到毕业季,总有一群学生在深夜的实验室里对着报错的LaTeX界面抓狂。去年此时,我也曾是其中一员——连续三天尝试配置西电XDUTS论文模板未果,直到在一位学…...

BedRock缓存一致性协议:无瞬态状态设计与验证优化

1. BedRock缓存一致性协议概述在现代多核处理器架构中,缓存一致性协议是确保多个处理器核心能够正确访问共享内存数据的关键机制。BedRock协议作为一种创新的目录式缓存一致性解决方案,通过独特的架构设计显著降低了传统协议面临的实现复杂度和验证难度。…...

Crypto-JS WordArray 数据结构终极指南:深入解析加密算法的核心基石

Crypto-JS WordArray 数据结构终极指南:深入解析加密算法的核心基石 【免费下载链接】crypto-js JavaScript library of crypto standards. 项目地址: https://gitcode.com/gh_mirrors/cr/crypto-js 你是否曾在使用 Crypto-JS 进行加密操作时,困惑…...