分支的基本语法
if 条件表达式:
语句1
语句2
语句3
......
条件表达式就是计算结果必须为布尔值的表达式
表达式后面的冒号不能少
注意if后面的出现的语句,如果属于if语句块,则必须同一个锁紧等级
条件表达式结果为True执行if后面的缩进的语句块
#if 语句联系
#如果你爱我,我就爱你
a = "你爱我"#字符串非空就为True,空字符串为False
if a:
print("我爱你")
print("一辈子")
else:
print("我继续爱你")
print("从此幸福快乐")
我爱你
一辈子
从此幸福快乐
if…else…语句
if 条件表达式:
语句1
语句2
...
else:
语句1
语句2
.....
双向分支有两个分支,当程序执行到if … else…语句的时候,一定会执行if或else中的一个,也仅执行一个
缩进问题,if和else一个层级,其余语句一个层级
# input的作用是
# 1. 在屏幕上输出括号内的字符串
# 2. 接受用户输入的内容并返回到程序
# 3. input返回的内容一定是字符串类型
#input负责接受用户输入并把内容返回给变量
gender = input("请输入您的性别:")
#打印输入内容
print(gender)
if gender =="man":
print("走,抽烟喝酒烫头")
print("一起去玩啊")
else:
print("你到底是个啥子啊")
print("对不起,我是男生")
请输入您的性别:man
man
走,抽烟喝酒烫头
一起去玩啊
# 考试成绩判断
# 90以上: 输出优秀
# 80-90:良
# 70-80:中
# 60-70:平
# 60以下: 输出:我没你这撒学僧
score = input("请输入成绩")
score = int(score)#需要把str转换成int
if score >= 90:
print("优秀")
elif score >= 80:
print("良")
elif score >= 70:
print("中")
elif score >= 60:
print("平")
else:
print("我没你这撒学生")
请输入成绩70
中
很多分支的情况
很多分支的情况,简称多路分支
if 条件表达式:
语句1
....
elif 条件表达式:
语句1
...
elif 条件表达式:
语句1
...
.....
else:
语句1
....
elif 可以由很多歌
else可选
多路分支只会选一个执行
for循环
for 变量 in 序列:
语句1
语句2
...
# 列表知识以后会将
# [1,2,3,4,5,6,7]
for i in range(1,8):
print(i)
1
2
3
4
5
6
7
# 打印学生列表姓名
# 如果是jingjign,那肯定是我的最爱呀,
# 如果是别的学生,那要冷酷的拒绝他'
stu_list = ["王大眼","张三","李四"]
for stu in stu_list:
if stu == "张三":
print("请答到")
else:
print("快点来")
快点来
请答到
快点来
# for-else语句
# 打印列表中的同学,
# 如果没有在列表中,或者列表结束了,我们需要打印提示语句,表示不在爱了
# 打印学生列表姓名
# 如果是jingjign,那肯定是我的最爱呀,
# 如果是别的学生,那要冷酷的拒绝他
stu_list = ["王大眼","张三","李四"]
for stu in stu_list:
if stu == "王大眼":
print("请答到")
else:
print("快点来")
else:
print("表示不在爱了")
请答到
快点来
快点来
表示不在爱了
# 在数字1-10中,寻找数字7,一旦找到,打印出来,其余则什么都不做
# for 循环中的变量表示,一般用i,k,m,n,或者indx,idx,item之类
# 在python中,如果循环变量名称不重要,可以用下划线(_)代替
for i in range(15):
if i == 7:
print("哈哈哈,找到了")
break
else:
print(i)
0
1
2
3
4
5
6
哈哈哈,找到了
# continue语句 版本 2
# 在数字1-10中,寻找所有偶数,找到偶数后打印偶数
# 本案例完整显示continue的用法和作用
dig_list = [1,10]
for dig in range (1,10):
if dig % 2 == 0:
continue
print(dig)
print("哈哈,你是偶数")
1
哈哈,你是偶数
3
哈哈,你是偶数
5
哈哈,你是偶数
7
哈哈,你是偶数
9
哈哈,你是偶数
#pass案例
age = 19
if age >19:
pass
else:
print("你还小")
你还小
#pass案例二
ages = [2,15,156,23,1235,52]
for age in ages:
pass
print(age)
2
15
156
23
1235
52
#range案例1
#生成一个一到十的数字序列
#range的生成序列的两个数字是左包括右不包括 python 特点
dig_list = range(1,11)
for dig in dig_list:
print(dig)
#一般在python中,连个表示范围的数字都是左包括右不包括,randint函数是个特例
#range函数在python2.x和python3.x有严重区别
1
2
3
4
5
6
7
8
9
10
#range 案例
#打印1到9 的数字
for i in range(1,10):
print(i)
1
2
3
4
5
6
7
8
9
一个循环语句
表示当条件成立的时候,就循环,适应于不知道具体循环次数,但能确定在某个条件成立的情况下就循环
while语法
while 条件表达式:
语句块
#另外一种表达方法
while 条件表达式:
语句块1
else:
语句块2
# 如果说年利率是6.7%,本利是每年翻滚, 则多少年后本钱
cost = 10000
year = 0 #存放需要翻本的年数
while cost < 20000:
cost = cost * (1 + 0.067)
year += 1
print(year)
#年利率案例2
#本案例循环没有被执行,why?如何改正?
while cost < 20000:
cost = cost * (1 + 0.067)
year += 1
else:
print(year)
#案例三
year = 0
cost = 10000
while cost <= 20000:
cost *= (1 + 0.067)
year += 1
print("第{1}年赚了{0}钱".format(cost,year))
11
11
第1年赚了10670.0钱
第2年赚了11384.89钱
第3年赚了12147.677629999998钱
第4年赚了12961.572031209998钱
第5年赚了13829.997357301068钱
第6年赚了14756.607180240238钱
第7年赚了15745.299861316334钱
第8年赚了16800.23495202453钱
第9年赚了17925.85069381017钱
第10年赚了19126.88269029545钱
第11年赚了20408.383830545245钱
# 定义一个函数
# 只是定义的话不会执行
# 1. def关键字,后跟一个空格
# 2. 函数名,自己定义,起名需要遵循便令命名规则,约定俗成,大驼峰命名只给类用
# 3. 后面括号和冒号不能省,括号内可以由参数
# 4. 函数内所有代码缩进
def func():
print("我是一个函数")
print("爱生活,爱python")
print("function is over")
function is over
# 函数的调用
# 直接写出函数名字,后面小括号不能省略,括号内容根据情况
func()
我是一个函数
爱生活,爱python
# 形参和实参的案例
# 参数person只是一个符号
# 调用的时候用另外一个
def hello(person):
print("{0},你好吗?".format(person))
print("{},你看见我家女朋友了吗?".format(person))
return None
p = "小明" # 调用函数,需要把P作为参数传入
hello(p)
a = ("伍六七")
hello(a)
小明,你好吗?
小明,你看见我家女朋友了吗?
伍六七,你好吗?
伍六七,你看见我家女朋友了吗?
# help 负责随时为你提供服务
help(None)#等价于help(print()),为什么呢?
Help on NoneType object:
class NoneType(object)
| Methods defined here:
|
| __bool__(self, /)
| self != 0
|
| __repr__(self, /)
| Return repr(self).
|
| ----------------------------------------------------------------------
| Static methods defined here:
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
#九九乘法表
#version 1.0
for i in range(1,10): #控制外循环,从1到9
for j in range(1,i + 1):#内循环,每次从第一个数字开始,打印到跟行数相同的数量
print(i*j,end=" ")
print("-----------------")
1 -----------------
2 4 -----------------
3 6 9 -----------------
4 8 12 16 -----------------
5 10 15 20 25 -----------------
6 12 18 24 30 36 -----------------
7 14 21 28 35 42 49 -----------------
8 16 24 32 40 48 56 64 -----------------
9 18 27 36 45 54 63 72 81 -----------------
#改造上面函数
def printLine(line_num):
'''
line_num:代表行号
打印一行九九乘法表
'''
for i in range(1,line_num + 1):
print(line_num * i,end=" ")
print()
def jiujiu():
for j in range(1,10):
printLine(j)
return None
jiujiu()
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
- 参见上例
- 定义的时候直接定义变量名
- 调用的时候直接把变量或者值放入指定位置
def 函数名(参数1, 参数2,....):
函数体
# 调用
函数名(value1, value2,.......)
# 调用的时候,具体值参考的是位置,按位置赋值
- 形参带有默认值
- 调用的时候,如果没有对相应形参赋值,则使用默认值
def func_name(p1=v1, p2=v2..........):
func_block
#调用1
func_name()
# 调用2
value1= 100
value2=200
func_name(value1,value2)
# 普通参数案例
def normal_para(one,two,three):
print(one + two)
return None
normal_para(1,2,3)
3
# 默认参数案例
def default_para(one,two,three=100):
print(one + two)
return None
default_para(1,3)
default_para(1,2,3)
4
3
#关键字参数
def keys_para(one,two,three):
print(one + two)
print(three)
return None
keys_para(one = 1,two = 2,three = 100)
keys_para(three = 20,two = 10,one = 1)#摆脱了位置的束缚
3
100
11
20