python循环与基本数据类型内置方法
目录
今天又是充满希望的一天呢
一.python循环
1.wuile与else连用
当while没有被关键'break'主动结束的情况下 正常结束循环体代码之后会执行else的子代码
"""
while 条件:循环体代码
else 条件:循环体代码正常运行结束 则会执行该行子代码块
"""
count = 1 # 计数
while count < 10: # 循环9次
if count == 4: # 到3结束因为4-1
break #结束本层代码
print(count) #
count += 1
else:
print('gg') # 以上条件不成立该条子代码执行
"""
结果: 1 2 3
"""
2.死循环
注:死循环有些时候会极度影响电脑的性能 甚至会造成文件损坏
但是往往通常使用的电脑会有这种保护机制 自动关机等
count = 10
while True:
count += 1
print(count)
"""
结果是 10+1+1+1+1 无线循环
"""
3while的镶嵌
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 # 循环 伏尔值true 转换为 false 可以变为不可以
print('正在执行您的指令:%s' % cmd) # 循环 判定不可以再次循环 用户名输入
else: # 以上条件都不成立执行该行子代码
print("用户名或密码错误") # 子代码
二.for循环
注:for循环更为简单 使用频率更高一般涉及到循环取值的时候都会考虑用for
"""
for的语法结构:for 变量名 in for 循环对象:#字串符, 列表, 字典, 元组, 集合。
for 循环每次执行都会给循环内的元素都赋一个变量名
变量名都应该做到:见明知意.
常见的变量名有 i, j, k, v, num, item 等等
"""
1.fuo和whlie循环
# 列表
name_list = ['jason', 'kevin', 'tony', 'tank', 'oscar']
count = 0 # 计数
while count < 5: # 循环5次
print(name_list[count]) # 提取出变量值
count += 1 # 循环增量赋值
for循环
# 列表
name_list = ['jason', 'kevin', 'tony', 'tank', 'oscar']
count = 0 # 计数
for name in name_list: # 分别给列表中数据赋值变量名
print(name) # 执行
"""
'jason', 'kevin', 'tony', 'tank', 'oscar'
两个循环的结果都是相同的
"""
2.循环字符串
依次取出每一个字符
for i in 'hello world': # 给后边字符串赋值变量名i
print(i) # 执行 i
"""
结果:h o l l o w o r l d
"""
3.循环字符
循环字典只能获取到key value无法直接获取
userinfo_dict = {'username': "jason", 'age': 18, 'gender': 'male'}
for i in userinfo_dict: #给后边字典赋值变量名i
print(i) # 执行
"""
结果:username age gender
"""
4.循环元祖
for i in (11, 22, 33, 44, 55): #给后边字符串赋值变量名i
print(i) # 执行
"""
结果:11 22 33 44 55
"""
5.循环元组
for i in (11, 22, 33, 44, 55): # 给元组中的数据赋值变量名
print(i) # 执行
6.循环集合
注:字典内部和集合内部元素都是无序的 因为在pucharm字典用的最多所以有优化
for i in {11, 22, 33, 44, 55, 66}: # 括号内元素赋值变量名
print(i) # 执行
"""
结果:33 66 55 11 22 44
"""
三.range关键字
range方法在python2解释器和python解释器是有区分的:
在python2中range是直接产生一个列表 元素很多的情况下比较占用空间
在python2中有一个xrange 其实就是python3里面的range
在python3中range相当于哆啦A梦的口袋 不占空间但是可以取出很多数据
在python3中就只有一个range了
在whlie循环中
while count < 101:
print(count)
count += 1
在for循环中:
for i in range(101): # 从0开始到100结束的数据集 顾头不顾尾
print(i) #执行
"""
结果都是0 - 100
for循环从0开始到100结束的数据集 顾头不顾尾
range其实是个迭代器用于产生数据 节省空间
"""
# 用法1 括号内只写一个数字 默认从0开始 顾头不顾尾
for i in range(10):
print(i)
# 用法2 括号内写两个数字 自定义起始位置 顾头不顾尾
for i in range(1, 10):
print(i)
# 用法3 括号内写三个数字 第三个数字表示的是等差数列的差值 默认情况下是1
for i in range(1, 10, 2):
print(i)
"""
结果分别为:0-9
1-9 和1 3 5 7 9
"""
四.for循环补充
#for+break
break结束本层for循环
#for+continue
continue结束本层for循环后直接开始下次以for循环
for+else
for循环正常结束之后运行else子代码
注:与while一致
五.如何查看数据类型内置方法
可以借助于编程软件的自动提示 采用句点符快速查看
六.数据类型的内置方法
1.int整型
1.1整型类型转换
age = int(input('123'))
将int整型执行后结果赋值变量给age
"""
int整型方式只能转换纯数字的子串符
"""
#也可以将十进制转换为其他进制
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))
2.float浮点型
1.浮点型转换
res = float('11.11')
print(res, type(res))
"""
float浮点型方式只能转换字符串内小数或者多为小数
"""
3.str字符串
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[2])#提取(l)
2.切片操作
print(s1[6])#提取(wo)顾头不顾尾
3.步长
print(s1[2:9:1])#提取(llo wor)第三个参数是步长 默认是1 如果print(s1[2:9:2])#提取(lowr)那么就是隔一个取一个
4.所引取切片扩展
print(s1[-1])#提取(d)获取最后一个字符
print(s1[-1:-5:-1])#提取(dlro)倒着数也是顾头不顾尾
5.5.成员运算
print('ll' in s1)#(对)in成员运算里的查找
6.移除字符串首位指定的字符(使用频率较高)
name = ' jason '
print(len(name))
res = name.strip()
print(res, len(res))#提取(jason)默认移除字符串首尾的空格
username = input('username>>>>:').strip() #输入用户名
if username == ' jason ': #判断成立后执行子代码
print('我太困了!!!')