一、循环的结构
①while循环+continue的使用
# 1.使用while循环打印出0-10
# count = 0
# while count < 11:
# print(count)
# count += 1
# 2.使用while循环打印出0-10但是不打印4
# 1.定义一个起始变量
count = 0
# 2.循环
while count < 11:
# 5.判断 如果count为4则不打印
if count == 4:
count += 1
# 跳过本次循环 开始下一次循环
continue
# 3.打印变量的值
print(count)
# 4.变量值自增1
count += 1
"""
continue会让循环体代码直接回到条件判断处重新判断
"""
②while循环+else的使用
count = 0
while count < 5:
print(count)
count += 1
else:
print('嘿嘿嘿') # 会执行else子代码
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print('嘿嘿嘿') # 不会执行else子代码
"""
当while循环没有被人为中断(break)的情况下才会走else
"""
③死循环
while True:
print(1)
"""死循环会让CPU极度繁忙 甚至奔溃"""
④for循环
for循环能做到的事情 while循环都可以做到
但是for循环语法更加简洁 并且在循环取值问题上更加方便
name_list = ['jason', 'tony', 'kevin', 'jack', 'xxx']
# 循环取出列表的每一个元素并打印
# while实现
# count = 0
# while count < 5:
# print(name_list[count])
# count += 1
# for循环
for name in name_list:
print(name)
"""
for 变量名 in 可迭代对象: # 字符串、列表、字典、元组、集合
for循环体代码
ps:变量名如果没有合适的名称 那么可以使用i,j,k,v,item等
"""
# name_list = ['jason', 'tony', 'kevin', 'jack', 'xxx']
# 循环取出列表的每一个元素并打印
# while实现
# count = 0
# while count < 5:
# print(name_list[count])
# count += 1
# for循环
# for name in name_list:
# print(name)
# for循环字符串
# for i in 'hello world':
# print(i)
# for循环字典:默认只能拿到k
d = {'username': 'jason', 'pwd': 123, 'hobby': 'read'}
for k in d:
print(k, d[k])
⑤range关键字
# 关键字range
# 第一种:一个参数 从0开始 顾头不顾尾
# for i in range(10):
# print(i)
# 第二种:两个参数 自定义起始位置 顾头不顾尾
# for i in range(4, 10):
# print(i)
# 第三种:三个参数 第三个数字用来控制等差值
for i in range(2, 100, 10):
print(i)
"""
扩展知识
https://movie.douban.com/top250 第一页
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=0&filter= 推测第一页
"""
base_url = "https://movie.douban.com/top250?start=%s&filter="
for i in range(0, 250, 25):
print(base_url % i)
# range在不同版本的解释器中 本质不同
在python2.X中range会直接生成一个列表
在python2.X中有一个xrange也是迭代器(老母猪)
在python3.X中range是一个迭代器(老母猪) 节省内存空间
'''python2.X中xrange就是python3.x里面的range'''
⑥for循环+break的使用
break功能也是用于结束本层循环
for i in range(10):
if i == 4:
break
print(i)
⑦for循环+continue的使用
continue功能也是用于结束本次循环
for i in range(10):
if i == 4:
continue
print(i)
⑧for循环+else的使用
else也是在for循环正常结束的情况下才会执行
for i in range(10):
if i == 4:
break
print(i)
else:
print('你追我!!!')
⑨for循环的嵌套使用
# for i in range(3):
# for j in range(5):
# print("*", end='')
# print()
for i in range(1, 10):
for j in range(1, i + 1):
print('%s*%s=%s' % (i, j, i * j), end=' ')
print()
二、数据类型的内置方法(重点)
1、整形int的基本使用
①作用:用来记录年龄、个数、号码、等整数相关的状态
②定义方法
# 1.整型int
# 方式在代码中展示出来的效果就是 名字()
# 类型转换
# res = '123'
# print(type(res))
# res = int(res)
# print(type(res))
'''int在做类型转换的时候 只能转换纯数字'''
# int('123.123') # 报错 不识别小数点
# int('jason123') # 报错 不识别除数字以外的数据
'''int其实还可以做进制数转换'''
print(bin(100)) # 将十进制的100转换成二进制 0b1100100
print(oct(100)) # 将十进制的100转换成八进制 0o144
print(hex(100)) # 将十进制的100转换成十六进制 0x64
# 0b开头为二进制数 0o开头为八进制数 0x开头为十六进制数
print(int('0b1100100', 2)) # 100
print(int('0o144', 8)) # 100
print(int('0x64', 16)) # 100
③常用操作+内置方法:数学运算+比较运算
2、浮点型float的基本使用
①作用:用来记录身高、体重、薪资等小数相关的状态
②定义方式:
salary = 3.1 # 本质 salary = float(3.1)
# float数据类型转换: 可以把小数组成的字符串转成浮点型
res=float(111)
print(res,type(res)) # 111.0 <class 'float'>
res=float(" 3.3 ")
print(res,type(res)) # 3.3 <class 'float'>
③常用操作+内置方法:数学运算+比较运算
# 补充了解:
# LONG类型 在python2中(python3中没有长整形的概念)
# 进制转换:
print(bin(11)) # bin十进制转二进制 # 0b1011
print(oct(11)) # oct十进制转八进制 # 0o13
print(hex(11)) # hex十进制转十六进制 # 0xb
x=1-2j
print(type(x)) # <class 'complex'> complex复数
print(x.real) # 1.0 实步
print(x.imag) # -2.0 虚步
3、字符串str的基本使用
1、用途:用来记录姓名、性别、国籍、家庭地址等描述性质的状态
2、定义方式:在"",'',"""""",''''''内包含一串字符
msg = "abc" # 本质 msg = str("abc")
print(type(msg)) # <class 'str'>
-
注意:
- 1、上述引号定义出来的都是str类型,没有区别
- 2、三引号可以存放多行字符串
- 3、引号的嵌套:外层双引号,内层只能用单引号
# 数据类型转换:str可以把任意类型都转成字符串类型
# 字符串str
# 类型转换
print(str(123))
print(str(123.21))
print(str([1, 2, 3, 4]))
print(str({'name': 'jason', 'pwd': 123}))
print(str((1, 2, 3, 4)))
print(str(True))
print(str({1, 2, 3, 4}))
# 基本用法
res = 'hello world!'
# 1.索引取值
# print(res[1]) # e
# 2.切片操作 顾头不顾尾
# print(res[1:4]) # ell
# 3.步长操作
# print(res[1:10]) # ello worl
# print(res[1:10:2]) # el ol
# 4.索引支持负数
# print(res[-1]) # ! 最后一位
# print(res[-5:-1]) # orld 顾头不顾尾
# print(res[-5:-1:-1]) # 方向冲突
# 5.统计字符串内部字符的个数
# print(len(res)) # 12
# 6.移除字符串首尾指定的字符 strip()
# name = ' jason '
# print(name, len(name))
# print(len(name.strip())) # 默认移除首尾的空格
# name1 = '$$jason$$'
# print(name1.strip('$')) # jason
# print(name1.lstrip('$')) # jason$$
# print(name1.rstrip('$')) # $$jason
# username = input('username>>>:')
# username = username.strip()
# username = input('username>>>:').strip()
# if username == 'jason':
# print('老板好')
# else:
# print('去你妹的')
# 7.按照指定的字符切割字符串 split() 该方法的结果是一个列表
# res2 = 'jason|123|18'
# print(res2.split('|')) # ['jason', '123', '18']
# print(res2.split('|', maxsplit=1)) # ['jason', '123|18'] maxsplit用于控制切割的次数
# print(res2.rsplit('|', maxsplit=1)) # ['jason|123', '18']
"""如何查看数据类型都有哪些内置方法
句点符(.)
"""