while语句延续
# while与else使用
while … else 在循环条件为 false 时执行 else 语句块
count = 0
while count < 5:
print(count)
count += 1
else:
print(count)
无限循环和while嵌套
如果while的判断条件永远为True,那么循环体会不断的执行下去。
#无法自己结束的循环并且一致占用CPU工作
while True:
print('1')
#while嵌套
while循环里面还有while循环叫做while嵌套,适用于需要外层循环一次内层循环N次的情况下
'''
while 判断条件1:
条件1满足时循环做的事情1
条件1满足时循环做的事情2
条件1满足时循环做的事情3
。。。
while 判断条件2:
条件2满足时循环做的事情1
条件2满足时循环做的事情2
条件2满足时循环做的事情3
。。。
'''
flag = True
while flag:
username = input('username>>>:')
password = input('password>>>:')
if username == 'jason' and password == '123':
print('登录成功')
while flag:
cmd = input('请输入您的指令>>>:')
if cmd == 'q':
print('下次光临')
flag = False
print('正在执行您的指令:%s' % cmd)
else:
print("用户名或密码错误")
#根据缩进实现循环的嵌套
for循环
#for循环可以做到的事情while循环都可以做到!!! 但是for循环语法更加简单 使用频率更高
Python中,for循环用于遍历一个迭代对象的所有元素。循环内的语句段会针对迭代对象的每一个元素项目都执行一次。暂且可以将迭代对象想象成一个对象集合,我们可以一个个遍历里面的元素。我们将在下一节对迭代器和迭代对象作详细说明。
"""
语法结构
for 变量名 in for循环对象: # 字符串、列表、字典、元组、集合
for循环的循环体代码
每次执行都会将循环对象中的一个元素赋值给变量名
"""
#针对for循环语法结构中的变量名 也应该做到见名知意
#如果真的没有合适的名字可以使用常用的变量名i、j、k、v、num、item...
list1 = [1,2,3,4,5]
现在需要依次输出list1内的数据
#while语句
count = 0
while count < 5:
print(list1[count])
count += 1
#for语句
for i in list1:
print(i)
#循环字符串,依次取出每一个字符
for i in 'hello world':
print(i)
#循环字典(特殊):循环字典只能获取到字典的key value无法直接获取
userinfo_dict = {'username': "jason", 'age': 18, 'gender': 'male'}
for i in userinfo_dict:
print(i)
# 循环集合:字典与集合内部的元素都是无序的
for i in {11, 22, 33, 44, 55, 66}:
print(i)
# for+break
break结束本层for循环
# for+continue
continue结束本次for循环 直接开始下一次
# for+else
for循环正常结束之后运行else子代码
"""与while一致"""
range方法
python2.x range() 函数可创建一个整数列表,一般用在 for 循环中。
Python3 range() 返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表
range(start, stop[, step])
#start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
#stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
#step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
现在需要打印1到100的数字
for i in range(1,101):
print(i)
打印1到100之间的偶数
for i in range(1,101,2)
print(i)
数字类型的内置方法
int整型
1.类型转换
2.进制数的转换
#类型转换
人机交互时,我们输入的是文本,在程序进行数据处理时需要的数字,就需要用到类型转换。
age = int(input('请输入年龄'))
#进制转换
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))
#float浮点型
1.类型转换
res = float('11.11')
print(res, type(res)) # 11.11
res = float('11')
print(res, type(res)) # 11.0
float('abc')
字符串内置方法
1.类型转换
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)))
![]()
s1 = 'hello world'
1.索引取值
print(s1[0])
2.切片操作
print(s1[2:4]) # 顾头不顾尾
3.步长
print(s1[2:9:1]) # 第三个参数是步长 默认是1 依次获取
print(s1[2:9:2]) # 间隔一个取一个
索引取切片扩展
print(s1[-1]) # 获取最好一个字符
print(s1[-1:-5:-1]) # dlro 第三个参数还可以控制索引的方向
print(s1[-5:-1]) # worl
4.统计字符串中字符的个数
print(len(s1)) # 11
5.成员运算
print('ll' in s1)
6.移除字符串首位指定的字符(使用频率较高)
name = ' jason '
print(len(name))
res = name.strip() # 默认移除字符串首尾的空格
print(res, len(res))
name1 = '$$$$jas$on$$$$'
print(name1.strip('$'))
username = input('username>>>>:').strip()
if username == 'jason':
print('我想去干饭了!!!')
7.按照指定的字符切割字符串
data = 'jason|123|DBJ'
print(data.split('|')) # ['jason', '123', 'DBJ']
name, pwd, hobby = data.split('|') # 解压赋值
print(data.split('|', maxsplit=1)) # ['jason', '123|DBJ']
print(data.rsplit('|', maxsplit=1)) # ['jason|123', 'DBJ']
"""split方法切割完字符串之后是一个列表"""