干货 | 收藏!16段代码入门Python循环语句



for 变量 in 序列: 操作语句
- 序列:接收序列,表示遍历范围。无默认值
- 操作语句:接收操作语句,表示执行一段代码。无默认值
- 代码清单1:for语句遍历提取str
# 单纯遍历的for语句
names = ['Michael', 'Bob', 'Tracy']
# 遍历输出names中的元素
for name in names: print(name)
Michael
Bob
Tracy
- 代码清单2:for语句遍历查询dict
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# 遍历键值对
print('key_value:', end = '')
for key, value in dic.items(): print(key, value, sep = ':', end = ' ')
# 遍历键
print('keys:', end = '')
for key in dic.keys(): print(key, end = ' ')
# 遍历值
print('values:', end = '')
for value in dic.values(): print(value, end = ' ')
key_value:a:1 b:2 c:3 d:4
keys:a b c d
values:1 2 3 4
- 代码清单3:嵌套for语句
students = ['小明', '小红']
subjects = ['语文', '数学']
sum1 = []
avg = []
for i in students: print ('开始录入%s的考试成绩!'%i) sum = 0 for j in subjects: print('请输入%s成绩:'%j) score = int(input()) sum += score average = sum / 2 avg.append(average) sum1.append(sum)
print(students, '的总分依次是', sum1, ',', '平均分依次是', avg)
print('完成成绩录入!')
开始录入小明的考试成绩!
请输入语文成绩:
97
请输入数学成绩:
90
开始录入小红的考试成绩!
请输入语文成绩:
89
请输入数学成绩:
100
['小明', '小红'] 的总分依次是 [187, 189] , 平均分依次是 [93.5, 94.5]
完成成绩录入!
while 条件表达式: 操作语句 1 操作语句 2
- 条件表达式:接收布尔表达式,表示判断条件是否成立。无默认值
- 操作语句:接收操作语句,表示执行一段代码。无默认值
- 代码清单4:while语句
sum = 0
n = 99
while n > 0: sum += n n -= 2
print(sum)
- 代码清单5:while语句无限循环
# 布尔表达式为常数1,始终为真值
while 1: print('循环')
循环
循环
…
# 布尔表达式每次递归运算都为2,始终为真值
x, y = 2, 1
while x / y: print('循环') x = x * 2 y = y * 2
循环
循环
…
- 代码清单6:while语句实现str截取
string = 'abcd'
while string: print(string)
# 该语句的递归计算是,每次从str的第2个字符开始截取 string = string[1:]
abcd
bcd
cd
d
- 代码清单7:嵌套while语句
j = 1
while j <= 2: sum = 0 i = 1 name = input('请输入学生姓名:') while i <= 2: print ('请输入第%d门的考试成绩: '%i) sum += int(input()) i += 1 avg = sum / (i-1) print(name, '的平均成绩是%d'%avg) j += 1
print('学生成绩输入完成!')
请输入学生姓名:小明
请输入第1门的考试成绩:
98
请输入第2门的考试成绩:
88
小明 的平均成绩是93
请输入学生姓名:小红
请输入第1门的考试成绩:
65
请输入第2门的考试成绩:
100
小红 的平均成绩是82
学生成绩输入完成!
- 代码清单8:break语句的使用
# break语句用于for循环
string = "Python"
for i in string:
# 遍历至string中的字符n时,不再执行else代码块 if i == 'n': break else: print("letter:{}". format(i))
letter:P
letter:y
letter:t
letter:h
letter:o
# break语句用于while循环
counts = 0
while True: print(counts) counts += 1
# 满足counts等于3时跳出循环,不再进入循环体 if counts == 3: break
0
1
2
- 代码清单9:break语句用于嵌套循环结构
# 第1层循环,遍历次数为2
for i in range(2): print("-----%d-----" %i)
# 第2层循环,遍历次数为10 for j in range(10):
# 使用break语句,j>1时不执行循环体 if j > 1: break print(j)
-----0-----
0
1
-----1-----
0
1
- 代码清单10:continue语句用于循环结构
# 当i等于1或3时,跳过continue后的print语句
for i in range(0,5): if i == 1 or i == 3: continue print(i)
0
2
4
# 如果遇到偶数,跳过continue后的print语句
counts = 0
while counts < 10: counts += 1 if counts % 2 == 0: continue print(counts)
1
3
5
7
9
- 代码清单11:continue语句用于嵌套循环结构
# 第1层循环,遍历次数为2
for i in range(2): print("-----%d-----" %i)
# 第2层循环,遍历次数为5 for j in range(5):
# 当j等于2或4时,不执行循环体 if j == 2 or j == 4: continue print(j)
-----0-----
0
1
3
-----1-----
0
1
3
- 代码清单12:pass语句
for element in "Python":
# element为y时,不做任何操作,不会被输出 if element == "y": pass else: print(element)
P
t
h
o
n
counts = 0
while counts < 5: counts += 1
# i=3时,不执行循环体 if counts == 3: pass else: print(counts ** 2)
1
4
16
25
[操作语句 for变量 in 序列 if 条件表达式]
- 操作语句:接收操作语句,表示执行一段代码。无默认值
- 序列:接收序列,表示遍历范围。无默认值
- 条件表达式:接收布尔表达式,表示判断条件是否成立。无默认值
- 代码清单13:使用列表推导式生成list
vec = [-4, -2, 0, 2, 4]
# 用vec中元素的倍数,创建一个数组
print([x * 2 for x in vec])
[-8, -4, 0, 4, 8]
# 创建一个包含2元tuple的list
print([(x, x ** 2) for x in range(6)])
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]
- 代码清单14:包含条件语句的列表推导式
# 过滤list,删除list中的负数
print([x for x in vec if x >= 0])
[0, 2, 4]
- 代码清单15:常规方式与列表推导式对比
# 创建一个平方数list:常规方式
squares = []
for x in range(10): squares.append(x ** 2)
print(squares)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 创建一个平方数list列表推导式
squares = [x ** 2 for x in range(10)]
print(squares)
- 代码清单16:包含嵌套循环的列表推导式
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
# 打印由tuple组成的list,i在0至2之间且小于1,j在0至2之间且大于1
[(i, j) for i in range(0, 3) if i < 1 for j in range(0, 3) if j > 1]
[(0, 2)]
(*本文为AI科技大本营转载文章,转载请联系作者)
◆
精彩推荐
◆
推荐阅读
dfuse、慢雾科技、MYKEY共同出席,与你探讨区块链数据架构和项目上链那些事!
大数据工程师手册:全面系统的掌握必备知识与工具
演讲实录:知乎算法团队负责人孙付伟:Graph Embedding在知乎的应用实践
NASNet:神经架构搜索网络在图像分类中的表现
实操 | 从0到1教你用Python来爬取整站天气网
5大必知的图算法,附Python代码实现
我们到底该如何看待6G?
互联网大佬为什么爱唱歌
惊呆!这辆悍马自己在跑跑跑跑跑跑跑!

你点的每个“在看”,我都认真当成了喜欢
相关文章:

Intel TBB简介及在Windows7 VS2013上源码的编译过程
Intel TBB(Intel Threading Building Blocks)是Intel线程构建块开源库,它的License是Apache 2.0.Intel TBB是一种用于并行编程的基于C语言的框架,它是一套C模板库。它提供了大量特性,具有比线程更高程度的抽象。Intel TBB可以在Windows、Linu…

react中ref的使用
在react中获取真实dom的时候就需要用到ref属性,具体使用如下 var MyComponent React.createClass({handleClick: function() {console.log(this.input)},render: function() {return (<div><input type"text" ref{(input) > {this.input in…
Caffe源码中blob文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/blob.hpp文件的内容:1. Include文件:(1)、<caffe/common.hpp>:此文件的介绍可以参考:http://…

jQuery之替换节点
如果要替换节点,jQuery提供了两个方法:replaceWith()和replaceAll()。 两个方法的作用相同,只是操作颠倒了。 作用:将所有匹配的元素都替换成指定的HTML或者DOM元素。(摘自《锋利的jQuery(第二版)》P72) 基…

比特大陆发布第三代AI芯片,INT8算力达17.6Tops
9月17日,福州城市大脑暨闽东北信息化战略合作发布会在数字中国会展中心隆重召开。本次发布会上,比特大陆正式推出了第三代AI芯片BM1684,同时也宣布BM1684将作为底层算力,赋能福州城市大脑,助力数字福州、数字中国的建设…

在 Azure 网站上使用 Memcached 改进 WordPress
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 和 Windows Azure 网站开发人员体验合作伙伴共同撰写。 您是否希望改善在 Azure 网站服务上运行的 WordPress 网站的性能?如果是,那么您就需要一个可帮助加快您…
Caffe源码中io文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/util/io.hpp文件的内容:1. include文件:(1)、<google/protobuf/message.h>:关于protobuf的介绍可以参考&…

DeepMind悄咪咪开源三大新框架,深度强化学习落地希望再现
作者 | Jesus Rodriguez译者 | 夕颜出品 | AI科技大本营(ID:rgznai100)【导读】近几年,深度强化学习(DRL)一直是人工智能取得最大突破的核心。尽管取得了很多进展,但由于缺乏工具和库,DRL 方法仍…

seq2seq
链接: https://blog.csdn.net/wuzqchom/article/details/75792501 转载于:https://www.cnblogs.com/yttas/p/10631442.html

vip能ping通,但80不通的解决方法
最近遇到一个很奇怪的问题,在做两台服务器负载均衡的时候,vip已经添加了,而且能ping通了,但是页面访问不了,也就是说80端口一直不通,ipvsadm -lnc查看链接状态全部是SYN_RECV。网上找了好长时间,…
OpenCV中imread/imwrite与imdecode/imencode的异同
OpenCV中的cv::imdecode函数是从指定的内存缓存中读一幅图像,而cv::imencode是将一幅图像写进内存缓存中。cv::imread是从指定文件载入一幅图像,cv::imwrite是保存一幅图像到指定的文件中。cv::imread和cv::imdecode内部都是通过ImageDecoder类来进行图像…

奖金+招聘绿色通道,这一届算法大赛关注下?
大赛背景伴随着5G、物联网与大数据形成的后互联网格局的逐步形成,日益多样化的用户触点、庞杂的行为数据和沉重的业务体量也给我们的数据资产管理带来了不容忽视的挑战。为了建立更加精准的数据挖掘形式和更加智能的机器学习算法,对不断生成的用户行为事…
Linux文件属性
文件属性和权限 [rootdaf root]# ls -al total 64 drwxr-x--- 4 root root 4096 Feb 14 22:02 . drwxr-xr-x 23 root root 4096 Feb 16 13:35 .. -rw-r--r-- 1 root root 1210 Feb 10 06:03 anaconda-ks.cfg -rw------- 1…

Caffe源码中layer文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/layer.hpp文件的内容:1. include文件:(1)、<caffe/blob.hpp>:此文件的介绍可以参考:http://b…

全球首个软硬件推理平台 :NVDLA编译器正式开源
作者 | 神经小姐姐来源 | HyperAI超神经(ID:HyperAI)【导读】为深度学习设计新的定制硬件加速器,是目前的一个趋势,但用一种新的设计,实现最先进的性能和效率却具有挑战性。近日,英伟达开源了软硬件推理平台…

【leetcode】1018. Binary Prefix Divisible By 5
题目如下: Given an array A of 0s and 1s, consider N_i: the i-th subarray from A[0] to A[i] interpreted as a binary number (from most-significant-bit to least-significant-bit.) Return a list of booleans answer, where answer[i]is true if and only …

php中magic_quotes_gpc对unserialize的影响
昨天朋友让我帮他解决下他网站的购物车程序的问题,程序用的是PHPCMS,换空间前是好的(刚换的空间),具体问题是提示成功加入购物车后跳转到购物车页面,购物车里为空。 我看了下代码,大致的原理就是…

值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(上)
作者 | 黄浴转载自知乎专栏自动驾驶的挑战和发展【导读】上周,我们在激光雷达,马斯克看不上,却又无可替代?》一文中对自动驾驶中广泛使用的激光雷达进行了简单的科普,今天,这篇文章将各大公司和机构基于激光…
Caffe源码中Pooling Layer文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/vision_layers文件中PoolingLayer类,在最新版caffe中,PoolingLayer类被单独放在了include/caffe/layers/pooling_layer.hpp文件中…

手持终端以物联网的模式
近年来,物联宇手持终端以物联网的模式,开启了信息化的管理模式,迸发了新的自我提升和业务新商机。手持终端是一款智能的电子设备,它的核心功能为用户速带来业务效率的提升,如快递行业,每天的工作量需求大&a…

Linux系统基础-管理之用户、权限管理
Linux用户、权限管理一、如何实现"用户管理"1.什么是用户 "User" : 是一个使用者获取系统资源的凭证,是权限的结合,为了识别界定每一个用户所能访问的资源及其服务的。只是一种凭证。会有一个表示数字,计算机会首…
Ubuntu14.04 LTS中安装Ruby 2.4源码操作步骤
(1)、查看是否已安装ruby,执行命令,如下图,可见机子上还没有安装ruby,即使通过apt-get install命令安装也只能安装1.8版本;(2)、从 http://www.ruby-lang.org/en/downloads/ 下载最新稳定版2.4即ruby-2.4.0.tar.gz&a…

图森未来完成2.15亿美元D轮融资,将拓展无人驾驶运输服务
AI科技大本营消息,9月17日,图森未来宣布获得1.2亿美元的D2轮投资,并完成总额为2.15亿美元的D轮融资。D2轮的投资方除了此前已宣布的UPS外,还包括新的投资方鼎晖资本,以及一级供应商万都(Mando Corporation&…

中国互联网公司开源项目调研报告
近年来,开源技术得到越来越多的重视,微软收购GitHub、IBM收购红帽,都表明了开源的价值。国内公司也越来越多的参与开源,加入开源基金会/贡献开源项目。但是,它们到底做得如何呢?为此InfoQ统计了国内在GitHu…

ReSharper 配置及用法
1:安装后,Resharper会用他自己的英文智能提示,替换掉 vs2010的智能提示,所以我们要换回到vs2010的智能提示 2:快捷键。是使用vs2010的快捷键还是使用 Resharper的快捷键呢?我是使用re的快捷键 3: Resharper安装后,会做…
Ubuntu14.04 LTS中升级gcc/g++版本到4.9.4的操作步骤
Ubuntu14.04 LTS中默认的gcc/g版本为4.8.4,如下图,在C11中增加了对正则表达式的支持,但是好像到gcc/g 4.9.2版本才会对正则表达式能很好的支持,这里介绍下Ubuntu14.04 LTS升级gcc/g版本到4.9.4的操作步骤: 1࿰…

华为全球最快AI训练集群Atlas 900诞生
作者 | 胡巍巍来源 | CSDN(ID:CSDNnews)你,和计算有什么关系?早上,你打开手机App,查看天气预报,和计算有关;中午,你打开支付宝人脸支付,买了份宫保…

rabbitmq可靠发送的自动重试机制 --转
原贴地址 https://www.jianshu.com/p/6579e48d18ae https://www.jianshu.com/p/4112d78a8753 git项目代码地址 https://github.com/littlersmall/rabbitmq-access 转载于:https://www.cnblogs.com/hmpcly/p/10641688.html

在Linux下如何安装配置SVN服务
2019独角兽企业重金招聘Python工程师标准>>> Linux下在阿里云上架一个svn centos上安装:yum install subversion 安装成功 键入命令 svnserve --version 有版本信息则进行下一步 1、新建版本库目录 mkdir -p /opt/svndata/repos 2、设置此目录为…

201671030129 周婷 《英文文本统计分析》结对项目报告
项目内容这个作业属于哪个课程软件工程这个作业的要求在哪里软件工程结对项目课程学习目标熟悉软件开发整体流程及结对编程,提升自身能力本次作业在哪个具体方面帮助我们实现目标体验组队编程,体验一个完整的工程任务一: 作业所点评博客GetHu…