python入门学习(二)
# python中的循环语句 from operator import truediv from ctypes.macholib.dyld import DEFAULT_LIBRARY_FALLBACK from logging import error # if条件判断语句 --- 单分支 # if的核心在于布尔值 True/False 计算机非常死板它必须得到一个是或者否 # if条件判断语句判断成功之后执行if设置的语句不成功执行else语句 # 举个例子 # 输入公交卡当前的余额只要超过2元就可以上车如果有空位就可以坐下 # money int(input(请输入您的卡内余额)) # if money 2: # print(你可以上车) # nasa int(input(请输入当前车内空余座位数:)) # if nasa0: # print(存在空位请选择对应的座位坐下) # else: # print(座位已满请站着) # else: # print(您的余额不足请先充值后上车) # 多重分支结构 # 当一个问题不只是对或错而是有多种可能时我们就会用到elseelse if # if判断语句 --- 多分支 # 举个栗子 # 充值VIP # money 400 # if money 400: # print(VIP4) # elif money 300: # print(VIP3) # elif money 200: # print(VIP2) # elif money 100: # print(VIP1) # elif money 0 and money 100: # print(普通用户) # eg:判断优先从大的数值开始如果先输入小的值会直接输出最小值的结果从而失去判断的意义 # 练习场景只能电影院自动售票系统 # 任务目标 # 请你写一段程序根据顾客的年龄和持有的优惠券类型算出他们最终支付的票价 # 规则手册 # 1.基础票价100元 # 2.年龄优惠 # 2.1 儿童 小于12岁半价 # 2.2 老人 大于等于65岁折扣价6折 # 2.3 成人 12-64岁原价 # 3.特殊身份id/优惠券仅限成人 # 如果是学生在原价基础上在减20元 # 4.超级黑卡 # 如果持有黑卡无论年龄大小身份id一律10元 # ------ 1.自定义输入区 ------ # base_price 100 # 基础票价可以随意修改 # age 20 # 年龄 # is_student True # 是否是学生 # has_black_cord False # 是否持有黑卡 # ------ 2.逻辑计算区 ------ # if has_black_cord: # # 黑卡拥有绝对优先权不受基础价格影响 # final_price 10 # print(f检测到尊贵黑卡:无论原价多少仅收{final_price}元) # elif age 12: # # 儿童 5折 # final_price base_price * 0.5 # print(f儿童优惠5折:{final_price}元) # elif age 65: # # 老人 6折 # final_price base_price * 0.6 # print(f老人优惠6折:{final_price}元) # else: # # 成人逻辑 # if is_student: # # 学生在基础价格上减20元 # final_price base_price - 20 # print(f学生优惠立减20:{final_price}元) # else: # # 普通人原价 # final_price base_price # print(f标准成人原价无折扣:{final_price}元) # ------ 3.输出结果 ------ # print(- * 30) # print(f原价:{base_price}元|最终结算金额:{final_price}) # base_price 100 # a int(input(您是否持有黑卡)) # if a 是: # print(10) # else: # age int(input(请输入您的年龄)) # if age 65: # print(base_price * 0.6) # elif age 12 and age 65: # b int(input(您是否是学生)) # if b 是: # print(base_price - 20) # else: # print(base_price) # elif age 12: # print(base_price * 0.5) # 三目运算只适合单分支 # name input(请输入您所在的省份以显示省会城市) # if name 广东 # print(广州) # else: # print(请重新输入) # 转为三目运算 # name input(请输入您所在的省份以显示省会城市) # print(广州) if name 广东 else print(请重新输入) #__contains__判断字典中是否包含某个key # dict1 {name: zhangsan, age: 18} # if dict1.__contains__ (sex) is True: # print(存在sex这个字段) # else: # dict1[sex] 男 # print(dict1) # dict1 {name: zhangsan, age: 18} # print(存在sex这个字段) if dict1.__contains__(sex) is True else dict1[sex] 男 # print(dict1) # 语句中嵌套if语句实战 # 登录功能实战练习: # 通过输入函数输入用户名先判断用户名是否正确 # 用户名正确则进行密码的判断 # 如果用户名错误则提示:用户错误请重新输入。 # 密码错误则提示:您输入的密码有误请重新输入。 # 密码输入正确则登录成功。 # username admin # password 123456 # a input(请输入您的用户名) # if a ! username: # print(用户错误请重新输入) # else: # print(用户名正确) # b input(请输入您的密码) # if b 123456: # print(登录成功) # else: # print(您输入的密码有误请重新输入) # while循环语句 # 1、核心逻辑:只要...就... # while循环的逻辑非常简单:只要条件为True代码块就会一遍又一遍的执行一旦条件为False循环立即停止 # 基本语法 # while条件: # # 代码块(只要条件成立就会反复执行这里的代码) # # ⚠必须要有改变条件不然条件不变永远都会满足条件就会形成死循环 # 举个例子 # 我们来写一一个程序模拟手机电量从80%冲到100%的过程。 # battery 80 # 当前电量 # # while battery 100: # # battery battery 5 # battery 5 # print(f正在充电...当前电量{battery}%) # print(电量已满请拔下充电器。) # 关键点 # 初始值batyery80 # 循环条件batte100 # 迭代更新battery 5 (如果没有这一行电量永远都是80程序会死循环) # 涨工资举例子 # gongzi 3000 # n 0 # while gongzi 5000: # print(需要涨500元工资) # gongzi 500 # 条件改变语句 # n 1 # print(这是第%d循环%n,我现在的工资是%d% gongzi) # 登录功能实战练习 # 1.通过输入函数输入用户名先判断用户名是否正确用户正确则进行密码判断 # 2.如果用户名错误则提示账号输入有误请重新输入 # 3.如果密码错误则提示密码输入有误请重新输入 # ps:共有三次输入密码的机会三次密码有误账号锁定。 # username admin # password 123456 # a input(请输入您的用户名:) # if a ! username: # print(用户错误请重新输入) # else: # print(用户名正确) # count 0 # while count 3: # b input(请输入您的密码:) # if b password: # print(登录成功) # else: # count count 1 # print(f密码错误已错{count}次) # if count 3: # print(三次密码错误账号锁定) # dict1 {usename: admin, password: 123456} # username input(请输入你的账号:) # if username dict1.get(usename): # count 3 # while count 0: # passwordinput(请输入您的密码:) # if password dictl.get(password): # print(登录成功!) # else: # count - 1 # if count 3: # print(f密码输入错误还有{count}次机会请重新输入!) # else: # print(密码输入错误X次数过多账号已被锁定) # else: # print(你输入的账号有误请重新输入!) # for循环语句 # 在python中for循环语句核心逻辑就是遍历 # for循环基本格式 # for 变量 in 序列: # 执行的代码块 # 它是怎么运行的 底层逻辑 # 假设有一个列表fruits [苹果,香蕉,橙子] # 1.第一轮for 伸手抓向第一个元素 苹果把它赋值给变量执行代码 # 2.第二轮for 自动移向下一个位置抓起 香蕉执行代码 # 3.第三轮抓起 橙子 执行代码 # 4.发现后面没有东西了循环自然终止 # for循环和 range()函数结合使用 # range()函数在设定范围返回一组数据 # 用法range(开始值结束值步进值) # 开始值代表从哪个数字开始下标从0开始缺省0 # 结束值代表到哪个数字结束不可缺省结束值不取 # 步进值(步长)每个要改变多少的量缺省为1 # range()在python2和python3中的区别 面试有问过 # python3range()函数返回的是一个可迭代的对象在打印的时候不会打印列表 # python2range()函数返回是一个列表 # range(5)生成0,1,2,3,4 (开始值不填从0开始结束值不取) # range(1,6):生产1,2,3,4,5 (指定起点为1) # range(1,10,2):生产1,3,5,7,9 () # 举个栗子 # list1 (range(1,10)) # print(list(list1)) # [1, 2, 3, 4, 5, 6, 7, 8, 9] # list2 (range(10)) # print(list(list2)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # list3 (range(10,1)) # 开始值大于结束值则无结果 # print(list(list3)) #[] # for i in range(1,10): # print(i,end ) # 使用range()函数求出1-100的和 # 第一种 # sum 0 # 先定义一个初始值0 # for i in range(101): # i会拿到0-100的值 # sum i # 每拿到一个值会和之前的数相加进行循环 # print(sum) # 打印出最终结果 # 第二种使用一行代码求出1-100的和面试有问 # print(sum(range(101))) # for nasa in range(10): # print(nasa, end ) # 0123456789 # # for i in range(3, 10, 2): # print(i, end ) # 3 5 7 9 # for i in range(10, 1, -1): # print(i, end ) # 10 98 76 5 4 3 2 # 1.求出1-100的奇数之和 # Sum 0 # for i in range(1, 101, 2): # sum i # print(sum) # 2500 # 2.求出1-100的偶数之和 # sum 0 # for i in range(2, 101, 2): # Sum i # print(sum) # 2550 # for循环的遍历作用可以用在字典、列表、字符串、元组、集合 # 1.遍历字符串 # str1 python # for i in str1: # print(i,end ) # p y t h o n # 2.遍历列表 # str1 [1,2,3,4,5, 6] # for i in str1: # print(i,end) # 1 2 3 4 5 6 # 3。遍历元组 # str1 (1, 2, 3, 4, 5, 6) # for i in str1: # print(i, end ) # 1 2 3 4 5 6 # 4.遍历字典 # dict1 {name:zhangsan,age:18} # for i in dict1: # print(i,dict1[i],end ) # name zhangsan age 18 # 5.遍历集合 # set1 {1, 2, 3, 4, 5} # for i in set1: # print(i,end ) # 1 2 3 4 5 # 6.整数不能遍历 # int1 12345 # for i in int1: # print(i,end ) # TypeError: int object is not iterable # 遍历三种常见的方法 # A:基础遍历如果要对列表里的元素进行操作首先要想到用遍历 # names [孔乙己,祥林嫂,闰土] # for i in names: # print(f你好{i}!) # # 你好孔乙己! # # 你好祥林嫂! # # 你好闰土! # B指定次数 # 模仿手机报警提示 3 次 # for i in range(3): # print(⚠警告检测到非法登录) # C带索引遍历高阶用法 # items [铅笔,尺子,橡皮] # len()函数获取列表的长度列表元素的个数 # for i in range(len(items)): # print(f第{i1}件商品是{items[i]}) # 第1件商品是铅笔 # 第2件商品是尺子 # 第3件商品是橡皮 # 嵌套for循环 # 想象你在排座位有3排每排有4个座位你需要打印所有的坐标 # for i in range(1,4): # 外层for循环控制 行 第几行 # for a in range(1,5): # 内层for循环控制 列 第几列 # print(f你当前的位置是在{i}排{a}座) # 理解要点外层循环转1圈内存循环要转完完整的一轮 # 用法:continue语句用来告诉Python跳过当前循环的剩余语句然后继续进行下一轮循环。 # list [1,2,3,4,5,6,7,8,9] # for i in list: # if i 6: # continue # print (i) # Continue语句 # 作用:Continue跳过当前这一轮直接开始下一轮。不会终止整个循环只是缩短了这一圈的路径 # 的潜台词:这个不算看下一个 # 适用场景:排除不合格的数据过滤特定项 # for i in range(10): # if i 6: # 如果 i6 # continue # 就跳过这个循环 # print(i,end1) # 012345789 # 举个例子 # 假设你要给学生发奖金但是要跳过表现不及格的人。 # scores [80,55,90,40,75] # for i in scores: # if i 60: # continue # 如果不及格直接跳回循环开头看下一个分数不执行下面的print(continue后面的语句不执行) # print(f分数{i}合格发放奖金) # 输出结果中不会出现 55 和 40 相关信息 # Break语句:彻底终止 # 作用:break的作用是立即停止并退出整个循环一旦执行到它程序会直接跳出循环体去执行循环后面的代码 # 潜台词:达到目的了别干了收工回家! # 适用场景:找到目标了、发生错误、或者是达到某个上限 # 举个例子 # 假设你在100个箱子里找到钥匙找到了就没有必要再翻剩下的箱子 # for i in range(1,101): # print(正在检查第{i}箱子...) # if i 5: # print(找到了停止搜索) # break # 此时循环会彻底结束不会去检查第6个及以后的箱子break后面的代码不会执行 # print(准备开门) # 第一题ATM 机密码锁while if break # 场景模拟 ATM 机登录。 # 1、已知正确密码为 123456。 # 2、用户最多有 3 次机会输入。 # 3、如果输入正确显示“登录成功”并立即退出循环。 # 4、如果输入错误显示“密码错误还有 X 次机会”。 # 5、如果 3 次都输错显示“账号已被锁定”。 # password 123456 # count 3 # while count 0: # a input(您输入的密码是) # if a password: # print(登录成功) # break # else: # count - 1 # if count 0: # print(f密码错误还有{count}次机会) # else: # print(账号已被锁定) # 第二题逢 7 过for if continue # 场景聚会经典游戏“逢 7 过”。 # 遍历数字 1 到 50。 # 如果数字是 7 的倍数或者数字中包含 7例如 17, 27则打印“过”并跳过当前的数字打印。 # 其余数字正常打印 # for i in range(1,51): # if i % 7 0 or 7 in str(i): # print(过,end ) # continue # print(f当前的数字是{i}) # 第三题库存自动清点for if break continue # 场景仓库里有一批货物 items [10, 0, 25, -1, 30, 5]。 # 数字代表货物数量。 # 遍历这个列表 # 1、如果数量为 0说明缺货直接跳过continue处理下一个。 # 2、如果数量为 负数说明数据异常立即停止清点break并报警。 # 3、如果数据正常打印“当前库存X正在入库”。 # items [10, 0, 25, -1, 30, 5] # for i in items: # if i 0: # print(i,end ) # continue # if i 0: # print(f警告发现数据异常{i}停止清点) # break # print(f正常当前库存{i}正在入库) # 第四题猜字游戏️ # 设定目标预设一个秘密数字如 secret_number 7。 # 持续输入只要没猜对程序就一直要求用户输入使用 while True。 # 判断反馈 # 如果猜大了提示“太大了” # 如果猜小了提示“太小了” # 如果猜对了提示“真聪明”并立即停止游戏使用 break。 # secret_number 7 # while True: # a int(input(请输入数字)) # if a secret_number: # print(太大了) # elif a secret_number: # print(太小了) # else: # a secret_number # print(真聪明) # break # 第五题自定义票价团队折扣计算 # 场景某景点门票原价由用户自定义base_price。现在有一组游客的年龄列表 ages [10, 25, 18, 70, 30]。 # 请遍历这个年龄列表 # 1、儿童12岁免费不计入总金额打印 儿童免费。 # 2、老人65岁5 折。 # 3、成人其他原价。 # 特殊规则如果累计总票价超过了 200 元为了防止团队经费超支后续的游客将停止购票并打印“经费不足停止购票”。 # 最后输出最终总票价是多少。 # ages [10, 25, 18, 70, 30] # base_price int(input(请输入基础票价)) # 票价 # sum 0 # for i in ages: # if i 12: # print(儿童免费) # elif i 65: # sum sum base_price * 0.5 # # print(sum) # else: # sum sum base_price # # print(sum) # if sum 200: # print(经费不足停止购票) # else: # print(f最终票价是{sum}元) # base_price 100 # 自定义票价 # ages [10, 25, 18, 70, 30] # budget_limit 200 # total_sum 0 # # for age in ages: # if age 12: # print(f年龄{age}儿童免费) # continue # 免费不计入 total_sum,直接看下一个人 # elif age 65: # current_price base_price * 0.5 # print(f年龄{age}老人五折票价{current_price}元。) # else: # current_price base_price # print(f年龄{age}成人原价票价{current_price}元。) # # if total_sum current_price budget_limit: # print(f警告加入这张票后总计{total_sum current_price}元超过预算{budget_limit}元停止购票。) # break # # total_sum current_price # print(f最终结算的金额是{total_sum}元)

相关新闻

复杂工艺铝单板厂家推荐——从项目选型看行业头部企业

复杂工艺铝单板厂家推荐——从项目选型看行业头部企业

复杂工艺铝单板选型,本质上是在选一家能同时搞定双曲、冲孔、仿石材等多种工艺的系统供应商。巨星铭创年产500万方、年产值13亿元(2025年),在异形、圆弧、蜂窝等复杂版型铝单板领域积累了多个标志性项目——杭州大会展中心项目体量…

2026/9/24 18:00:50 阅读更多 →
分布式事务太难?这4种方案帮你彻底搞懂

分布式事务太难?这4种方案帮你彻底搞懂

单体时代,一个Transactional就能搞定数据一致性。到了微服务,订单服务扣库存、账户服务扣余额、积分服务加积分,三个数据库、三个服务,任何一个环节失败,数据就可能错乱。分布式事务之所以难,是因为它要在不…

2026/9/24 18:00:49 阅读更多 →
码道:从零构建学生信息管理系统:基于 FastAPI 的单文件接口项目实战

码道:从零构建学生信息管理系统:基于 FastAPI 的单文件接口项目实战

从零构建学生信息管理系统:基于 FastAPI 的单文件接口项目实战 一、项目缘起 在日常的开发学习过程中,我们经常会遇到一个非常经典的需求场景——数据表的增删改查(CRUD)。无论是教务系统里的学生档案、电商系统里的商品管理&…

2026/9/24 17:59:49 阅读更多 →

最新新闻

Qt aarch64 静态交叉编译全流程解析:从工具链到部署

Qt aarch64 静态交叉编译全流程解析:从工具链到部署

1. 项目概述与整体方案解读1.1 为什么要做 Qt aarch64 静态交叉编译做嵌入式 Linux 图形应用开发的工程师,几乎都会撞上同一个问题:板子拿到手,交叉编译工具链装好了,程序也写好了,结果往板子上一跑,不是报…

2026/9/24 23:24:14 阅读更多 →
STM32启动流程:从复位向量到main函数之间的秘密

STM32启动流程:从复位向量到main函数之间的秘密

说实话,这个东西我纠结过很久。学 C 语言的时候,老师只告诉我们程序从main开始,从main结束,谁也不会去问一句:在这之前发生了什么?直到我拿到第一块 STM32 开发板,打开一个示例工程,…

2026/9/24 23:24:14 阅读更多 →
HTOOL HT06近场探头:EMC工程师的EMI精准定位利器

HTOOL HT06近场探头:EMC工程师的EMI精准定位利器

1. 这不是玩具,是EMC工程师的“听诊器”——HTOOL HT06近场探头套件到底在解决什么问题?你有没有遇到过这样的场景:产品过了初版功能测试,一进EMC实验室就栽了——辐射发射(RE)在300MHz附近超标8dB&#xf…

2026/9/24 23:24:14 阅读更多 →
HT06近场探头实战指南:精准定位EMI噪声源

HT06近场探头实战指南:精准定位EMI噪声源

1. 这不是普通探头,是EMC工程师的“听诊器”和“显微镜”你拆开一台刚过不了辐射骚扰测试的电源模块,板子上密密麻麻全是器件,开关管、MOSFET驱动、DC-DC电感、输入滤波电容……哪个在“尖叫”?哪个在“漏电”?哪个在通…

2026/9/24 23:24:14 阅读更多 →
京东后端实习一面复盘:八股文背得再熟,不如理解底层原理

京东后端实习一面复盘:八股文背得再熟,不如理解底层原理

面试结束当晚,我坐在图书馆把整个一面的过程像放电影一样过了一遍,越想越清醒。这趟京东后端实习一面,从自我介绍到项目拷打,前后大概五十分钟,面完我就知道自己大概率挂了。但说实话,这场面试比我看半个月八股文都有价值,它把我那些"以为会了"的知识点全打回了原形。…

2026/9/24 23:24:14 阅读更多 →
Win10 文件内容搜索全攻略:从索引开启到命令行实战

Win10 文件内容搜索全攻略:从索引开启到命令行实战

你肯定遇到过这种事:文件叫"未命名文档",或者某次随手存了个"111"命名的 Word,隔了三个月只记得里面写过"项目预算"四个字,在 Win10 里用搜索框一搜,结果空空如也。绝大多数人以为 Win1…

2026/9/24 23:23:14 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →