Python循环语句
写在前面
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构,可以看成是一个条件判断语句和一个向回转向语句的组合。在我们的生信分析中循环几乎无处不在,毕竟生物体成千上万的基因不能让生信工作者逐个的去计算并可视化。循环也是各类编程的精髓,脱离了循环,代码将失去意义;学会了循环,省出大把喝咖啡的时间~
一、while循环
## 最简单的示例:
i=0
while i < 10:
i+=1
print(f"这是第{i}次")
通过while循环求1~10的和:
i=1
mysum = 0
while i <= 10:
mysum += i
i += 1
print(f"1~10的和是:{mysum}")
通过while循环完成猜数字的程序设计:
### 用while循环设置猜数字程序
# 生成一个1~100间的随机数
import random
mynum = random.randint(1,100)
# 设置条件
mycondition = True
# 记录次数
i = 0
# 用过while循环生成猜数字游戏
while mycondition == True:
i += 1
myinput = input("请猜一个1~100的数字:")
if int(myinput) == mynum:
print(f"恭喜你在第{i}次猜中了,数字是{mynum}")
mycondition == False
elif int(myinput) > mynum:
print(f"很遗憾你在第{i}次没有猜中,你的数字比答案更大,请继续输入数字")
elif int(myinput) < mynum:
print(f"很遗憾你在第{i}次没有猜中,你的数字比答案更小,请继续输入数字")
通过while打印九九乘法表:
# 当前打印到第几行
hang = 1
while hang < 10:
# 当前打印到第几列
lie = 1
while lie < hang:
print(f"{lie}*{hang}={lie*hang}",end='\t')
lie += 1
print(f"{lie}*{hang}={lie*hang}")
hang += 1
运行效果如下:
二、for循环
1、for循环基本语法
for循环是一种遍历循环,其基本语法是
for 临时变量 in 序列类型: # 序列类型即为待处理变量/数据集
循环满足条件时执行的代码
例如:
for mychar in 'Biomamba':
print(mychar)
则"Biomamba"中的字母会被依次打出:
利用for循环来统计"Biomamba"一共包含多少字符(其实有函数可以直接完成这个功能,这里先小小的挖一个坑):
chr_numr = 0
for mychar in 'Biomamba':
chr_numr += 1
print(f"'Biomamba'共包含{chr_numr}个字符")
运行结果:
2、利用range语句调用for循环
range()语句用法一:
括号中只填写一个数字:
for temp_num in range(5):
print(temp_num)
遍历输入range(5)的结果,可以看出range(5)实际上生成了0~4的这五个数字:
range()用法2:
填入两个数字(start, end),则生成start至end-1的数字,步长为1
for temp_num in range(1,6):
print(temp_num)
range()用法3:
填入两个数字(start, end, step),则生成start至end-1的数字,步长为3
for temp_num in range(1,10,3):
print(temp_num)
那么,上面的while循环打印99乘法表可以改写为,这里写一个嵌套的while,大家注意缩进:
# 当前打印到第几行
hang = 1
for hang in range(1,10):
# 当前打印到第几列
lie = 1
while lie < hang:
print(f"{lie}*{hang}={lie * hang}", end='\t')
lie += 1
print(f"{lie}*{hang}={lie * hang}")
hang += 1
实际运行结果:
当然,也可以通过两个for循环的嵌套来完成:
for hang in range(1,10):
for lie in range(1,hang+1):
print(f"{lie}*{hang}={lie * hang}", end='\t')
print("")
四行代码就完成了目标,大家平时码代码的时候也可以选择最优雅的方式~
三、break与continue
在实际的运行过程中,因为某些原因我们可能不需要把所有的循环都运行完毕,这时需要设定跳出条件,break和continue就可以帮助我们完成跳出动作。
1、continue
continue命令可以跳出当次循环,而直接执行下一个循环
for temp_num in range(1,5):
print(f"这是第{temp_num}次continue前的语句")
continue
print(f"这是第{temp_num}次continue后的语句")
例如执行结果中只包含continue之前的循环语句,且所有的循环均能执行:
2、break
break生效时,整个循环跳出
for temp_num in range(1,5):
print(f"这是第{temp_num}次break前的语句")
break
print(f"这是第{temp_num}次break后的语句")
所以我们的预设语句只打印出了第一句
往期回顾
如何联系我们
公众号后台消息更新不及时,超过48h便不允许回复读者消息,这里给大家留一下领取资料、免费服务器(有root权限的共享服务器,注册即送200¥)的微信号,方便各位随时交流、提建议(科研任务繁重,回复不及时请见谅)。此外呼声一直很高的交流群也建好了,欢迎大家入群讨论:永久免费的千人生信、科研交流群
大家可以阅读完这几篇之后添加
给生信入门初学者的小贴士
如何搜索公众号过往发布内容