首先,你需要牢牢记住的是!!:经典计算机程序的基本控制结构结构只有三种:
①顺序结构②选择结构(又称分支结构)③循环结构
1、顺序结构
#f字符串的使用,f代表设置格式,即可以在字符串中插入变量的值
first_name="z"
last_name="wr"
full_name=f"{first_name}{last_name}"
sb=123
print(f"{first_name}fuck you{last_name}{sb}")
print(f"Hello,{full_name.title()}")#这行代码可以牢记
#还可以这样使用f字符串以组成消息
#f字符串本质上就是字符串,只是可以将变量的值插入到字符串里面去
message=f"hello,{full_name.upper()}"
print(message)
什么是顺序结构?亲爱的你不用关注这个问题,这是算法抑或是数学上的问题,如上例代码,我们正常的思维就是先定义了一个first_name的字符串变量,然后再定义了一个last_name的变量,然后通过一个操作把姓和名合起来,我们不会去想为什么程序不是先定义last_name的变量,再定义first_name变量,总的来说,顺序结构表示一种处理数据的方式:按照程序员编写代码的代码顺序,依次完成代码的操作的一种整体性的结构(这是解释器的任务,不是我们学习的重点),而不会说程序的解释器或编译器随意地去跳过某一行代码,然后再回去编译这行代码,否则为非法向前引用。(这里不想讲的专业,专业点说叫语句块,都一个意思,对外行人不友好(bushi))
经典的顺序结构示意图就是这样:
2、分支结构
相信你一定学过二次函数吧,在y=ax²+bx+c(a≠0)曲线和x轴有几个交点的问题中,我们通常用韦达定理,在判别式δ=0、δ<0和δ>0有不同的结果,当我们在选择ta时,我们通常会有不同的选项,这就是一种程序思维:在一次数据判别中,通常由于数据本身的类型与数值的不同,程序相应的操作也不同。如同我们站在人生的岔路口,我们有多种选择,如果我们希望平静的生活,如果我们希望轰轰烈烈的生活,如果我们希望孤独而自由的生活······
Python中的控制结构都是通过if语句来实现的
2.1、单分支结构
#单分支结构的if语句语法格式
if(条件表达式): #这里的条件表达式可以是①关系表达式②逻辑表达式③算术表达式
语句/语句块 #可以是单个语句也可以是多个语句,但是多个语句缩进必须一致!!!
当条件表达式的值(布尔值)为True时,执行后面的语句/语句块;当条件表达式的布尔值为False时,不做任何操作,直接跳过。
!!!亲爱的,永远别忘记在if条件表达式后面加上一个英文冒号“:”
if(eval(input("如果爱我请输入9:"))):
print("请你别辜负")
print("屏幕前的你,我希望你别沉溺情感,勇敢启航!")
#如果用户输入9,则会打印“请你别辜负”
#如果用户输入9以外的任何数字,则会打印"屏幕前的你,我希望你别沉溺情感,勇敢启航!"
有必要说一下,条件表达式的布尔值为:①数值型的0、②空字符串“ ”、③空元祖()、④空列表[]、⑤空字典{}时,条件表达式表现为False!
还是有必要说一下,bool型逻辑值是True和False,首字母一定要大写,小写true是错误的哦!
最后,经典的单分支结构示意图就贴在这边啦!
2.2、双分支结构
if(条件表达式):
语句/语句块1
else:
语句/语句块2
还是首先提醒你啊,条件表达式和else后面的两个英文冒号别忘记写!!
当条件表达式的值为True时,执行语句/语句块,否则(条件表达式为False时)执行语句/语句块2
message=input("告诉我你喜欢我吗?")
if(message=="喜欢"):
print("感谢你陪伴我走位漫漫古道")
else:
print("再见,但我会更加昂扬向上!")
#当面前的ta输入喜欢时,会输出“感谢你陪伴我走位漫漫古道”
#当面前的ta输入不喜欢是,会输出“再见,但我会更加昂扬向上!”
双分支结构体现了数学里的对立事件,数学家们把很多事看做一个命题,这件事只有两种情况,即真与假,你身边的人与事在感性层面上可能非常朦胧,但是实际上只有两种结果,即是真与假,但不管它是真与假,亲爱的,我都希望你乐观面对,善待自己!
双份结构示意图贴在这里!
!2.3、多分支结构
if(条件表达式1):
语句/语句块1
elif(条件表达式2): #这里出现的elif就是(else if缩写)
语句/语句块2 #elif是对C语言的简化
elif(条件表达式3):
语句/语句块3
···
elif(条件表达式n):
语句/语句块n
[else: #这里的else可以不写哦!
语句/语句块n+1] #这里的中括号起界定作用,不能写啊!!
多分支结构用数学上的集合(高一上学期的内容哦)来解释好一些。一个全集,数学上一般是复数域或实数域,但是在现实的编程中,根据问题的不同,这里的集合可以是任何事物(虚拟的也好,想象的也好),在这个全集内,有不同的元素,条件表达式1,2,3···n就是用来描述不同的元素选择,在选择每个元素时,相对应的语句/语句块会执行相应的操作,最后的else代表着前面所有选择过的元素的补集(针对于全集的补集)。下面举几个栗子:
#这是一个针对全集是实数域的多分支结构
message=eval(input("1-10分,你给我的颜值打几分:"))
if(message==10):
print("你是不是喜欢我?")
elif(message>=9 and message<10):
print("你很有眼光!")
elif(message>5 and message<9):
print("感谢你参与这个活动")
else:
print("你是不是没读题还是和我有仇?")
#这是一个针对几个字符串的多分支结构
print("请你在漂亮,美丽,俊,帅气,飒这几个词里面选择与我相关的")
message=input("输入你的选择:")
if(message=="漂亮"):
print("谢谢你!")
elif(message=="美丽"):
print("感谢你")
elif(message=="飒"):
print("恩")
else:
print("你该重开了")
如果有人故意搞怪,输入“蠢和丑”之类的,else就可以代替我们反击他们了!
照例,多分支结构的示意图贴在这里:
3、循环结构
经典的循环语句是for循环和while循环
为什么要循环,在我们的人生中,每天的饮食与起居贯穿始终,数学上的数列求和(像从1加到100)在程序表现中,都是重复一个语句的行为。
3.1、for循环
for 变量 in 对象集合:
循环体语句/语句块
3.1.1、range对象
先讲range对象吧,range的意思是范围的意思;语句格式如下:
range(start,stop[,step]) #start是从哪个数开始的意思
#这里的step可以不写哦 #stop是到哪个数结束的意思
#step是步长,就是公差(等差数列)
这实际上就是生成一个左闭右开的区间(数学)。
实际上日常应用的时候就是产生一个等差数列,start是首元素,stop是尾元素,step是公差,公差可以不写,不写的时候默认是1。
一定要记住了!!!对象范围是包括start、不包括stop!
好,现在继续讲for语句,for语句用于遍历可迭代对象集合中的元素,并对集合中的每个元素执行一次相关的嵌入语句。什么意思呢,就是说我可以访问一个集合里面的所有元素,并可以通过语句来对每个元素进行相应的操作。举个栗子:
s=0
for i in range(1,101,1): #这边这个1可以不写
s+=i
print(s)
for语句的示意图贴在这里!
3.2、while循环
while(条件表达式): #英文冒号不能忘哦!
循环体语句/语句块 #这是被循环(重复)执行的代码
while循环是极其重要的循环!!业内称“当型循环”。什么意思呢,就是当条件表达式成立时,就永远循环操作语句块,当条件不满足后,就会结束循环。
由于程序必须具有有限性(就是说不能死循环),所以while中必须有能够使条件表达式不满足的情况,举个栗子:
s=0
i=0
while(i<=100):
s+=i
i+=1
print(s)
这个循环和上文中的for循环效果一直,在理论上,while语句可以转换为for循环。
while循环的示意图贴在这里!