本文主要是介绍python基础:while+continue while+else for循环 数据类型的内置方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
内容概要
- 例题讲解
- while+continue
- while+else
- 死循环
- for循环
- 数据类型的内置方法(重点)
内容详细
例题讲解
# 普通要求
"""
猜年龄的游戏
普通
三次机会
拔高
三次机会之后还可以提问并重新尝试
"""
# TODO:写代码一定要先考虑代码的主体功能 之后再考虑附加的额外功能
# 1.先编写猜年龄主体功能
# 定义一个真实的年龄
real_age = 18
# 3.定义一个计数器
count = 1
# 2.先加一个循环功能
while count < 4:
# 1.1 获取用户猜测的年龄
guess_age = input('请输入您猜测的年龄>>>:')
# 1.2 简单粗略的将字符串转换成数字(可能会报错 暂时不要考虑)
guess_age = int(guess_age)
# 1.3 猜测年龄
if guess_age > real_age:
print('猜大了')
# 4.1 每次猜错都加一
count += 1
elif guess_age < real_age:
print('猜小了')
# 4.1 每次猜错都加一
count += 1
else:
print('哎呀 你真棒 猜对了!!!')
# 4.猜对了直接结束本层循环
break
# 优化
# count += 1
# 拔高
# 1.先编写猜年龄主体功能
# 定义一个真实的年龄
real_age = 18
# 3.定义一个计数器
count = 1
# 2.先加一个循环功能
while True:
# 5.判断当前用户是第几次尝试
if count == 4:
choice = input('您已经尝试了三次 是否继续(y/n)>>>:')
# 5.1 判断用户输入的是y还是n
if choice == 'y':
# 重置count的次数
count = 1
else:
print('下次记得再来哟')
break
# 1.1 获取用户猜测的年龄
guess_age = input('请输入您猜测的年龄>>>:')
# 1.2 简单粗略的将字符串转换成数字(可能会报错 暂时不要考虑)
guess_age = int(guess_age)
# 1.3 猜测年龄
if guess_age > real_age:
print('猜大了')
# 4.1 每次猜错都加一
count += 1
elif guess_age < real_age:
print('猜小了')
# 4.1 每次猜错都加一
count += 1
else:
print('哎呀 你真棒 猜对了!!!')
# 4.猜对了直接结束本层循环
break
# 优化
# count += 1
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()
数据类型的内置方法
在日常生活中不同类型的数据具有不同的功能
eg:表格数据文件具有处理表格的各项功能(透视表 图形化 公式计算)
视频数据文件具有快进 加速等各项功能
...
# 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
# 浮点型float
# 类型转换
res = '123.23'
# print(type(res))
# res = float(res)
# print(type(res))
print(float('123')) # 123.0
# 字符串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']
"""如何查看数据类型都有哪些内置方法
句点符(.)
"""
这篇关于python基础:while+continue while+else for循环 数据类型的内置方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!