在默认情况下,
print
函数输出内容之后,会自动在内容末尾增加换行
如果不希望末尾增加换行,可以在
print
函数输出内容的后面增加
, end=""
其中
""
中间可以指定
print
函数输出内容之后,继续希望显示的内容
语法格式如下:
print("*", end="")
print("*", end=" ")
print("*", end="\t")
print()
print()
函数中 end=""
表示向控制台输出内容结束之后,不会换行
由于程序员的原因,忘记 在循环内部 修改循环的判断条件,导致循环持续执行,程序无法终止!
i = 0
while i <= 10:
print('hello')
在控制台中可以按 Ctrl + C
来进行强制退出死循环。
for
循环基本使用
Python
中 for
循环可以遍历一切 可迭代对象(Iterable),例如一个列表、字符串等。
可迭代对象,在【Python 高级进阶】专栏有详细介绍,大家如果想具体了解,可以先移步到 Python 迭代器 查看
for 语句基本语法
for 变量 in 可迭代对象:
for 循环流程图
graph TD
start[开始]-->cond{是否还有元素?}
cond--True-->op[重复执行的代码]-->cond
cond--False-->stop[结束]
for 循环实例
遍历编程语言列表
In [1]: languages = ['C', 'Python', 'Java', 'C++', 'Php']
In [2]: for lang in languages:
...: print(lang)
Python
In [3]:
遍历字符串
In [3]: message = '人生苦短,我用Python'
In [4]: for msg in message:
...: print(msg)
In [5]:
遍历 range()
生成的数字序列
range()
语法
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如 range(3)
等价于 range(0, 3)
stop: 计数到 stop 结束,但不包括 stop
。例如 range(0, 5)
是 [0, 1, 2, 3, 4]
没有5
step:步长,默认为 1
。例如 range(0, 3)
等价于 range(0, 3, 1)
IPython 测验
In [10]:
In [11]: list(range(6))
Out[11]: [0, 1, 2, 3, 4, 5]
In [12]:
In [13]: list(range(3, 10))
Out[13]: [3, 4, 5, 6, 7, 8, 9]
In [14]:
In [15]: list(range(0, 10, 2))
Out[15]: [0, 2, 4, 6, 8]
这样要使用 list
才能展示其内部元素。
for
循环遍历 range()
In [16]:
In [17]: for i in range(6):
...: print(i)
In [18]: for i in range(3, 9):
...: print(i)
In [19]: for i in range(0, 10, 2):
...: print(i)
In [20]:
for 循环嵌套
for
嵌套就是:for
里面还有 for
for 变量 in 可迭代对象:
外层循环体
for 变量 in 可迭代对象:
内层循环体
外层循环体
案例: 求 1! + 2! + 3! + 4! + 5!
,[1, 5]
之间的阶乘累加之和。
2的阶乘 2!
,就是 1 * 2
3的阶乘 3!
,就是 1 * 2 * 3
程序设计如下
total = 0
for i in range(1, 6):
temp = 1
for j in range(1, i+1):
temp = temp * j
total = total + temp
print(total)
break 和 continue
break
和 continue
是专门在循环中使用的关键字,用于循环的中断。
break
,退出本层循环,不再执行后续的代码
continue
,终止本次循环,不执行后续的代码,再次进行循环条件判断
break
和 continue
只针对 当前所在循环 有效
break
在循环过程中,如果 某一个条件满足后,不 再希望 循环继续执行,可以使用 break
退出循环
i = 0
while i < 10:
if i == 3:
break
print(i)
i += 1
print("over")
break
只针对当前所在循环有效
continue
在循环过程中,如果 某一个条件满足后,不 希望 执行循环代码,但是又不希望退出循环,可以使用 continue
也就是:在整个循环中,只有某些条件,不需要执行循环代码,而其他条件都需要执行
i = 0
while i < 10:
if i == 7:
i += 1
continue
print(i)
i += 1
需要注意:使用 continue
时,条件处理部分的代码,需要特别注意,不小心会出现 死循环
continue
只针对当前所在循环有效
Python 循环的 else 语法
Python
循环语句 for, while
有可能带一个 else
分支,当一个 for
循环正常执行完毕时或者当一个while
循环正常执行完毕(循环条件变为False)时它被触发执行,但是如果这个循环被 break
语句非正常中止时,则这个 else
分支不执行。
while ... else ...
while 循环条件:
else:
循环正常结束
for ... else ...
for 变量 in 可迭代对象:
else:
循环正常结束
IPython 测验
In [1]: for i in range(5):
...: print(i)
...: else:
...: print('for 循环正常结束')
...: print(i)
for 循环正常结束
In [2]: num = 1
...: while num <= 5:
...: print(num)
...: num = num + 1
...: else:
...: print('while 循环正常结束')
...: print(num)
while 循环正常结束
In [3]: for i in range(10):
...: print(i)
...: if i == 5:
...: break
...: else:
...: print('for 循环正常结束')
...: print(i)
例如 Python
官方文档中的寻找素数的例子 - 打印10以内的素数
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n//x)
break
else:
print(n, 'is a prime number')
运行结果如下:
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
循环实战小案例
[0, 100]
之间所有偶数的累加求和结果
result = 0
i = 0
while i <= 100:
if i % 2 == 0:
result += i
i += 1
print(result)
打印等腰三角形
打印 n
层的等腰三角形
使用字符串 *
打印
每层 *
的数量按照 1, 3, 5, 7, 9
的方式依次递增,且构成等腰三角形
例如 5
层的等腰三角形如下显示:
*****
*******
*********
程序设计如下
while True:
level = input('请输入要打印等腰三角形的层数(输入q退出): ')
if level == 'q':
break
level = int(level)
row = 1
while row <= level:
space_count = level - row
print(' ' * space_count, end='')
char_count = row * 2 - 1
print('*' * char_count)
row = row + 1
运行结果如下:
请输入要打印等腰三角形的层数(输入q退出): 3
*****
请输入要打印等腰三角形的层数(输入q退出): 5
*****
*******
*********
请输入要打印等腰三角形的层数(输入q退出): 7
*****
*******
*********
***********
*************
请输入要打印等腰三角形的层数(输入q退出): q
Process finished with exit code 0
打印 99乘法口诀表
for i in range(1, 10):
for j in range(1, i + 1):
print('%d * %d = %d' % (j, i, j * i), end='\t')
print()
这样使用到了字符串的格式化输出,其中
f'{j} * {i} = {j * i}'
,在字符串前面加上 f
,就是模板字符串,在字符串里面可以直接使用{xxx}
来引用变量或进行相应的运算。
'%d * %d = %d' % (j, i, j*i)'
,则是格式化字符串,%d
代表格式整型数字 %
后面的数据会依次填充 %d
的占位。
这里只做一个初步介绍,在后续的 字符串 讲解中会进行详细介绍。
运行结果如下:
✍ 用 Code 谱写世界,让生活更有趣。❤️
✍ 万水千山总是情,点赞再走行不行。❤️
✍ 码字不易,还望各位大侠多多支持。❤️
