一、Python3基础05: 基本语句

目录

1. if判断语句

1.1 if语句基本语法

1.2 示例代码

1.3 if语句嵌套

1.4 pass空语句

2. while循环语句

2.1 while语句基本语法

2.2 示例代码

2.3 while无限循环语法

2.4 while 循环使用else语句

2.5 使用while循环遍历列表和元组

3. for循环语句

3.1 for循环语句基本语法

3.2 使用for语句进行数值循环

3.3 使用for循环语句输出列表/元组元素

3.4 使用for循环语句遍历字典

3.5 嵌套for循环示例

4. break循环控制语句

5. continue循环控制语句

6. assert语句


上一篇:04 Python3基础:运算符_卡卡6的博客-CSDN博客

1. if判断语句

1.1 if语句基本语法

判断语句是指编程语言中用来判定所给定的条件是否满足,根据判定的结果执行给出的操作之一。

语法格式如下:

if <条件1>:
    #code block1
elif <条件2>:
    #code block2
else:
    #code block3

如果 "<条件1>" 为 True 将执行 "code block1" 块语句
如果 "<条件1>" 为False,将判断 "<条件2>"
如果 "<条件2>" 为 True 将执行 "code block2" 块语句
如果 "<条件2>" 为False,将执行"code block3"块语句

Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。

注意:

(1) 每个条件后面要使用冒号:,表示接下来是满足条件后要执行的语句块。

(2) 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块

(3) 在Python中没有switch – case语句。

1.2 示例代码

示例1:多分支判断语句

#!/usr/bin/python3
a=100
if a>200:
    print("a>200")
elif a==200:
    print("a==200")

else:
    print("a<200")

示例2:判断平年闰年

#!/usr/bin/python3
year=int(input("请输入年份:"))

if (year%400==0) or (year%4==0 and year%100!=0):
    print("%d是闰年" % (year))

else:
    print("%d是平年" % (year))

如果if语句体中只有一条语句,可以将该语句与if写在同一行中

#!/usr/bin/python3
if 123<456:print("123<456")

1.3 if语句嵌套

在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。

语法格式如下:

if 表达式1:
    语句
    if 表达式2:
        语句
    elif 表达式3:
        语句
    else:
        语句
elif 表达式4:
    语句
else:
    语句

示例代码3:

#!/usr/bin/python3
num=int(input("输入一个数字:"))
if num%2==0:
	if num%3==0:
		print("输入的数字可以整除 2 和 3")
	else:
		print("输入的数字可以整除 2,但不能整除 3")
else:
	if num%3==0:
		print("输入的数字可以整除 3,但不能整除 2")
	else: 
		print("输入的数字不能整除 2 和 3")

1.4 pass空语句

很多程序都提供了“空语句”支持,Python 也不例外,Python 的 pass 语句就是空语句。

有时候程序需要占一个位、放一条语句,但又不希望这条语句做任何事情,此时就可通过 pass 语句来实现。通过使用 pass 语句,可以让程序更完整。

pass只是为了防止语法错误。

if a>1:

    pass #如果没有内容,可以先写pass,但是如果不写pass,就会语法错误

pass就是一条空语句,在代码段中或定义函数的时候,如果没有内容,或者先不做任何处理,直接跳过,就可以使用pass。

示例代码4:

#!/usr/bin/python3
s = input("请输入一个整数: ")
s = int(s)

if s > 5:
	print("大于5")
elif s < 5:
	#空语句,相当于占位符    
	pass
else:
	print("等于5")

2. while循环语句

2.1 while语句基本语法

编程语言的循环结构用于重复执行同一段代码。

例如:要计算 1+2+3+……+99+100 的值,就要重复进行 99 次加法运算。

Python中,while 循环和 if 条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while 就会一直重复执行那段代码块。

Python中while语句的语法形式:

while <判断条件>

 <执行语块>

使用while语句需要注意冒号和缩进。在 Python 中没有 do..while 循环。

while 语句执行的具体流程为:首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块...如此循环,直到条件表达式的值为假(False),才终止循环。

2.2 示例代码

示例代码:用 while循环来计算 1 到 100 的总和

#!/usr/bin/python3
n = 100
sum = 0
i = 1
while i <= n:
	sum = sum + i
	i+=1

print("1 到 %d 之和为: %d" % (n,sum))

2.3 while无限循环语法

在程序里,有些时候必须无限循环重复做某件事情,我们可以通过设置while语句的条件表达式永远不为 false 来实现无限循环。示例代码:

#!/usr/bin/python3
number=0
while True:
	number=int(input("请输入你喜欢的数字:"))
	print("你输入的数字:%d" % (number))

2.4 while 循环使用else语句

while … else语句支持在条件语句为 false 时执行 else 的语句块。

语法格式如下:

while <判断条件>:

    #code block1

else:

    #code block2

示例代码:

#!/usr/bin/python3
#number=0
number=10
while number<5:
	print("number的值小于5,number当前值:%d" % (number))
	number+=1
else:
	print("number的值大于5,number当前值:%d" % (number))

2.5 使用while循环遍历列表和元组

Python的列表和元组的元素都是有索引的,因此程序可通过 while 循环、列表或元组的索引来遍历列表和元组中的所有元素。示例代码:

#!/usr/bin/python3
a_tuple = ('python', 'C#', 'C++')
i = 0

# 只有i小于len(a_list),继续执行循环体
while i < len(a_tuple):
	print(a_tuple[i]) # 根据i来访问元组的元素
	i += 1

3. for循环语句

Python中的循环语句有2种,分别是 while 循环和 for 循环。

for 循环,它常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。

3.1 for循环语句基本语法

for 循环的语法格式如下:

for 迭代变量 in 字符串|列表|元组|字典|集合:

    代码块

语法格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。

示例代码: 逐个取出字符串里的字符

#!/usr/bin/python3
str = "欢迎学习Python编程语言"
#变量ch,逐个输出各个字符
for ch in str:
	print(ch)

示例代码: 逐个取出列表里的数据

#!/usr/bin/python3
list=["C++","PYTHON","C#","JAVA"]
for ch in list: #ch就是迭代变量
	print(ch)

示例代码: for循环也支持else子语句

while 循环语句和 for 循环语句使用 else 的区别

(1) 如果 else 语句和 while 循环语句一起使用,则当条件变为 False 时,则执行 else 语句。

(2) 如果 else 语句和 for 循环语句一起使用,else 语句块只在 for 循环正常终止时执行。

#!/usr/bin/python3
list=["C++","PYTHON","C#","JAVA"]
for ch in list:
	print(ch)
else:
	print("循环结束")

3.2 使用for语句进行数值循环

如果需要遍历数字序列,可以使用内置range()函数,使用range()函数可以生成数列。

range() 函数的语法格式如下:

range(start,end,step)

函数中各参数的含义:

(1) start:用于指定计数的起始值,如果省略不写,则默认从 0 开始。

(2) end:用于指定计数的结束值(不包括此值),此参数不能省略。

(3) step:用于指定步长,即两个数之间的间隔,如果省略,则默认步长为 1。

在使用 range() 函数时,如果只有一个参数,则表示指定的是 end;如果有两个参数,则表示指定的是 start 和 end。

示例代码: 使用range函数循环5次

#!/usr/bin/python3

for i in range(5):

    print(i)

输出:

0

1

2

3

4

示例代码: 指定步长

#!/usr/bin/python3

for i in range(1,10,2):

    print(i)

输出:

1

3

5

7

9

3.3 使用for循环语句输出列表/元组元素

示例代码: 输出列表元素

#!/usr/bin/python3
list=["c++","python","c#","php"]
for i in list:
	print("当前元素", i)

示例代码: 输出元组元素

#!/usr/bin/python3
data=("c++","python","c#","php")
for i in data:
	print("当前元素", i)

示例代码: 通过索引方式输出元组元素

#!/usr/bin/python3
data=("c++","python","c#","php")
for i in range(0,len(data)):
	print("当前元素",data[i])

3.4 使用for循环语句遍历字典

使用 for 循环遍历字典其实也是通过遍历普通列表来实现的。

字典包含了如下三个方法:

items():返回字典中所有 key-value 对的列表。

keys():返回字典中所有 key 的列表。

values():返回字典中所有 value 的列表。

如果要遍历字典,完全可以先调用字典的上面三个方法之一来获取字典的所有 key-value 对、所有 key、所有 value,再进行遍历。(遍历键,再通过键来取值)

示例代码:三种方法遍历字典

#!/usr/bin/python3
my_dict = {'语文': 89, '数学': 92, '英语': 80}
# 通过items()方法遍历所有key-value对
# 由于items方法返回的列表元素是key-value对,所以需要定义两个迭代变量
for key, value in my_dict.items():
	print('key:', key)
	print('value:', value)
	print('-------------') 

# 通过keys()方法遍历所有key
for key in my_dict.keys():    
	print('key:', key)    
	# 在通过key获取value    
	print('value:', my_dict[key])
	print('-------------') 

# 通过values()方法遍历所有value
for value in my_dict.values():
	print('value:', value)

结果:

key: 语文

value: 89

-------------

key: 数学

value: 92

-------------

key: 英语

value: 80

-------------

key: 语文

value: 89

-------------

key: 数学

value: 92

-------------

key: 英语

value: 80

-------------

value: 89

value: 92

value: 80

3.5 嵌套for循环示例

示例代码: 输出半边三角形

#!/usr/bin/python3
for i in range(1,6):
	for j in range(1, i+1):
		print("*",end='') #end="" 表示不需要换行
	print('\r')

示例代码: 输出9*9乘法口诀表,顺序输出

#!/usr/bin/python3
for i in range(1,10):#生成的整数的范围:start~end-1=1~9
	for j in range(1,i+1):
		print("%dx%d=%d " % (j,i,j*i), end="")
	print()

结果:

1x1=1

1x2=2 2x2=4

1x3=3 2x3=6 3x3=9

1x4=4 2x4=8 3x4=12 4x4=16

1x5=5 2x5=10 3x5=15 4x5=20 5x5=25

1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36

1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49

1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64

1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

逆序输出

for i in range(9,0,-1):
	for j in range (1,i):
		print("\t",end="")
	for k in range (i,10):
		print("%dx%d=%d" % (i,k,k*i), end="\t")
	print()

示例代码:冒泡排序

#!/usr/bin/python3
list=[]
#从键盘上输入10个整数
for i in range(0,5):
	list.append(int(input("请输入整数:")))
	i+=1

#输出输入的数据
print("排序之前list[]=")
for i in range(0,len(list)):
	print(" ",list[i],end="")
else:
	print();
	#冒泡排序
	for i in range(0,len(list)-1):
		for j in range(0,len(list)-i-1):
			if(list[j]>list[j+1]):
				temp=list[j]
				list[j]=list[j+1]
				list[j+1]=temp 
	print("排序之后list[]=")
	for i in range(0,len(list)):
		print(" ",list[i],end="")

运行:

请输入整数:2

请输入整数:6

请输入整数:78

请输入整数:0

请输入整数:1

排序之前list[]=

  2  6  78  0  1

排序之后list[]=

  0  1  2  6  78

4. break循环控制语句

在执行 while 循环或者 for 循环时,只要循环条件满足,程序将会一直执行循环体,不停重复。

在某些场景下,可能希望在循环结束前就手动退出循环,Python 提供了2种强制离开当前循环体的办法:

(1) 使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。

(2) 只用 break 语句,可以完全终止当前循环。

break 用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到 break,系统就完全结束该循环,开始执行循环之后的代码。

break 语句一般会结合 if 语句进行搭配使用,表示在某种条件下,跳出循环体,如果使用嵌套循环,break 语句将跳出当前的循环体。

break 语句的语法非常简单,只需要在相应 while 或 for 语句中直接加入即可。跟C语言的使用情况其实是一样的。

示例代码:使用break跳出for 循环

#!/usr/bin/python3
for i in range(0, 10):
	print("i的值是: ", i)
	if i == 2 :
		break   # 执行该语句时将结束循环

对于带 else 块的 for 循环,如果使用 break 强行中止循环,程序将不会执行 else 块。下面代码的else块代码就不会执行。

#!/usr/bin/python3
for i in range(0, 10) :
	print("i的值是: ", i)
	if i == 2 :
		break # 执行该语句时将结束循环
	else: 
		print('else块: ', i)

针对嵌套的循环结构来说,Python 的 break 语句只能结束其所在的循环体(最近的一层循环),而无法结束嵌套所在循环的外层循环。示例代码:

#!/usr/bin/python3
cnt=0
for i in range(0, 5) :
	for j in range(0,5):
		if (j==2):
			break #只能跳出最近的一层for循环
		else:
			cnt+=1
print("cnt=%d" % (cnt)) #最终cnt为10

5. continue循环控制语句

和 break 语句相比,continue 语句的作用则没有那么强大,它只能终止本次循环而继续执行下一次循环。

continue 语句的用法和 break 语句一样,只要 while 或 for 语句中的相应位置加入即可,也是对最近的一层循环有效

示例代码:continue语句

#!/usr/bin/python3
for i in range(0,5):
	if i == 2 :
		continue #忽略本次循环的剩下语句
	print("i=%d" % (i))

结果:

i=0

i=1

i=3

i=4

continue语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

6. assert语句

Assert中文意思就是“断言”,assert 断言语句和 if 分支有点类似,它用于对一个 bool 表达式进行断言,如果该 bool 表达式为 True,该程序可以继续向下执行;否则程序会引发 AssertionError 错误。

通常,assert 语句用在检查函数参数的属性(参数是否是按照设想的要求传入),或者作为初期测试和调试过程中的辅助工具。

断言也可以对逻辑表达式进行判断,因此实际上断言一种特殊的分支语句。

assert 断言的执行逻辑类似if语句:

if 表达式的值为 True:
    程序继续运行;
else: # 表示式的值为 False
     程序引发 AssertionError 错误

assert的语句格式:

assert (逻辑表达式), data  # data是可选的

示例代码:

#!/usr/bin/python3
data=int(input("请输入数据:"))
print("你输入的数据:",data)

#断言代码
assert data>=50, print("你输入的数据大于50")

结果:

请输入数据:100

你输入的数据: 100

结果:对于输入,不符合逻辑表达式的情况

请输入数据:20

你输入的数据: 20

你输入的数据大于50

Traceback (most recent call last):

  File "run.py", line 6, in <module>

    assert data>=50, print("你输入的数据大于50")

AssertionError: None

猜你喜欢

转载自blog.csdn.net/qq_40088639/article/details/128492417