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

python基础(四、循环语句)

while 循环

while循环,while循环的使用if的基本相同,在while之后使用表达式,如果表达式为真,就会反复执行while循环代码块的作用域,每执行完一次就重新判断while的表达式,真就重复上述步骤,直到表达式为假才会跳出;如果一开始就是假,直接跳过

死循环

只要while循环的条件表达式一直为真,相应的作用域就会一直执行,无法跳出,形成死循环。死循环时循环无法跳出,循环语句之后的代码也不会执行

while True :
    print('死循环')
print('跳出循环')
案例

print("开始")
num = 1
while num < 3:
    print("1111")
    num = 5
print("结束")


运行结果:
开始
1111
结束

循环控制语句

为了控制循环的流,或者根据一些指定的条件改变执行,在Python中有三个控制语句

中断

Break语句用于终止包含它的循环的执行。只要循环遇到Break语句,循环就会终止,并且执行转移到循环后面的下一条语句

i = 0
while i < 101:
    print(i)
    i += 1
    if i == 101:
        break
else:
    print("结束")
print("___结束")


运行结果:
100
___结束

继续

continue用于跳过当前迭代循环中代码的循环。它不会像BREAK语句那样终止循环,而是继续进行剩余的迭代

i = 1
while i < 6:
print(i)
if i == 3 :
continue
i += 1

PASS

pass语法为空操作。这基本上意味着语句在语法上是必需的,但是您不希望执行任何命令或代码

for循环

while 让程序处于一直执行的状态 while True

for 打印数值 循环打印数据 整数好字符串

# 单个整数不是一个可迭代的对象
a = (1,2,3,4,5,8)
print(type(a))
for i in a:
    print(i)
结果:

<class 'tuple'>
1
2
3
4
5
8

range()函数

"""
range()函数  作用生成一组数字列表,指定数字生成
range()函数 start 开始 默认从0 开始,可以不指定 ;stop 结束 指定数值,取值只取到停止的前一位;step 步长
"""
sum = 0
num = 0
for a in range(1,101):
    if a % 2 == 0:
        print(f"偶数{a}")
        sum = sum + a
    else:
        print(f"奇数{a}")
        num = num + a
print(f"1到100中间的偶数和为{sum}")
print(f"1到100中间的奇数和为{num}")
print(f"总共{sum + num}")
结果:

.....
..
奇数97
偶数98
奇数99
偶数100
1到100中间的偶数和为2550
1到100中间的奇数和为2500
总共5050

——————————————————————————————————
# 通过for 循环实现阶乘
number = int(input("输入大于0的整数:"))
sum = 1
for i in range(1, number + 1):
    sum = sum * i
print(f"阶乘结果为:{sum}")
结果:

输入大于0的整数:10
阶乘结果为:3628800
# 降序打印,索引支持负数索引
for i in range(6,1,-1):
    print(i)
结果:

6
5
4
3
2

格式化方法

占位符

占位符的主要作用是用来进行参数的传递

%s :格式化字符串、字符串占位符 S = String

意思是%作为一个替代或是占位符,把name的变量值替换%s

name = "server"
lober = "python"
print("%s 喜欢 %s!"%(name,lober))


运行结果;
server 喜欢 python!

%d:整型,正数占位符

data = "北京%s,在%d区"
data1 = data % ("市",20)
print(data1)

运行结果:

北京市,在20区

%f:浮点型,浮点数占位符

%.xf:可以精确到小数点后 x 位

π = 3.1415926
print("圆周率(%.2f)" % (π))

运行结果:
圆周率(3.14)

2、format字符串格式化

format 格式化 单个参数可以多次输出,参数顺序可以不同,填充方式十分灵活,对齐方式十分强大运用广泛

print("...{key1}""...{key2}...,".format(key1=7, key2=2))
# 填充对齐
# 先取值,在冒号后指定填充格式:{索引}
# 左对齐 *< 20 总共20给字符;不够就使用*号进行填充
print("{0:*<20}".format("hello python"))
# 右对齐 * > 20 总共20给字符;不够就使用*号进行填充
print("{0:*>20}".format("hello python"))

结果:

...7...2...,
hello python********
********hello python
# 居中对齐 ^20: 居中显示,总共20个字符,不够用*填充
print("{0:*^20}".format("hello python"))
结果:

****hello python****
# 位数与进制转换
# 保留有效数字
print("{0:.2f}".format(3.1415926))
# 转换为二进制 b
print("{0:b}".format(16))
# 转换为八进制 o 
print("{0:o}".format(15))
# 转换为十六进制 x 
print("{0:x}".format(15))
结果:

3.14
10000
17
f

3、f-Strings

字符串前面加上 “f”,{}直接使用变量,表达式

name = "小刘"
age = 29
width = 124.4
# 在{}直接使用变量
print(f"my name is {name},my age is {age},{width}")
​
# 使用表达式
print(f"{1 + 2 <= 3}")
​
# {} 调用 python内置函数
print(f"{name.upper()}")
结果:

my name is 小刘,my age is 29,124.4
True
小刘

相关文章:

  • 视觉slam14讲 ——ch2实践部分
  • Android几种定时任务实现方式汇总
  • 【数据结构】哈夫曼编码与最优二叉树(哈夫曼树)
  • C++获取系统毫秒级时间(自1970年1月1日至今的毫秒数)
  • redis的详解和项目应用之PHP操作总结
  • 阿里、滴滴、华为等一线互联网分布式消息中间件:RocketMQ核心笔记
  • PostgreSQL的学习心得和知识总结(六十四)|关于PostgreSQL数据库 图式搜索(graph search)及递归查询 的场景说明
  • AI智能安防监控视频播放卡顿的原因排查与分析
  • 荧光染料Cy7 酰肼,Cy7 hydrazide,Cy7 HZ参数及结构式解析
  • OSPF——DR和BDR讲解
  • es的安装
  • 【SpringBoot】SpringBoot 读取配置文件中的自定义属性的 5 种方法
  • 前端的(typeScript)interface详解(个人学习用)
  • Android Studio应用基础,手把手教你从入门到精通(小白学习)总结2 之 常用界面布局和ListView
  • Flink Unaligned Checkpoint
  • 分享一款快速APP功能测试工具
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • CSS3 变换
  • git 常用命令
  • Java,console输出实时的转向GUI textbox
  • php的插入排序,通过双层for循环
  • Shadow DOM 内部构造及如何构建独立组件
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Travix是如何部署应用程序到Kubernetes上的
  • Webpack 4x 之路 ( 四 )
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 从输入URL到页面加载发生了什么
  • 搞机器学习要哪些技能
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 使用parted解决大于2T的磁盘分区
  • 手写一个CommonJS打包工具(一)
  • 小程序01:wepy框架整合iview webapp UI
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 我们雇佣了一只大猴子...
  • (2.2w字)前端单元测试之Jest详解篇
  • (八)Spring源码解析:Spring MVC
  • (第二周)效能测试
  • (汇总)os模块以及shutil模块对文件的操作
  • (转)【Hibernate总结系列】使用举例
  • .NET Standard 的管理策略
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .Net多线程总结
  • /var/lib/dpkg/lock 锁定问题
  • @JSONField或@JsonProperty注解使用
  • [ JavaScript ] JSON方法
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [20171113]修改表结构删除列相关问题4.txt
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [AIGC] Spring Interceptor 拦截器详解
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [android] 手机卫士黑名单功能(ListView优化)
  • [APIO2012] 派遣 dispatching
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)