7月27号小结
目录
查看数据类型
简单数据类型转换
循环
查看数据类型
type函数:
查看python中各种数据类型
print(type(1234))
print(type(123.56))
常见的数据类型的英文表示符号
- 整型(int)、浮点型(float)、字符串(str)、列表(list)
- 元组(tuple)、集合(set)、字典(dict)、布尔(bool)、None(None type)
print(type(None))
input:
input():传入的数据,输出时一定是字符串类型
num = input('请输入:')
print(num, type(num))
简单数据类型转换
数字、布尔值的转换
构造器语法:常见的数据类型后方添加小括号()
int()、float()、bool()、str()
1.什么样的数据能够转成整型?
1234 (int)
a.浮点型数据可以转整型,将小数点直接去掉即为整型。
b.布尔(True、False)可以转整型。
c.去掉引号是一个整型的字符串可以转整型。
print(int(12.5))
print(int(True), int(False))
print(int('123'))
# print(int('12.3')) 不能打印,会报错(不满足int的条件)
2.什么样的数据可以转成浮点型?
a.整型转浮点型,在整数后添加.0
b.布尔(True、False)可以转浮点型。True == 1.0,False == 0.0
c.去掉引号是一个数字的字符串可以转浮点型。
print(float(1))
print(float(True))
print(float('1.1'), float('1.'), float('1'), float('.1'))
3.什么样的数据可以转成布尔?
a.所有数据都可以转布尔。
0,None, ‘’, [], (), set(), {}, 都可以转False
除此之外,都为True
print(bool(0), bool(None), bool(''), bool([]), bool({}), bool(set()))
print(bool(100), bool(['']))
循环
解决重复执行某一类工作的语法。
可以借助程序来解决某一类重复、繁琐的事情。
循环涉及的关键词:for、in、while、break、continue、else
1.for - in循环
for循环是根据容器中元素个数来确定循环次数。
"""
语法:
for 变量 in 容器:
代码块
"""
容器:range、字符串、列表、集合、元组、字典等。
案例:计算1-100的和
range(1,100)生成[1,100]的所有整数
sum = 0
for i in range(1, 101):
# print(i)
sum += i
print(sum)
容器:range
range(M,N,step)
M:数字范围的起点,闭区间;N:表示数字范围的终点,开区间;step:步长,决定range生成元素的方式,当前元素 + step = 下个元素,默认等于1,可以不写。range(3, 8) —> 从[3.8)范围生成3,4,5,6,7五个元素。
range(3,8,2) —> 从[3,8)范围生成3,5,7三个元素。
range(5) —> 表示从[0,5)范围生成0,1,2,3,4五个元素。
range(0,5,2) --> 从[0,5)范围生成0,2,4三个元素。range(12, 4):获取不到元素。
range(0, 10, -1):获取不到元素。
range(11, 1, -1):从11到2,一共10个元素。
a.当step>0时,M必须小于N,如果step不写。
从M开始取数据,并且M为0时,M可以不写,默认为0。当step出现时,M,N,step三个参数必须出现
b.当step<0时,M必须大于N;当step出现时,M,N,step三个参数必须同时出现。
c.如果range中只有一个数字x,并且x大于0的,代表从0获取到x-1,此时x等于结束范围N,0等于开始范围M。
for i in range(3, 8):
print(i)
for i in range(3, 8, 3):
print(i)
for i in range(5):
print(i)
for i in range(0, 5, 2):
print(i)
print('---------------------------')
for i in range(1, 6):
print(i)
print('---------------------------')
for i in range(1, 6, 5):
print(i)
print('---------------------------')
for i in range(1, 6, -1):
print(i)
print('---------------------------')
for i in range(0, -10, -3):
print(i)
print('---------------------------')
range练习:
- 生成1-100之间所有的奇数。
- 计算1-100之间所有5的倍数的数字和
for i in range(1, 101, 2):
print(i)
print('--------------')
num = 0
for i in range(5, 101, 5):
# print(i)
num += i
print(num)
# range(100, 90, -1) ---> 从[100,90)区间从大到小依次获取元素。
# range(-10,-20,-1) ---> 从[-10,-20)区间从大到小依次获取元素
for i in range(100, 90, -1):
print(i)
for i in range(-10, -20, -2):
print(i)
练习
# 通过修改步长,计算100以内2的倍数的和
x = 0
for i in range(2, 101, 2):
x += i
print(x)
# 计算100的阶乘
y = 1
for i in range(2, 101):
y *= i
print(y)
while循环
while既可以有限次的循环,也可以无限次的循环。
一般来说优先使用for循环。
while循环语法:
"""
语法:
while 条件:
代码块
"""
- while循环次数确定的例子
-
计算1-100的和
sum = 0 i = 1 while i <= 100: sum += i i += 1 print(sum)
- while循环次数不确定的例子
- 案例:猜数字游戏,从1-100范围内随机指定一个数字,找玩家猜数字,如果猜对了,游戏结束;如果猜大了,提示再小一点;如果猜小了,提示再大一点。
from random import randint
# randint()能够在指定范围内随机产生一个整数
num = randint(1, 100)
flag = True
while flag:
# pass作用:保持结构完整性,不参与程序执行。
# pass
result = int(input('请输入你猜的数字:'))
if result > num:
print('再小一点')
elif result < num:
print('再大一点')
elif result == num:
print('猜对了')
flag = False #与前面flag = True 不一样,使while循环停止,
else:
print('输入错误,请重新输入')
练习:使用while循环计算1-100的和。
i = 1
sum = 0
while i < 101:
sum += i
i += 1
print(sum)
跳出循环的关键字
break:被触发时,直接结束当前循环。
continue:被触发时,直接跳出当前所在循环的单次循环,进入下一次循环。
for i in range(1, 10):
if i == 5:
break
# continue
print('abc')
print(i)
for i in range(1, 101):
if i % 5 == 0:
print('****')
# break
continue
print('====')
else:
print(i)
# -------------------
i = 1
while True:
i += 1
if i == 50:
break
print(i)
嵌套循环
for和while循环之间可以互相嵌套。
for循环后边的变量没有被使用时,可以使用_下划线代替。
for _ in range(1, 4):
for i in range(1, 6):
print(i)
for - else 循环
"""
for- else循环语法:
for 变量 in 容器:
代码块
else:
代码块
"""
案例:找出100以内所有的素数。
素数(质数):一个数字,只有1和本身两个因子。2是最小素数。
for i in range(2, 101):
if i == 2:
print('2是素数')
else:
for j in range(2, i):
if i % j == 0:
print('%d不是素数' % i)
break
else:
print('%d是素数' % i)
for - else 语句
当for循环非正常结束时,else语句不执行;
当for循环正常结束时,else语句被触发。应用场景:某一结论在所有情况判断完成以后才确定,可以使用for-else循环(或者适用于所有可能考虑完才能得到某一结论的场景)