1.数据类型
常见的数据类型的英文表示符号
- 整型(int)、浮点型(float)、字符串(str)
- 列表(list)、元组(tuple)、集合(set)、字(dict)、布尔(bool)
- None(NoneType)
print(type(None)) # <class 'NoneType'>
type函数
用来查看python中各种数据的数据类型
print(type(234)) # <class 'int'>
print(type(34.5)) # <class 'float'>
print(type('张三')) # <class 'str'>
input()
传入的数据输出是一定是字符串类型
num = input('请输入:') # 输入12
print(num,type(num)) # <class 'str'>
简单的数据类型转换
构造器语法
常见的数据类型后方添加小括号
例:int()、float()、bool()等
什么样的数据能够转成整型?
- 浮点型可以,不进行四舍五入,直接去掉小数点
- 布尔可以:True = 1,False = 0
- 去掉引号的字符串内容是整型时,可以转整型
print(int(12.5))
print(int(True),int(False))
print(int('123'))
# print(int('12.33')) 报错 不可转
什么样的数据能够转成浮点型?
- 整型可以,在整数后面添加.0
- 布尔可以:True = 1.0,False = 0.0
- 去掉引号的字符串内容是数字时,可以转浮点型
print(float(1)) # 1.0
print(float(True),float(False)) # 1.0 0.0
print(float('1.1'),float('1.'),float('1'),float('.1'))
# 1.1 1.0 1.0 0.1
什么样的数据能够转成布尔?
- 所有数据都可以
- 0, None, [], (), set(), {} 都可以转为False
- 除第2条以外都为True
print(bool(0),bool(None),bool(''),bool([]))
# False False False False
print(bool(18),bool(['']),bool({1}))
# True True True
2.循环
定义:解决重复执行某一类工作的语法
关键词:for、in、while、break、continue、else
for-in和while的区别
for循环时根据容器中元素个数来确定循环次数
while既可以有限次的循环,也可以无限次的循环
for-in循环
"""
语法:
for 变量 in 容器:
代码块
"""
容器:range、字符串、列表、集合、元组、字典等
# 例:计算1-100的和
# range(1,101)生成[1-100]的所有整数,左闭右开
sum = 0
for i in range(1,101):
sum += i
print(sum) # 5050
range()函数
格式:range(M,N,step)
M:数字范围的起点,闭区间
N:数字范围的终点,开区间
step:步长,决定range生成元素的方式,默认 = 1,可以不写
range(3,8) # 3,4,5,6,7
range(3,8,2) # 3,5,7
range(5) # 0,1,2,3,4
range(0,5,2) # 0,2,4
- 当step > 0时,M必须 < N ;
- 如果step不写,M不写,默认M为0 ;
- 当step出现时,M,N,step三个参数必须同时出现
range(100,95,-1) # 100,99,98,97,96
range(-10,-15,-2) # -10,-12,-14
- 当step < 0时,M必须 > N ;
- 当step出现时,M,N,step三个参数必须同时出现
# range练习:
# 1.生成1-100之间所有的奇数。
for i in range(1,101,2):
print(i)
# 2.计算1-100之间所有5的倍数的数字和
num = 0
for i in range(5,101,5):
num += i
print(num) # 1050
while循环
"""
语法:
while 条件:
代码块
"""
条件成立才会执行代码块,不成立就不执行循环
#练习:使用while循环计算1-100的和
i = 1
sum = 0
while i < 101:
sum += i
i += 1
print(sum) # 5050
猜数字
from random import randint
# 导入一个随机数库
# randint()能够在指定的范围内随机产生一个整数
num = randint(1,100)
flag = True
while flag:
jieguo = int(input('请输入你猜的数字:'))
if jieguo > num:
print('再小一点')
elif jieguo < num:
print('再大一点')
elif jieguo == num:
print('猜对了')
flag = False
else:
print('输入错误,请重新输入')
嵌套循环
- for循环和while循环之间可以相互嵌套
- for循环后面的变量没有被使用时,可以使用下划线代替
# 例: 把1-5的数字循环3遍
for _ in range(1,4):
for i in range(1,6):
print(i)
break和continue
- break:被触发时,直接结束当前所在循环
for i in range(1,10):
if i == 5:
break
print('febajmq')
print(i) # 1,2,3,4,5
- continue:被触发时,结束当前所在循环的本次循环,进入下一次循环
for i in range(1,10):
if i == 5:
continue
print('febajmq')
print(i) # 1,2,3,4,6,7,8,9
for-else循环
应用场景:某一结论在所有情况判断完成以后才确定,可以使用for-else循环
- 当for循环非正常结束时,else语句不执行
- 当for循环正常结束时,else语句被触发
# 例:找出100以内所有的素数
# 素数(质数):一个数字只有1和本身两个因子,2是最小的素数
for i in range(2,101):
if i == 2:
print('2是素数')
else:
for g in range(2,i):
if i % g == 0:
print('%d不是素数' % i)
break
else:
print('%d是素数' % i)