while+continue、while+else、for循环、range关键字、数据类型内置方法

发布时间 2023-07-17 15:59:18作者: 毓见

while+continue

# 请听题:循环打印出0-10之间的数字
# 请听题:循环打印出0-9之间的数字,但是不打印6
count = 0
while count < 10:
    if count == 6:
        count+=1
        continue  # 是调出本次循环
    print(count)
    count += 1

while+else

count = 0
while count < 10:
    if count == 3:
        break
    print(count)
    count += 1
else:
    print('嘿嘿嘿')
    
# 当while循环内没有被人为中断(break)的时候,会执行else语句

死循环

while True:
    print(123)
# 在程序中,死循环坚决不能出现

for循环

for循环能做的事情,while循环都能够做
for循环代码更加简介,另外,它不会出现死循环.

# 请听题:
name_list = ['kevin', 'tank', 'jason', 'tony']
# 循环取出列表中每一个人名
for name in name_list:
    print(name)
    
"""
	语法格式:
		for 变量名 in 可迭代对象: # 可迭代对象:可循环的对象,字符串、列表、字典、元组等
			print()
		当你的变量名没有合适的名字可叫的时候,你可以采用i,j,k,v,item等代替
"""

# 字典报出来的是字段的K
# 循环打印字段的k和v
d =  {"username":'kevin', "age":18}
for i in d:
    print(i, d[i])

range关键字

# range关键字有三种玩法,一般配合for循环使用
1. 
for i in range(10):  # 如果只有一个参数,意思是:从0到10的整数
	print(i)
2. 
for i in range(3, 10):  # 如果有两个参数,意思是:从3到10的整数
	print(i)
3. 
for i in range(1, 10, 2):  # 如果有三个参数,意思是:从1到10的整数,步长为2
	print(i)
  
# 请看案例:
"""
	https://movie.douban.com/top250?start=0&filter= 第一页的数据
	https://movie.douban.com/top250?start=25&filter=  第二页的数据
	https://movie.douban.com/top250?start=50&filter=  第三页的数据
	https://movie.douban.com/top250?start=75&filter=  第三页的数据
	https://movie.douban.com/top250?start=100&filter=  第三页的数据
	https://movie.douban.com/top250?start=125&filter=  第三页的数据
	...
	
	https://movie.douban.com/top250?start=225&filter= 最后一页的数据
	
"""

base_url = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 250, 25):
    print(base_url % i)
 
# range在不同版本解释器中的区别
在python2中直接打印出结果

在python3中做了优化,把它变成了迭代器, 就是节省内存资源

for+break

for i in range(10):
    if i == 3:
        break
    print(i)

for+continue

for i in range(10):
    if i == 3:
        continue
    print(i)

for+else

for i in range(10):
    if i == 3:
        break
    print(i)
else:
    print('嘿嘿')

打印九九乘法表

for i in range(1, 10):
    for j in range(1, i + 1):
        print('%s*%s=%s' % (i, j, i * j), end=' ')
    print()

数据类型内置方法

# 什么是内置方法
比如:
	表格数据有公式计算、透视表、对边框的各种操作等功能
    视频数据有暂停、快进、倍速等功能
就是给各个数据类型内置的功能
# 它表现的形式:名字()  int()  print()

1. 整型
	int
    # 进制转换
# 常见的进制数:二进制、八进制、十进制、十六进制(A b c d e f)
# 二进制和十进制之间转换
# 十进制转二进制:除2取余法
# 10---》1010
# 00001010---->
# res=0 * 2**7 + 0 * 2**6 + 0 * 2**5 + 0 * 2 ** 4 + 1*2**3 + 0 * 2 **2 + 1 * 2**1 + 0 * 2 ** 0===10

# int它也支持二进制转换
print(bin(10))   # 0b 1010  0b代表的就是二进制
print(oct(10))   # 0o 12    0o代表的是八进制
print(hex(10))   # 0x a     0x代表的是十六进制


# 把二进制转为十进制
print(int('0b1010', 2))
print(int('0o12', 8))
print(int('0xa', 16))
2. 浮点型
	# 1.3 float同样可以用来做数据类型的转换
    >>> s = '12.3'
    >>> res=float(s)
    >>> res,type(res)
    (12.3, <class 'float'>)
3. 字符串
	 # 类型转换
     print(str(res), type(str(res)))
    print(str(1.11), type(str(1.11)))
    print(str('helloworld'), type(str('helloworld')))
    # print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))
    print(str({'a': 1, 'b': 2}), type(str({'a': 1, 'b': 2})))
    print(str((1, 2, 3)), type(str({'a': 1, 'b': 2})))
    print(str(({1, 2, 3})), type(str({'a': 1, 'b': 2})))

字符串的内置方法

# l = [1, 2, 3, 4]
# res1 = str(l)  #
# 'helloworld'
# print(res1[0])
# print(res1[2])



res = 'helloworldhelloworldhelloworldhelloworldhelloworldadadasdasdsadhelloworldhelloworldhelloworld' # 支持索引取值
# print(res[0])
# print(res[1])

# print(res[-1])
# print(res[-2])

# 切片:顾头不顾尾
# print(res[0:3])  # hel
# print(res[2:6])  # llow
print(res[0:9:2])  # hlool 步长

# 反向切片
# print(res[::-1])
print(res[0:])  #helloworld
# print(res[2:])  #lloworld  冒号右边不写,一直切到结束
# print(res[:6])  #hellow 冒号左边不写从0开始切
# print(res[::3])  #hellow 冒号左边不写从0开始切
# print(res[::-1])  # dlrowolleh,翻转字符串其中一种方式

# 长度len
# print(len(res))  # 93  length---->len
# print(len([1, 2, 3, 4]))
# print(len({'a':1, 'b':2}))


# # 5.strip移除字符串首尾指定的字符(默认移除空格)


# res1 = '@@hello@world@@'
# print(res1)
# print(res1.strip())  # 默认什么都不写,去掉的是空格
# print(res1.lstrip())  # 默认什么都不写,去掉的是空格
# print(res1.rstrip())  # 默认什么都不写,去掉的是空格

# print(res1.strip('@'))
# print(res1.lstrip('@'))
# print(res1.rstrip('@'))  # 只能去除两边的特殊符号,中间的去不掉


# # 6.切分split
# res1 = 'helloworld'
# res1 = 'kevin 18 123'
res1 = 'kevin|18|male'
# print(res1.split())  # ['kevin', '18', '123']  默认是空格切分,切分之后是列表的形式
# print(res1.split('|'))  # ['kevin', '18', 'male']  默认是空格切分,切分之后是列表的形式
print(res1.rsplit('|', maxsplit=1))  # ['kevin', '18', 'male']  默认是空格切分,切分之后是列表的形式