Python的流程控制理论2

1. while + else 语句

  while语句与else连用时,当while语句没有被关键字 break 主动结束的情况下,并且在正常结束循环体代码块之后,才会执行else的子代码。其格式如下:

while 条件表达式1:
	代码块1
else :
	代码块2   #循环体代码正常运行结束之后,运行该代码块

  例如,实现输出1~10这十个数字的案例。

count = 1
while count < 11:
	print(count)  
	count += 1
else:
	print('代码成功运行了 !!!')

2. 死循环与while的嵌套

2.1 > 死循环

  所谓的死循环就是一个代码无限次运行,永远也无法结束的循环。死循环的出现极度影响电脑的性能,甚至更有可能会造成硬件的损坏。
  例如:

count = 10
while True:
	count *= 10000000

2.2 > while的嵌套

  while 循环中可以嵌套 while 循环,其格式如下:

while 条件表达式1:
	代码块1
	...
	while 条件表达式2
		代码块2
		...

  以上格式中,首先判断外层while循的条件表示1是否成立,如果成立,则执行代码块 1,并且能够执行内层while循环。执行内层while循环时,判断条件表达式2是否成立,如果成立则执行代码块2,直到内层while循环结束。也就是说,每次执行一次外层的while语句,都要将内层的while循环重复执行一遍。
  例如,使用while循环嵌套语句打印由“ * ” 组成的直角三角形,代码如下:

i = 1
while i < 5:
	j = 1
	while j <= i
		print("*", end = "")
		j += 1
		print()
		i += 1

运行结果如图:

*
**
***
****

3. for循环

3.1 > for循环格式

  for循环相比较while循环,在功能体现上感觉更强,因为 for 循环可以做到的事情 while 循环都能做到!并且,for 循环的语法更加简单,使用频率也很高!
  我们一般会在涉及到循环取值的时候,都会首先考虑使用for 循环 而不是while 循环。其格式如下:

for 变量名 in 循环的对象:
	代码块1
	代码块2
	...

  每次执行一次代码,都会将循环的对象当中的一个元素赋值给变量名。
  例如,使用for语句一次打印“我是真牛逼”字符串

com = '我是真牛逼'
for i in com:
	print(i)

程序运行结果:

我
是
真
牛
逼

  所以说这个循环的对象可以是任意类型比如,字符串、列表、字典、元组、集合。

3.2 > for循环与关键字组合

3.2.1>for + break

  break结束本层for循环

3.2.2>for + continue

  continue结束本次for循环 直接开始下一次

3.2.3>for + else

  for循环正常结束之后运行else子代码

4. range() 函数

  range()函数经常搭配for循环使用,它的作用类似与一个迭代器,用于产生一个数据集合。

4.1 > range() 函数在不同版本的区别

  在python2 中range是直接产生一个列表,当列表中有很多个元素时就会比较的占用内存空间,但是在python3中range相当于哆啦A梦的百宝袋,既可以不占用内存空间又可以在其中取出很多的数据。在python2中有一个xrange 与python3中的range一样。

4.2 > 使用方法

4.2.1 > 用法1

  括号内只写一个数字 默认从0开始 顾头不顾尾

for i in range(10)
	print(i)
# 输出0 ~ 9 10个数字

4.2.2 > 用法2

  括号内写两个数字 自定义起始位置 顾头不顾尾

for i in range(1, 10):
     print(i)
# 输出1 ~ 9 9个数字

4.2.3 > 用法3

  括号内写三个数字 第三个数字表示的是等差数列的差值 默认是1

 for i in range(1, 10, 2):
     print(i)
# 输出 1 3 5 7 9

5. 数据类型的内置方法

5.1 > int整型

  int类型的内置有两种方法—— 1、类型转换 2、进制数转换

5.1.1 > 类型转换

  int类型数据用类型转换只能时纯数字的字符串

res = int('123')  # 将字符串'123'转换成int类型
print(res, type(res))
# 输出:123 int

5.1.2 > 进制数转换

  进制数转换的意思就是将十进制转换成其他进制后的数字

print(bin(100))  # 0b1100100    二进制(0b开头)
print(oct(100))  # 0o144        八进制(0o开头)
print(hex(100))  # 0x64         十六机制(0x开头)

''' 也可以将其他进制数转换成十进制'''

print(int('0b1100100', 2))  # 需要在后面说明数字的进制是什么
print(int('0o144', 8))
print(int('0x64', 16))

5.2 > float浮点型

5.2.1 > 类型转换

  这里的方式与int整型类似

res = float('11.11')   # 将字符串11.11转换成浮点型
print(res, type(res))  # 输出:11.11, float
res = float('11')      # 将字符串11转换成浮点型
print(res, type(res))  # 输出:11.0,float

5.3 > 字符串类型

  str可以转换所有基本数据类型,是最强大的转换了

        print(str(11), type(str(11)))
        print(str(11.11), type(str(11.11)))
        print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))
        print(str({'name': 'jason'}), type(str({'name': 'jason'})))
        print(str((1, 2, 3, 4)), type(str((1, 2, 3, 4))))
        print(str({1, 2, 3, 4}), type(str({1, 2, 3, 4})))
        print(str(True), type(str(True)))

输出结果如下: 已经全全部被转换成了str(字符串类型)

11 <class 'str'>
11.11 <class 'str'>
[1, 2, 3, 4] <class 'str'>
{'name': 'jason'} <class 'str'>
(1, 2, 3, 4) <class 'str'>
{1, 2, 3, 4} <class 'str'>
True <class 'str'>

6. 字符串列表的使用小技巧

  定义一个字符串类型的变量 i ,给它赋值 hello word

i = 'hello world'

6.1 > 索引取值

i = 'hello world'
print(i[1])
# 输出 e 这个字符

6.2 > 切片操作

6.2.1 > 数字为正数时

i = 'hello world'
print(i[2:4]) # 这里顾头不顾尾 输出的是下标为2的字符到下标为3的字符
# 输出 ll

6.2.2 > 数字为负数时

i = 'hello world'
print(i[-1])  # 取字符串i的最后一个字符
# 输出 d
print(i[-1:-5:-1])  
'''
 正常的取值方向是从左往右依此取值
 但是当第三个参数为-1时,控制了索引的方向
 改成了从 右边往左
 '''
# 输出 dlro
print(i[-5:-1]) # 取字符串i最后第五个字符 依此从左往右进行取值到最后一个字符
# 输出 worl

6.3 > 步长

i = 'hello world'
print(i[2:9])  # 第三个参数是步长 默认是1 依次获取
print(i[2:9:2])  # 间隔一个取一个
# 输出 llo wor
# 输出 lowr

6.4 > 统计字符串中的字符个数

i = 'hello world'
print(len(i))  # 统计字符串i 中的字符个数
# 输出 11

6.5 > 成员运算

i = 'hello world'
print('ll' in i) # 判断ll这两个字符是否在字符串i当中
# 输出 True

6.6 > 移除字符串首位指定的字符(使用频率较高)

  定义一个变量name,给它赋值’ 大佬 '。

6.6.1 > strip() 关键字

name = '   大佬   '
print(len(name))  # 输出字符串name 当中有几个字符
# 输出 8
gn_name = name.strip()  # 默认移除字符串首尾的空格
print(gn_name, len(gn_name))
# 输出 大佬 2

6.6.1 > strip() 中加符号

  strip() 中加入特定符号,可以实现对首尾特定符号的删除

name = '$$$$$$大佬$$'
print(len(name))  # 输出字符串name 当中有几个字符
# 输出 10
gn_name = name.strip('$')  # 默认移除字符串首尾的空格
print(gn_name, len(gn_name))
# 输出 大佬 2

6.7 > split() 关键字

  定义一个变量name,给它赋值’ 大佬|123|DBB '。

name = '大佬|123|DBB'
print(name.split('|')) # 按照特定字符(|)切割字符串name 生成一个列表
# 输出 ['大佬', '123', 'DBB']

6.7.1 > split( , maxslit=1)

  按照特定字符()切割字符串name maxsplit=1 只切割一次

name = '大佬|123|DBB'
print(name.split('|', maxsplit=1)) # 按照特定字符(|)切割字符串name maxsplit=1 只切割一次,生成一个列表 
# 输出 ['大佬', '123|DBB']

6.7.2> rsplit( , maxslit=1)

  按照特定字符()切割字符串name maxsplit=1 只切割一次 并且从右往左开始切割

name = '大佬|123|DBB'
print(name.split('|', maxsplit=1)) # 按照特定字符(|)切割字符串name maxsplit=1 只切割一次 并且从右往左开始切割,生成一个列表 
# 输出 ['大佬|123', 'DBB']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值