Python办公自动化从入门到精通-2 📅 2026/7/18 4:33:53 第二天的学习就对比昨天的学习也不少重合的地方也算是一个更深的学习更多的是做习题1.1字面量字面量在代码中直接写下的固定值。Python 中常用的六种值类型数字类型整型int浮点数float布尔型bool复数以 j 结尾表示复数字符串类型描述文本的一种数据类型由任意数量的字符组成。其他容器类型列表list元组tuple集合set字典dict字符串详解字符串也称为文本由任意数量的字符组成包括中文、英文、各类符号、数字等。注意Python 中的字符串需要用双引号或单引号包围起来。被引号包围的内容都视为字符串。代码示例103.14True兰智数加学院兰智数加学院print(10)print(3.14)print(兰智数加学院)print(True)输出为103.14True兰智数加学院兰智数加学院1.2 注释注释在程序中对程序代码进行解释说明的文字。作用注释不是程序不能被执行的只是对程序代码进行解释说明让别人能够看懂代码的作用可以大大增加程序的可读性。注释的分类1单行注释以#开头右边所有文字当作说明而不是真正要执行的程序起辅助说明的作用#我是单行注释2多行注释以一对三个引号引起来来解释说明一段代码的使用方法。我是多行注释ddddd代码示例# 单行注释# 写一个整数字面量666# 写一个浮点数字面量3.14# 多行注释多行注释多行注释print()输出为6663.141.3变量变量在程序运行时能存储计算结果或能表示值的抽象概念简单来说变量就是程序运行时记录数据用的。变量定义语法格式变量名 变量的值变量名每一个变量都有自己的名字称之为变量名也就是变量的本身赋值表示等号右侧的值赋予左侧的变量。变量的值每一个变量都有自己存储的值内容称之为变量的值变量的特征变量从名字中可以看出表示 量 是可变的。所以变量的特征就是变量存储的数据是可以发生改变的。变量的目的是存储运行过程的数据存储的目的是为了重复使用。练习需求模拟钱包a 100 # 定义个钱包变量print(钱包的余额剩余,a) # 输出钱包的值a a - 4 # 买了一杯牛奶花费4元a 100 - 4print(钱包的余额剩余,a)输出为钱包的余额剩余100钱包的余额剩余96模拟钱包升级请在程序中定义如下变量钱包月变量名money,初始余额为50请通过程序计算在购买了牛奶4元包子1.5元后钱包余额还剩余多少元基于print语句输出money 50money money - 4 - 1.5print(money)输出为45.51.5数据类型转换为什么要数据类型转换三种转换场景1、从文件中读取的数字默认是字符串需要转换成数字类型2、input语句默认结果是字符串如果需要数字也需要转换3、将数字转换成字符串可以写到外部系统常见的转换语句1、int(x)2、float(x)3、str(x)# 将数字类型转换为字符串int_num 3print(type(int_num)) # class intint_str str(int_num)print(type(int_str)) # class str# 将数字类型转换为字符串float_num 3.14print(type(float_num))float_str str(float_num)print(type(float_str))# 将字符串类型转换为数字str_num1 66print(type(str_num1))int_num2 int(str_num1)print(type(int_num2))str_num2 66.666print(type(str_num2))float_num2 float(str_num2)print(type(float_num2))# # 错误示例# # ValueError: invalid literal for int() with base 10: 兰智数加学院# str_num3 兰智数加学院# print(type(str_num3))# int_num3 int(str_num3)# print(type(int_num3))# 整数转浮点数int_num5 float(2)print(type(int_num5))print(int_num5) # 2.0# 浮点数转整数flaot_num5 int(3.14)print(type(flaot_num5))print(flaot_num5)输出为class intclass strclass floatclass strclass strclass intclass strclass floatclass float2.0class int31.6标识符标识符是用户在编程的时候所使用的一系列的名字用于给变量、类、方法等命名标识符的规则1、内容限定标识符命名中只允许出现英文、中文不推荐、数字不可以用在开头、下划线等四类元素其他元素都不被允许2、大小写敏感能够区分大小写3、不可以使用python关键字python中关键字由特殊用途不可以用作标识符标识符的规范1、见名知意明了简洁2、下划线命名法多个单词组合变量名时要使用下划线隔开3、英文字母全小写变量中的英文字母全小写。# *************************内容限定****************************# 错误代码示范# SyntaxError: invalid decimal literal# 1name 10姓名 张三 # 可以用中文但不推荐name 张三_name 张三# name*^ zhansgan# *************************大小写敏感****************************lanzhishujia 学院Lanzhishujia 大学print(lanzhishujia)print(Lanzhishujia)# *************************不可以使用关键字****************************Class 类# class 类输出为学院大学1.8字符串# *************************字符串三种定义方式********************************# 单引号定义法name 兰智数加学院# 双引号定义法name 兰智数加学院# 三引号定义法name 兰智数加学院dddddddd兰智数加学院# 字符串内的引号嵌套# 单引号定义法可以内含双引号name 兰智数加学院# 双引号定义法可以内含单引号name 兰智数加学院# 可以使用转义字符\来将引号解除效用变成普通字符串name 兰智数加\学院\print(name)# *************************字符串拼接********************************# 字符串字面量之间的拼接print(你好 兰智数加学院)# 字符串字面量和字符串变量拼接name 兰智数加学院address 合肥市高新区中安创谷二期tel 11112222print(你好, name)# TypeError: can only concatenate str (not int) to strprint(你好, name 欢迎来到 address 电话 str(tel))输出为兰智数加学院你好兰智数加学院你好,兰智数加学院你好,兰智数加学院欢迎来到合肥市高新区中安创谷二期电话111122221.9输入语句使用input语句可以从键盘获取输入使用一个变量接收存储input语句获取键盘输入的内容print(请输入您的姓名)name input()print(name)print(type(name))name input(请输入您的姓名)print(name)输出为请输入您的姓名11class str2.1布尔类型布尔类型语法格式布尔类型字面量True False# 定义变量存储布尔类型的数据变量名称 布尔类型字面量比较运算符 !# 定义一个变量存储布尔类型的数据bool_1 Truebool_2 Falseprint(type(bool_1))print(type(bool_2))# 比较运算符num1 100num2 110print(f两个数比较的结果是{num1 num2})print(f两个数比较的结果是{num1 num2})print(f两个数比较的结果是{num1 num2})print(f两个数比较的结果是{num1 num2})print(f两个数比较的结果是{num1 num2})输出为class boolclass bool两个数比较的结果是False两个数比较的结果是True两个数比较的结果是False两个数比较的结果是True两个数比较的结果是False2.2if语句if 语句基本语法格式if 要判断的条件:条件成立时要做的事情# if 语句的基本使用# 定义一个年龄age 22# 判断年龄是否大于18if age 18:print(我已成年)输出为我已成年注意事项1、判断条件的结果一定是布尔类型2、不要忘记判断条件后面的冒号:3、归属if语句的代码块需要在前方填充4个空格一个tab键缩进2.3练习练习案例成年人判断1、通过input语句获取键盘输入为变量age赋值注意转换成数字类型2、通过if判断是否是成年人满足条件则输出提示信息如下欢迎来到兰智数加学院学习儿童免费成年人收费。您已成年学习需要收费祝您学习愉快print(欢迎来到兰智数加学院学习儿童免费成年人收费。)age int(input(请输入您的年龄)) # 定义变量print(type(age))# 判断是否成年if age 18:print(您已成年学习需要收费)print(祝您学习愉快)输入22欢迎来到兰智数加学院学习儿童免费成年人收费。请输入您的年龄22您已成年学习需要收费祝您学习愉快2.4if-else语句if-else基本语法if 要判断的条件条件成立时要做的事情else:条件不成立时要做的事情# if-else语句的组合用法age int(input(请输入您的年龄))if age 18:print(您已经成年学习需要收费)else:print(你还未成年学习免费!)输入22请输入您的年龄22您已经成年学习需要收费注意事项1、else后面不需要判断条件2、和if代码一样else的代码同样需要4个空格缩进2.5练习练习案例我要买票吗通过input语句获取键盘输入身高判断身高是否超过120cm并通过print语句给出提示信息。print(欢迎来到游乐园)height int(input(请输入您的身高)) # 定义身高变量if height 120:print(您的身高超过120cm,游玩需要买票)else:print(您的身高未超过120cm,游玩不需要买票)print(f祝您游玩愉快)输入130欢迎来到游乐园请输入您的身高130您的身高超过120cm,游玩需要买票祝您游玩愉快2.6if-elif-else语句if-elif-else语法格式if 判断条件1:条件1成立要做的事情elif 判断条件2:条件2成立要做的事情elif 判断条件3:条件3成立要做的事情elif 判断条件N:条件N成立要做的事情......else:所有条件都不成立要做的事情练习案例我要买票吗通过input语句获取键盘输入身高判断身高是否超过120cm并通过print语句给出提示信息。# 身高 120# vip等级 3# 免费开放日 1print(欢迎来到游乐园)# 定义身高变量# height int(input(请输入身高))# vip_level int(input(请输入会员等级1-5))# day int(input(请输入今天是几号))if int(input(请输入身高)) 120:print(免费游玩)elif int(input(请输入会员等级1-5)) 3:print(免费游玩)elif int(input(请输入今天是几号)) 1:print(f免费游玩)else:print(收费)输出为欢迎来到游乐园请输入身高180请输入会员等级1-52请输入今天是几号3收费注意事项1、elif可以写多个2、判断条件互斥且有序的上一个满足后面的就不会进行判断了3、可以在条件判断中直接写input语句节省代码量2.7判断语句嵌套嵌套语句语法格式if 条件1:满足条件1要做的事情if 条件2:满足条件2要做的事情print(欢迎来到游乐园)if int(input(请输入您的身高)) 120:print(需要买票)print(可以查看vip等级大于3可以免费)if int(input(请输入您的vip等级:)) 3:print(可以免费游玩)else:print(小于3请购票)else:print(免费游玩)# # 公司发福利条件# # 1、必须是大于等于18岁小于30岁的成年人# # 2、同时入职时间需要满足大于2年或者级别大于3的才可以领取# 定义变量age 22# 定义入职时间year 3# 定义等级level 3if age 18:print(成年人符合继续判断)if age 30:print(年龄达标)if year 2:print(小于30岁的员工且入职时间满足2年可以领取)elif level 3:print(小于30岁的员工级别满足大于3可以领取)else:print(年龄满足入职时间或则和级别不满足不可以领取)else:print(年龄不符合)else:print(非成年人)输出为欢迎来到游乐园请输入您的身高180需要买票可以查看vip等级大于3可以免费请输入您的vip等级:2小于3请购票成年人符合继续判断年龄达标小于30岁的员工且入职时间满足2年可以领取注意事项1、嵌套判断语句可以用于多条件、多层次的逻辑判断2、嵌套判断语句可以根据需求自由组合if elif else来构建多层判断3、嵌套判断语句一定要注意格式缩进python是通过空格缩进来决定层次关系的2.8练习练习需求定义一个数字1~10随机产生通过3次判断来猜出数字要求1、数字随机产生范围控制在1-102、有3次机会猜测数字通过3层嵌套判断实现3、每次猜不中会提示大了或者小了提示可以定义一个num变量内存储随机数字。import randomnum random.randint(1,10)import random# 随机数变量生成一个1-10的闭区间num random.randint(1,10)guess_num int(input(请输入你要猜想的数字:))# 判断if guess_num num:print(恭喜第一次猜对了)else:# 多层判断 判断语句的嵌套if guess_num num:print(大了)else:print(小了)# 第二次猜guess_num int(input(请输入你要猜想的数字:))if guess_num num:print(恭喜第二次猜对了)else:# 多层判断 判断语句的嵌套if guess_num num:print(大了)else:print(小了)# 第三次猜测guess_num int(input(请输入你要猜想的数字:))if guess_num num :print(恭喜第三次猜对了)else:print(结束)输出为请输入你要猜想的数字:5小了请输入你要猜想的数字:7小了请输入你要猜想的数字:9结束2.9while循环while循环语法格式while 循环条件:循环体满足循环条件要做的是事情1循环体满足循环条件要做的是事情2循环体满足循环条件要做的是事情3.......# 每条都去学习直到找到工作# 使用循环语句来实现找到工作# 定义循环变量i 0while i 100:print(f我要学习第{i}天)# 循环中止条件i 1输出为我要学习第1天...我要学习第99天while循环注意事项1、while的条件需要得到布尔类型True表示继续循环False表示结束循环2、需要设置循环中止条件如i 1 配合 i 100 就能确保100此后停止否则无限循环3、空格缩进和if判断一样都需要设置。2.10练习练习1-100的和使用while循环累加1到100的和# 定义循环变量i 1# 定义一个累加变量sum 0while i 100:sum i # sum sum i sum 0 1# 循环中止条件i 1print(f1-100的和是{sum})输出为1-100的和是5050练习猜数字案例需求设置一个范围1-100的随机整数变量通过while循环配合input语句判断输入的数字是否等于随机数要求1、无限次机会直到猜中为止2、每一次猜不中会提示大了或小了3、猜完数字后提示猜了几次2.11while循环嵌套while循环嵌套语法格式while 条件1循环体满足条件1要做的事情1while 条件2循环体满足条件2要做的事情1# 外层循环学习100天# 内层循环每天都敲10行代码# 定义外层循环变量i 1while i 100:print(f今天是第{i}天我要学习)# 定义内层循环变量j 1while j 10:print(f敲了第{j}行代码)j 1 # 循环中止条件i 1print(f坚持第{i - 1}天找到工作)输出为今天是第1天我要学习敲了第1行代码敲了第2行代码敲了第3行代码敲了第4行代码敲了第5行代码敲了第6行代码敲了第7行代码敲了第8行代码敲了第9行代码敲了第10行代码......今天是第100天我要学习敲了第1行代码敲了第2行代码敲了第3行代码敲了第4行代码敲了第5行代码敲了第6行代码敲了第7行代码敲了第8行代码敲了第9行代码敲了第10行代码坚持第100天找到工作注意事项1、同判断语句一样循环语句的嵌套要注意空格缩进2、基于留空格缩进来决定层次关系3、注意条件的设置避免出现无线循环除非真的需要死循环练习九九乘法表基于print语句输出不换行在print语句中加上end就可以实现不换行print(你好,end)print(数加)制表符 \t换行符 \nfrom Tools.scripts.verify_ensurepip_wheels import print_notice# 内层循环# 外层循环# 定义一个循环变量i 1while i 9:# 定义内层循环变量j 1while j i:print(f{j} * {i} {j * i}\t,end)j 1print()i 1输出为1 * 1 11 * 2 2 2 * 2 41 * 3 3 2 * 3 6 3 * 3 91 * 4 4 2 * 4 8 3 * 4 12 4 * 4 161 * 5 5 2 * 5 10 3 * 5 15 4 * 5 20 5 * 5 251 * 6 6 2 * 6 12 3 * 6 18 4 * 6 24 5 * 6 30 6 * 6 361 * 7 7 2 * 7 14 3 * 7 21 4 * 7 28 5 * 7 35 6 * 7 42 7 * 7 491 * 8 8 2 * 8 16 3 * 8 24 4 * 8 32 5 * 8 40 6 * 8 48 7 * 8 56 8 * 8 641 * 9 9 2 * 9 18 3 * 9 27 4 * 9 36 5 * 9 45 6 * 9 54 7 * 9 63 8 * 9 72 9 * 9 812.12for循环for循环是一种轮询机制对一批内容进行逐个处理。for循环基本语法格式for 临时变量 in 待处理的数据集:循环满足条件时执行代码name lanzhishujiafor x in name:# 将name的内容按个取出赋予x临时变量print(x)输出为lanzhishujia注意事项1、无法定义循环条件只能被动的取出数据进行处理2、要注意在循环语句内要注意代码缩进2.13练习练习数一数有几个aname shujia is a brand of lan zhi需求定义一个字符串变量name内容shujia is a brand of lan zhi通过for循环遍历此字符串统计有多少个a# 定义一个计数变量count 0name shujia is a brand of lan zhifor x in name:# 判断有多少个aif x a:# 如果是a则count 1count 1print(fname中有{count}个a)输出为name中有4个a2.14range语句range语句语法格式1range(stop) - range object获取一个从0开始到stop结束的数字序列不含stop本身 左闭右开区间语法格式2range(start, stop)- range object获取一个从start开始到stop结束的数字序列不含stop本身语法格式3:range(start, stop[, step]) - range object获取一个从start开始到stop结束的数字序列不含stop本身 数字之间的步长为stepfor i in range(5):print(i)for i in range(1,10):print(i)for i in range(1,10,2):print(i)输出为01234123456789135792.15变量的作用域for循环的变量作用域for 临时变量 in 待处理的数据集循环条件满足要做的事情临时变量在编程规范上作用范围作用域只限定在for循环内部如果在for循环外部访问临时变量1、实际上是可以访问的2、在变成规范上是不允许不建议这么做的。解决如果实在需要在循环外部访问临时变量可以预先定义。i 0for i in range(5):print(i)print(i)输出为0123442.16for循环的嵌套for循环的嵌套学习目标1、掌握for循环的嵌套使用for循环嵌套语法格式for 临时变量 in 待处理的数据集:循环条件满足要做的事情for 临时变量 in 待处理的数据集:循环条件满足要做的事情# 需求学习100天 每条敲10行代码i 0for i in range(1,101):print(f今天是学习的第{i}天)# 内层循环for j in range(1,11):print(f今天敲了第{j}行代码)print(f第{i}天成功找到工作)输出为今天是第1天我要学习敲了第1行代码敲了第2行代码敲了第3行代码敲了第4行代码敲了第5行代码敲了第6行代码敲了第7行代码敲了第8行代码敲了第9行代码敲了第10行代码......今天是第100天我要学习敲了第1行代码敲了第2行代码敲了第3行代码敲了第4行代码敲了第5行代码敲了第6行代码敲了第7行代码敲了第8行代码敲了第9行代码敲了第10行代码坚持第100天找到工作注意事项1、需要注意缩进嵌套for循环同样通过缩进确定层次关系2、for循环和while循环可以相互嵌套。