2017/9/29

字符串格式化表达式,while语句嵌套,for循环,break,continue,死循环

=====================================================================

技巧:

subl中按ctrl+shift+上(下)键,能够上下移动光标所在的行数据

=====================================================================

while语句嵌套:

while a > b:

while b > c:

...

else:

...

实例:

i = 1

while i <= 10:

j = 1

while j < 10

print("i=",i,"j=",j)

j += 1

i += 1

spyder3(python的编译执行器)的使用:

f5 runfile 运行

console 控制台 相当于终端

绿色执行 蓝色调试执行

variable explorer 可观察变量的变化

=====================================================================

for循环语句:

for语句可以用来遍历序列或可迭代对象的每一个元素(遍历:从头到尾,可迭代:可以从头查到尾)

可迭代对象包括:

字符串 str

列表   list

元组   tuple

字典   dict

集合   set

固定集合frozenset

迭代器

for语句的语法:

for 变量列表 in 可迭代对象:

语句1

...

else:

语句2

...

说明:else子句部分可以省略

语句1的执行次数与可迭代对象的元素个数有关

实例1:

s = "hello"

for ch in s:           #能够实现对字符串"hello"的遍历查询

print("ch->>",ch)

else:

print("for语句结束")

print("程序结束")

执行结果:

>>>

ch->> h

ch->> e

ch->> l

ch->> l

ch->> o

for语句结束

程序结束

实例2:

任意输入一个字符串,计算其中的‘a’的个数 并打印出来

str = input("请输入一个字符串:")

i=0

for ch in str:

if ch == 'a':

i += 1

print(i)

总结:

能够实现对输入字符串的遍历查询,"for"语句的"in" 和 "if" 语句中的"in"返回值略微不同,前者返回遍历字符,后者返回"True"和"False"

range函数:生成可迭代整数数字序列,是个整数集合的对象,经常用在for循环中(比如对电话号码和计数的操作)

格式:见>>>help(range)

range(stop):

从零开始,每次生成一个整数,后加1操作,直到stop为止(不包括stop)

range(start,stop[,step])

start 开始

stop  结束(不包含stop)

step  步长(可以为负数,且可以省略)

例:

range(3)  >>> 0 1 2

range(5)  >>> 0 1 2 3 4

range(1,8,2)   >>>1 3 5 7

range(5,0,-1)  >>>5 4 3 2 1

range(1,3)    >>>1 2

range(4,0)    >>>空,没有数据,不是4 3 2 1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

实例1:

for x in range(10):

print(x)

实例2:

for x in range(10):

print("aaaaaaaaaaaaaaaaaaaa")

>>>aaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaa

------------------------------------

实例3:

打印1-10奇数

打印1-10偶数

print("奇数:",end=' ')

for x in range(1,11)

if x % 2 == 1:

print(x,sep=' ')

------------------------------------

实例4:打印1-100的奇数:

print("奇数:",end=' ')

for x in range(1,11):

if x % 2 == 1:

print(x,end=' ')

print()

注:

print(x,end=' ')

print()

------------------------------------

实例5:

打印100-1000之间的水仙花数(个位3方+十位3方+百位3方 = 原数)

例如: 153 370

(1)通过取整或求余数得到各个位置的数,再完成水仙花数的判断

for x in (100,1000):

a = x // 100

b = x // 10 % 10

c = x  % 10

if x = a**3+b**3+c**3:

print(x)

(2)将整数转换成字符串以便于进行拆减,(数组化后

for i in range(100,1000)

j = str(i)

a = int(j[0])

b = int(j[1])

c = int(j[2])

if i == a**3 + b**3 + c**3

print(i)

(3)

for i in range(100,1000):

m = 0

for j in str(i):

m += int(j)**3

if i == m:

print(i)

=====================================================================

break语句:用于循环语句(while,for)中,用来终止当前循环语句的执行

实例1:

i = 0

while i < 10:

print(i)

i = i + 1                 #这是一个动作语句,而不是判断语句,只有在判断语句中,子语句才会缩进进行一个判断和修改,实际上已经缩进在判断语句中

else:

print("while循环结束")

print("程序结束")

bug提示:若i自增缩进错误,将出现提示:IndentationError: unexpected indent

------------------------------------

实例2:

i = 0

while i < 10:

break          #while语句结束,break是一个动作语句,缩进在判断语句中

print(i)       #如果break放在这一行与print交换位置,则输出0,再打印程序结束

i = i + 1

else:

print("while循环结束")

print("程序结束")  #只输出“程序结束”break跳出最近的循环语句;

这里while和else合体构成一个完成的循环系统,所以break用于跳出这个完整的循环系统,不会对循环元素进行任何处理。

说明:

1)break语句通常和if语句组合使用;

2) 当break语句执行后,此循环语句break之后的语句将不再执行;

3)break语句终止循环时,循环语句的else子句将不会执行;

4)break语句只能终止当前循环语句的执行,如有循环嵌套时,不会跳出外重循环(跳出子层,不跳出外层);

=====================================================================

continue语句:用于循环语句中,不再执行本次循环内continue之后的语句,重新开始一次新的循环(跳出子层以后,从下一个循环元素(实际是用本元素继续处理)继续处理)。

示例1:打印10以内的偶数

for x in range(10):

if x%2==1:

continue          #奇数将会进行continue处理,即放弃这个循环元素的左右处理,开始下一个循环元素的处理

print(x,end=' ')  #如果是奇数,就打印在一行,用空格间隔,但实际不会进行任何的数据处理

else:

print("打印结束")

print("程序结束")

>>>打印结束

打印结束

打印结束

打印结束

打印结束

程序结束

实例2:

x = 1

while x < 10:

if x%2==1:

continue

print(x,end=' ')

x +=1

else:

print("打印结束")

print("程序结束")

总结:这实际上是个死循环,它只有判断语句,由于x<10的原因,x会停在值2反复在else中进行"打印结束"打印操作,变成一个死循环

实例3(改进实例2):

x = 1

while x < 10:

if x%2==1:

x += 1

continue

print(x,end=' ')

x +=1

else:

x += 1              #添加该语句 完成x的自增数值循环,否则会停在某个值一直进行打印操作

print("打印结束")

print("程序结束")

说明:

1)在while语句中执行continue语句,将会直接跳转到while语句真值表达式处重新判断循环条件(放弃本元素的处理,将该元素带到真值表达式前完成后面的操作,很容易出现死循环!!)

2)在for语句中执行continue语句,将会从可迭代对象中移向下一个元素再次进行循环;

=====================================================================

14.死循环:是指循环条件一直成立的循环;

死循环通常用break语句来终止循环;

死循环的else子句永远不会执行;

=====================================================================

练习:

1.打印1-20之间的整数,打印在一行显示每个数字之间用一个空格分隔:1 2 3 ...18 19 20

解:

for x in range(1,21):

print(x,end = ' ')

print()   #将提示符转到下一行

---------------------------

2.打印1-20之间的整数,每一行打印五个,打印四行,如下:

1 2 3 4 5

6 7 8 9 10

11 12 13...

...

解:

for x in range(1,21):

print(x,end = ' ')

if x % 5 == 0:

print('\n')  ##k可以简化为print()

#如果不加引号,会将其认为是变量,进而输出变量的值;这里加了引号,表示输出字符,而又添加了\转义,变成了换行字符,类比空格字符

---------------------------

3.输入一个整数(代表树干的高度),打印如下一棵树:

输入:2     行数   前后空格   星星

*       1         1      1

***      2         0      3

*

*

输入:3

*       1         2      1

***      2         1      3

*****     3         0      5

*

*

*

...

解:

n = input("请输入一个整数:")

n = int(n)

for x in range(1,n+1):           #这个x用来记录三角形的行数,即第x行;只是用于计数

print(' '*(n-x),'*'*(x*2-1),' '*(n-x),end='\n')

for x in range(1,n+1):

print(' '*(n-1),'*',end='\n')        #同上,记录树干的行数;只是用于计数

补充:输出部分可以不用 ,而使用 + 进行追加

---------------------------

4.输入unicode的起始编码和终止编码,打印此范围内所有的字符,如:

$./my_unicode.py

请输入起始值:48

请输入终止值:64

打印结果如下:

十进制编码        十六进制编码(hex())     文字 chr()

48                  0x30                     0

49                  0x31                     1

50                  0x32                     2

解1:

n1 = int(input("请输入起始值:"))

n2 = int(input("请输入终止值:"))

print("十进制编码",' '*3,"十六进制编码hex()",' '*3,"文字,chr()",end='\n')

for x in range(n1,n2+1):

print(x,' '*(len('十进制编码')+6),hex(x),' '*(len('十六进制编码hex

()')+6),chr(x),end='\n')

注意:要注意print的位置

新解法:

begin = int(input("请输入起始值:"))

end = int(input("请输入终止值:"))

print("十进制编码  十六进制编码  文字")

for x in range(begin,end+1):

print(str(x).center(11),hex(x).center(14),chr(x))

5.打印九九乘法表

解:

for x in range(1,10):

for y in range(1,x+1):

print(x,'*',y,'=',x*y,' ',sep='',end=' ')

print('\n')

新解法:!!!!!!!!!!!!!

for row in range(1,10):

for col in range(1,row+1):

print("%d*%d=%d" % (col,row,col*row),end=' ')  ##格式化输出

print()           ##与上一行末尾的' '连用能够实现一行多元素输出后再转行

6.打印前20个斐波那契数:1 1 2 3 5 8 13 21 34 55...

解:

a=1

b=1

print(a,b,sep=' ',end=' ')

for i in range(1,10):

a=a+b

print(a,end=' ')

b=b+a

print(b,end=' ')

print('\n')

补充:

print(a,b,sep=' ',end=' ')

可以写成:

print(a,end=' ')

print(b,end=' ')

解法1:

a = 1

b = 1

print(a,end=' ')

print(b,end=' ')

for i in range(18):

n = a + b

print(n,end=' ')

a = b

b = n

print()

解法2:

a = 1

b = 1

print(a,end=' ')

print(b,end=' ')

for i in range(18):

print(a+b,end=' ')

a , b = b , a + b

print()

新的解法3-元组赋值-for:

a = 1

b = 1

for x in range(20):

print(a,end = ' ')

a,b = b,a+b

print()

解法4-列表-元组赋值:

a = 1

b = 1

L = []

for x in range(20):

L.append(a)

a,b = b,a+b

for x in L:

print(x,end=' ')

print()

解法5-列表形式输出:

a = 1

b = 1

L = []

for x in range(20):

L.append(a)

a,b = b,a+b

print(L)

解法6-列表:

L = [1,1]

while len(L) < 20:

L.append(L[-1]+L[-2])

print(L)

python笔记5 - 字符串格式化表达式,while语句嵌套,for循环,break,continue,死循环相关推荐

  1. python笔记2 - 函数,表达式,语句

    1.python诞生 创始人:Guido van Rossum(荷兰人) 时间:1989年圣诞节 地点:阿姆斯特丹 应用领域:     系统运维     网络编程(搜索引擎,爬虫,服务器编程等)   ...

  2. Python 中的 字符串格式化

    Python 中的 字符串格式化 1. 字符串格式化的种类 2. % 格式化方式 3. % 格式化方式例子 4. format 格式化方式 5. format 格式化方式例子 1. 字符串格式化的种类 ...

  3. python整数格式化表达式_Python字符串格式化表达式和格式化方法

    Python格式化字符串由两种方式可以选择:一种是格式化表达式(Formatting Expression),一种是格式化方法(Formatting Method).其中格式化表达式在全Python版 ...

  4. 【python】之字符串格式化

    个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主  特别标注:仅为自己的学习记录笔记,方便复习和加深记忆,仅供借鉴参考! 目录 字符串格式化 1.字符串格式化符号 2.字 ...

  5. python十二:字符串格式化

    # python的字符串格式化有两种: 百分号方式,format方式 s = "Hello %s, Hello %s" % ("world", "py ...

  6. Python学习_字符串格式化

    #!/usr/bin/env python # -*- coding:utf-8 -*-# 百分号格式化 # %[(name)[flags][width].[precision]]typecode # ...

  7. 笨方法“学习python笔记之字符串

    字符串(str)是python的一种重要的数据格式,官方文档中对字符串的解释为一种文本序列格式,其内容不可修改(有点类似元组),官方解释如下: 字符串表示 可以看到官方文档里面,给出了字符串的三种表示 ...

  8. 【python笔记】选择结构:if语句详解

    目录 if语句 表达式: 语句序列: if语句的执行流程: else子句: else 子句执行流程 三元运算符: elif语句: elif执行流程 嵌套的if语句: 例:符合函数: if语句 表达式: ...

  9. 总结Python中的字符串格式化

    正式的Python专栏第22篇,同学站住,别错过这个从0开始的文章! 前篇分析了字符串的简单使用,这篇我们看看字符串的格式化 什么是字符串格式化,为什么需要这样做? 我们有时候刷抖音/B站看到封面很好 ...

最新文章

  1. 那些你踩过的币圈投资陷阱(下)
  2. .net中怎样实现json转化时仅仅处理部分属性二?
  3. .NET开发者必须学习.NET Core
  4. Akka的字数统计MapReduce
  5. Windows8.1还原文件类型的默认打开方式
  6. FreeRTOS任务优先级说明
  7. springboot整合通用mapper操作数据库
  8. Centos7安装、卸载、使用Docker
  9. tensor.view(*shape) 函数
  10. 2021-2025年中国制冷机行业市场供需与战略研究报告
  11. freebsd 运行linux,Freebsd 下运行 QQ For Linux 的方法
  12. python代码缩进中是否支持tab键和空格混用_python自测——编码规范
  13. 未能将“C:\Program Files (x86)\DevExpress 2009.2\Components\Sources\DevExpress.DLL\DevExpress.XtraGrid.v
  14. 一 破解windows7系统密码
  15. 代理IP的直接转发与隧道转发
  16. macd java_macdev/java.md at master · pubyun/macdev · GitHub
  17. FreeSwitch_CallCenter_Tiers
  18. 开放、自由、参与 ------记“武汉大学开源技术俱乐部成立仪式暨Sun技术讲坛”...
  19. python_绘制动态地图
  20. 电脑游戏灌输的70个山寨逻辑

热门文章

  1. 批量图像自动分割 grabcut+阈值分割 opencv
  2. Linux 的常用系统及网络命令
  3. 转 Vmware虚拟机怎样实现与主机同时上网的方法。
  4. 如何才能成为顶级的数据分析师?
  5. [M1]Daily Scum 10.8
  6. 智能制造是什么?智能制造需要的关键技术有哪些?
  7. UE4元数据关键字的应用与含义(一)
  8. oracle数据库设计思维导图,Oracle
  9. Scratch软件编程等级考试三级——20200913
  10. 用Java给图片添加文字水印