1.数据类型转换
自动转换
- 整型与浮点型数计算转换为浮点型
- 整型与bool型(0和1)计算转换为整型
强制转换
- 语法:
类型名( 数据 )
- 其他类型转换int: float, bool, 整数型的字符串
- 其他类型转换float: int, bool, 浮点型的字符串
- 其他类型转换bool: 所有类型可转换
结果:除数字中的0、None和其他类型的空(空串,空列表,空元组,空字典)都是True print(bool(None),bool(False),bool([]),bool(''),bool({}),bool(0),bool(-2))
False False False False False False True
- 其他类型转换str: 所有数据都可以转换(在外添加引号)
结果:print(str([1,2,3]),str(100),str(True),str(None))
[1, 2, 3] 100 True None 实质上是'[1,2,3]' '100' 'True' 'None'
2.if 语句(分支)
if
if
的语法
if 条件语句:
执行语句块
# if -- python中关键字,含义为'如果'
# 条件语句 -- 判断返回的结果是bool
# 冒号 -- 固定必须有的部分
# 执行语句块 -- 判断为True,执行的部分
实例:
grade = 75
if grade >= 60:
print('成绩合格')
print('成绩:60')
结果:
成绩合格
成绩:60
if-else
if-else
语法
if 条件语句:
执行语句块1
else:
执行语句块2
# else -- 关键字,之后的冒号不可省略
# 先判断条件语句,若为True,执行语句块1;否则,执行语句块2
实例
grade = 50
if grade >= 60:
print('成绩合格')
else:
print('成绩不合格')
结果:
成绩不合格
成绩:50
if-elif-else
if-elif-else
语法
if 条件语句1:
语句块1
elif 条件语句2:
语句块2
elif 条件语句3:
语句块3
...
else:
语句块n
按顺序判断条件,满足则执行语句块,不满足就判断其他条件;否则,执行else的语句块
实例:
grade = 50
if grade > 90:
print('成绩优秀')
elif grade >= 80:
print('成绩良好')
elif grade >= 60:
print('成绩及格')
else:
print('成绩不合格')
结果:
成绩不合格
if 语句嵌套
每个if分支中可以嵌套其他的if语句,也就是说在执行语句块的部分有if语句代替就是嵌套
if 嵌套
语法
if 条件语句1:
if 条件语句2:
执行语句块1
else:
执行语句块2
else:
执行语句2
实例:
grade = 80
age = 18
if grade >= 60:
if age >= 18:
print('录取')
else:
print('年龄小于18')
else:
print('成绩不合格')
结果:
录取
案例
# 产生一个随机数,判断是否为偶数,若是打印偶数,否则打印奇数
# 如果能被4整除,再打印被4整除的数
import random
number = random.randint(1,100)
if number % 2:
print('奇数:%d'%number)
else:
print('偶数:%d'%number)
if not number%4:
print('可以被4整除:%d'%number)
# 判断空串
str1 = ''
if not str1:
print('空串')
注:import 为模块引入关键字,random.randint(first,last)随机取数[first,last]
结果:
偶数:72
可以被4整除:72
空串
3.for 循环
python中循环有两种: for和while。
for
- 让变量在序列中取数据,取完为止。每取一次,执行一次循环体。
- for循环中用来获取序列值的变量,在循环体中不一定使用;若不用,变量名可以声明为 _
for 变量名 in 序列: 循环体 # for -- 关键字,含义'循环' # in -- 关键字,含义'在序列中取值' # 序列 -- 容器(可以包含多个数据的数据类型),如:str,list,tuple,set,dict,range,生成式,生成器 # 循环体 -- 需要重复执行的代码
- range()
案例:1. python内置函数,作用是产生指定范围中的数字 2. range(number1) -- 产生[0,number-1]的数 3. range(number1,number2) -- 产生[number1,number2-1]的数 4. range(number1,number2,step) -- 从number1开始,每次按步进取值,在number2之前结束
print('形式1') for number in range(10): print(number, end=' ') print('\n形式2') add_number = 0 for number in range(1,101): add_number += number print(add_number) print('形式3') for number in range(1,20,3): print(number, end=' ') 结果: 形式1 0 1 2 3 4 5 6 7 8 9 形式2 5050 形式3 1 4 7 10 13 16 19
while
-
while
循环,是先判断条件语句,True就执行循环体,直到判断语句结束为False结束语法: while 条件语句: 循环体 # while -- 关键字 # 条件语句 -- 结果为True或者False # 循环体 -- 重复执行的代码
-
案例
#找一个大于1000的第一个能被79整除的数 num = 1001 while num % 79: num += 1 print(num,num/79) 结果: 1027 13.0
-
流程图
while.png -
for 与 while比较
循环方式 | 比较 | 使用 |
---|---|---|
for | 循环次数有限且固定,while循环次数不确定 | 遍历序列中的值;循环次数确定 |
while | 循环次数不确定 | 死循环;循环次数不确定 |
4.break和continue
-
break
用于结束或跳出最近的循环 -
continue
用于结束本次的循环,开始下一次循环 -
for-else
同没有else的for语句相比影响不大。唯一的区别在于,break时有else的语句(也属于for之内)不会输出;可以用于for循环中代替记录和标志的作用,如判断是否为素数 -
案例
# 猜数字
import random
number = random.randint(1,100) #[1,100]
while True:
num_input = input('输入数字1-100:')
if int(num_input) == number:
print('猜中')
break
elif number > int(num_input):
print('小了')
elif number < int(num_input):
print('大了')
else:
pass
# 根据折半查找 --> 2^7=128>100 -- 最多猜7次
'''
网友评论