# 循环结构

### 循环结构(while)

- 格式

  ```python
while 表达式:
语句块
``` > 执行流程:当程序执行到while语句时,首先判断表达式的真假。若表达式的值为真,则执行缩进的语句块,然后返回while,继续判断表达式的真假,直到表达式的值为假;若表达式的值为假,则直接跳过语句块,执行后面的代码。 - 说明: - 表达式:也叫循环条件
- 语句块:也叫循环体
- 死循环:循环条件一直成立
- break:跳出循环
- continue:结束本次循环,进入下次循环
- else:缩进的语句块,在循环正常退出时执行,break退出时不执行 ### 循环结构(for-in) - 说明:for-in也是一种循环,经常用于遍历可迭代的对象,如:字符串、列表、元组、字典等 - 格式 ```python
for x in y:
语句块
``` > 执行流程:x依次表示y中的一个元素,遍历结束循环就结束了。 ### 列表生成式 - 可迭代对象:可以迭代遍历的对象,如:列表、元组、字典 - range函数 ```python
# 一个对象,保存了产生连续整数的算法
# 可以节约空间
# print(range(10))
# 指定区间,默认其实值为0
print(range(2, 10)) # 可以遍历
for i in range(10):
print(i) # 可以转换成列表
print(list(range(10)))
``` - 列表生成式 ```python
# 列表生成式:快速生成列表
# print([i for i in range(1, 11)])
# print([i*2 for i in range(1, 11)])
# print([i*i for i in range(1, 11)])
# print([str(i) for i in range(1, 11)])
print([i for i in range(1, 11) if i % 2 == 0])
``` ### 循环嵌套 - 循环能否嵌套? - 答:能 - 循环嵌套示例 ```python
n = int(input('请输入一个整数:')) for i in range(n):
for j in range(i+1):
print(j+1, end=' ')
print()
``` > 练习:使用while实现上面的功能
>
> ```python
> #1.使用while实现输入一个数,输出1 12 123 ....
> n = int(input('请输入一个整数:'))
> i = 1
> while i<= n:
> i +=1
> print([s for s in range(1, i)])
> ```
>
> ​ - 列表元素排序 - 冒泡排序 ```python
lt = [1, 5, 7, 3, 2]
# 冒泡排序:从小到大
# 第一轮:1 5 3 2 7
# 第二轮:1 3 2 5 7 n = len(lt) # 外层循环控制比较多少轮
for i in range(n-1):
# 内层循环控制元素的比较
for j in range(n-i-1):
if lt[j] > lt[j+1]:
# 通用交换元素
# temp = lt[j]
# lt[j] = lt[j+1]
# lt[j+1] = temp
# python特有的
lt[j], lt[j+1] = lt[j+1], lt[j]
print(lt)
``` - 选择排序 ```
思想:先取出第一个元素,然后依次与后面所有的元素比较,不合适,发生交换。
示例:lt = [3, 5, 2, 8, 6, 4]
第一轮:2, 5, 3, 8, 6, 4
第二轮:2,3,5, 8, 6, 4
第三轮:2,3, 4, 8, 6, 5
``` > 练习:实现选择排序算法
>
> ```python
> #先取第一个元素,然后依次与后面的所有的元素比较,不合适,发生交换
> lt = [8,5,6,7,2,1,3]
> n = len(lt)
> for i in range(0,n-1):
> for j in range(i+1,n):
> if lt[i] > lt[j]:
> lt[i],lt[j] =lt[j], lt[i]
> print(lt)
> ```
>
> ​ ### 字符串操作 - 拼接与切割 ```python
s = 'I love you more than I can say'
# 按照指定的内容进行切割, 返回一个列表
# sep:指定按照什么内容进行切割
# maxsplit:指定切割次数
# ret = s.split(' ', maxsplit=1)
# ret = s.split()
# 从右边开始切割
ret = s.rsplit(' ', maxsplit=1)
print(ret) s = 'Hello\nworld'
# 安照换行进行切割
print(s.splitlines()) s = 'I love you more than I can say'
ret = s.split()
# 字符串的拼接
s2 = '*'.join(ret)
print(s2)
``` - 查找统计判断 ```python
s = 'Hi buddy, if you have something to say, than say; if you have nothing to say, than go!' # 子串查找,找到返回首次出现的位置(下标),找不到返回-1
# ret = s.find('good')
# 从后面开始查找
# ret = s.rfind('if')
# 统计次数
# ret = s.count('if') # 判断是否以指定内容开头
# ret = s.startswith('Hi') # 判断是否以指定内容结束
ret = s.endswith('go') print(ret)
``` - 转换及替换 ```python
s = 'hello world!' # 转换为大写
print(s.upper()) # 转换为小写
print(s.lower()) # 大小写转换
print(s.swapcase()) # 首字母大写
print(s.capitalize()) # 每个单词首字母大写
print(s.title()) # 用指定的新内容替换就内容,不用写count,直接写数字
print(s.replace('l', 'L'))
``` - 类型判断 ```python
s = 'Hello' # 是否是全大写
print(s.isupper()) # 是否是全小写
print(s.islower()) # 是否每个单词只有首字母大写
print(s.istitle()) # s = '123'
# 是否是全数字
print(s.isdecimal()) # 是否全是字母
print(s.isalpha()) s = '123'
# 是否全是数字或字母
print(s.isalnum())
``` ### 练习 - 计算1~100之间所有整数的和 - ```python
#计算1~100之间所有整数的和
i = 1
sum = 0
while i<=100:
sum +=i
i +=1
print('1+2+3+...+100=',sum)
#
i = 0
lt =[]
while i <=100:
lt.append(i)
i+=1
print(sum(lt))
``` ​ - 打印字符A~Z - ```python
#2.打印字符A-Z
a = 65
b =90
for i in range(a,b+1):
print(chr(i))
``` ​ - 循环输入10个字符,大写转小写,小写转大写,其它字符不变,然后输出 - ```python
#3.循环输入10个字符,大写转小写,小写转大写,其它字符不变,然后输出.
lt = 'hello WorLd!'
i = 0
a = len(lt)
while i<a:
b = lt[i]
if b.islower():
print(b.upper())
else:
print(b.lower())
i +=1
``` ​ - 将12345转换为54321 - ```python
#当a不为零的时候,循环条件为true,执行语句块
while a :
#对a求余数,第一次循环则把5求出来
last = a%10
#对a求余后取整,保证下一位在下一个循环被取出
a=a//10
# a , last = divmod(a,10)
#ret这个变量,第一次将五放在各位,第二次放在十位,依次递增。
ret = ret*10 + last #打印ret
print(ret)
``` ​ - 将12345转换为'12345',不要使用str - ```python
#5.将12345转换为'12345',不要使用str
a = 12345
b = '%d' % a
print(b, type(b))
``` 将‘12345’转化成54321 ```python
#将’12345‘转换成 54321
a = '12345'
j = 0
set = 0
for i in a:
j = j*10 + (ord(i)-ord('0'))
#print(j)
while j :
j , last = divmod(j,10)
set = last + set * 10
print(set)
``` ​ - 将'12345'转换为12345,不要使用int - ```python
#6.将'12345'转换为12345,不要使用int
s = "12345"
a = 0
for x in s :
a = a*10 +( ord(x)-ord("0"))
print(a)
``` - 遍历列表,打印:`我叫name,今年age岁,家住dizhi,电话phone` - ```python
#7.遍历列表,打印:我叫name,今年age岁,家住dizhi,电话phone
lt = [
{'name':'小王', 'age':18, 'info':[('phone', '123'), ('dizhi', '广州')]},
{'name':'小芳', 'age':19, 'info':[('phone', '789'), ('dizhi', '深圳')]},
{'name':'小杜', 'age':22, 'info':[('phone', '567'), ('dizhi', '北京')]},
{'name':'小孟', 'age':28, 'info':[('phone', '000'), ('dizhi', '上海')]},
{'name':'小乔', 'age':26, 'info':[('phone', '111'), ('dizhi', '河南')]},
]
for j in range(len(lt)):
print('我叫{},今年{}岁,家住{},电话{}'.format(lt[j].get('name'),lt[j].get('age'),lt[j].get('info')[1][1],lt[j].get('info')[0][1])) ``` ​ ```python
lt = [
{'name':'小王', 'age':18, 'info':[('phone', '123'), ('dizhi', '广州')]},
{'name':'小芳', 'age':19, 'info':[('phone', '789'), ('dizhi', '深圳')]},
{'name':'小杜', 'age':22, 'info':[('phone', '567'), ('dizhi', '北京')]},
{'name':'小孟', 'age':28, 'info':[('phone', '000'), ('dizhi', '上海')]},
{'name':'小乔', 'age':26, 'info':[('phone', '111'), ('dizhi', '河南')]},
] ``` - 打印九九乘法表 - ```python
#8.打印九九乘法表
for i in range (1,10):
for j in range(1,i+1):
print("%d*%d=%d" % (i,j,i*j),end=" ")
print("")
i = 1
while i < 10:
for j in range (i, 10):
print("%s×%s=%s"%(i,j,i*j),end=" ")
print()
i+=1
``` ​ - 从终端输入两个整数m和n,打印m*n的表格,如:2,5,打印如下图形: - ```python
m = int(input("请输入一个数字:"))
n = int(input("请输入一个数字:"))
for x in range(1,m+1):
for y in range(1,n+1): print("{}".format((x-1)*n+y),end=" ")
print()
#m = int(input("请输入一个数字:"))
n = int(input("请输入一个数字:"))
s = m*n
for x in range(s):
if x%n == 0:
print()
print(x+1, end=" ")
``` ​ ```
1 2 3 4 5
6 7 8 9 10
``` ​

python学习_循环结构 and 类型判断的更多相关文章

  1. python分支和循环结构

    本文收录在Python从入门到精通系列文章系列 1. 分支结构 1.1 应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构.然而仅有顺序结构并不能解决 ...

  2. python基础之循环结构以及列表

    python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...

  3. 第五篇:python基础之循环结构以及列表

    python基础之循环结构以及列表   python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.pyth ...

  4. python学习_数据处理编程实例(二)

    在上一节python学习_数据处理编程实例(二)的基础上数据发生了变化,文件中除了学生的成绩外,新增了学生姓名和出生年月的信息,因此将要成变成:分别根据姓名输出每个学生的无重复的前三个最好成绩和出生年 ...

  5. Python学习笔记(Ⅱ)——循环/选择/函数

    一.循环结构 python中提供了for循环和while循环两种操作,没有do……while语句. 1.for循环: 与其他语言中for循环的常见的写法如for (int i=0;i<10;i+ ...

  6. python中的循环结构等相关知识

    ==分支结构== 1.单分支:一般用于只会发生一种情况的场景,if #90以上优秀 score=95 if score>90: print("优秀") 2.双分支:一般用于会 ...

  7. [python学习手册-笔记]003.数值类型

    003.数值类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...

  8. [python学习手册-笔记]004.动态类型

    004.动态类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...

  9. 全国计算机等级考试二级教程-C语言程序设计_第5章_循环结构

    for循环结构的嵌套 外层循环每循环一次,内层循环会完整循环一次. 外层循环是竖. 内层循环是横. for, do...while, while的选择: 如果有固定次数,如阶乘! ,判断素数,用 fo ...

随机推荐

  1. Poj(1125),Floyd,

    题目链接:http://poj.org/problem?id=1125 多源点最短路中的,最长路的,最短路. 看到这里就懵逼了,解释一下,找到一个源点,使得路最短,(遍历源点),路最短怎么求呢? 就是 ...

  2. node.js 下使用 util.inherits 来实现继承

    上一篇博客说到了node.js继承events类实现事件发射和事件绑定函数,其中我们实现了一个公用基类 _base ,然后在模型中差异化的定义了各种业务需要的模型并继承 _base 公共基类.但是其中 ...

  3. centos6.5下编译安装FFmpeg

    以下安装步骤基本来自官网,做个笔记以方便自己以后查看 http://trac.ffmpeg.org/wiki/CompilationGuide 1.安装依赖包 <span style=" ...

  4. halcon保存带有region的图片算子

    显示带区域的图片除了可以用dev_display挨个显示外再截图,还可以通过一个算子来实现这一功能 这个算子是:dump_window_image.(其实就是截图) 这个算子的意思是把WindowHa ...

  5. 运行时库例程-acc_get_num_devices

    格式C 或 C++: int acc_get_num_devices( acc_device_t ); 描述例程 acc_get_num_devices 返回主机上指定类型的加速器设备数量.输入参数说 ...

  6. C# 复合赋值操作符

    前面讲过如何使用算术操作符来创建新值.例如,以下语句使用操作符+来创建比变量answer大42的一个值,新值将写入控制台: Console.WriteLine(answer + 42); 前面还讲过如 ...

  7. git(将现有项目加入osChina)

    将现有项目加入osChina 在osChina中创建项目 注意不要初始化项目.(其实初始化也没有什么问题,可以直接clone到本地,再把项目添加进去就行了,后续操作一样的) 项目现在基本为空,得到项目 ...

  8. LeetCode706. Design HashMap

    题目  不使用任何内建的哈希表库设计一个哈希映射 具体地说,你的设计应该包含以下的功能 put(key, value):向哈希映射中插入(键,值)的数值对.如果键对应的值已经存在,更新这个值. get ...

  9. django+xadmin在线教育平台(十三)

    这个6-8对应对应6-11,6-12 拷入forgetpassword页面 书写处理忘记密码的view users/views.py # 用户忘记密码的处理view class ForgetPwdVi ...

  10. 【word】html转doc的小研究

    html转doc,页眉页脚丢失 html 转 doc,是全屏铺满(缩放级别很高)