Python语法(2)

Python语法(2)

这次我们整理了判断语句和循环语句,这里我们仍然是和c语言进行比较

判断语句:

if-else基本判断语句:

当条件成立时执行if里面的语句,当条件不成立时执行else里面的语句
注意在python中if和else后面需要加上冒号:,但是在C语言中是加上{}来表示
在不同的执行语句一定要注意缩进,缩进在python中是很重要的一项
正确写法:

a = int(input())#比如我们输入的是9就输出YES,输入3就是NO
if a>5:
	print("YES")
else:
	print("NO")

错误写法:

a = int(input())
if a>5:
	print("YES")
   print("正确")
else:
print("NO")

上述错误写法很明显出现了缩进问题,这点一定要注意
如果是简单的if-else语句,如果不需要else里面的东西,我们是可以省略不写的。

a = int(input())
if a>5:
	print("YES")

当执行语句只有一条时候,我们是可以写在一行当中,但是这样不规范,这里不是很推荐

a = int(input())
if a>5: print("YES")
else: print("NO")

当然多个if-else语句是可以嵌套的,到时候根据题意书写即可,注意缩进
例子:输入三个数字,找出最大的那个数字:

a,b,c=map(int,input(),split())
if a>b:
	if a>c:
		print(a)
	else:
		print(c)
else:
	if b>c:
		print(b)
	else:
		print(c)

常见的比较运算符:

大于 >
小于 <
大于等于 >=
小于等于 <=
等于 ==
不等于 !=

多种情况的if-else的连写

在C语言中要写成else if,而在Python中要写成elif

a = int(input())
if a>=90:
	print("优秀")
elif a>=75:
	print("良好")
elif a>=60:
	print("及格")
else:
	print("不及格")

pass语句

正如我们上到提到的如果不需要输出任何语句可以不用写else语句,其实也可以在else中写上pass语句,表示无需执行如何动作

a = int(input())
if a>5:
	print("YES")
else:
	pass#表示先不执行等以后有需要再写

变量的作用域

if语句中的变量也可以在if语句外面使用

a,b=map(int,input().split())
if a>b:
	c=a
else:
	c=b
print(c)

但是在C语言中这点就不可以

条件表达式

and
or
not
注意优先级not>and>or
a = 10
b = 8
if a%2==0 andb%2==0:
	print("YES")
else:
	print("NO")

三元运算符

类似于C语言,Java中的问好表达式(忘记了建议回去看看)

a,b=map(int,input().split())
c=a if a>b else b

match语句

这个语句有点类似于C语言中switch-case语句

a = int(input())

match a:
    case 400:
        print("Bad request")
    case 404:
        print("Not found")
    case 418 | 420 | 422:
        print("I'm a teapot")
    case _:
        print("Something's wrong with the internet")

注意Python中比较运算符是可以连写的,这点跟C++和Java有很大的区别的

a,b,c=map(int,input().split())
if a>=b>=c:#对这里是可以连写的,但是在C语言和Java中就不可以了
	print("YES")
 else:
	print("NO")

循环语句

while循环

while循环可以看成是一种循环版的if语句,if语句是只执行一次,只要满足就执行,而while语句会执行多次if语句,只要满足就执行,当然也会有一个改变变量的操作,不然这就是一个死循环。

a = 0
while a<10:
	print(a)
	i+=1#注意Python中没有++的形式

如果之前学过C语言有编程基础的同学,这里是比较好理解的。
做个题:求斐波那契数列

a,b,i =1,1,1
n=int(input())
#输出第n个数
while i<n:
	a,b=b,a+b
	i++;
print(a)#a就是第n项

注意不要让循环成为死循环

for循环

for循环语句用来按顺序枚举range或者是字符串等数据类型,for语句同样也需要满足冒号和缩进的要求。
以后会单独开一个专门讲数据类型,到时候for就可以结合列表,元组,集合,字典等一些复杂类型使用,这里先简单介绍一些for循环的简单用法
1.遍历字符串
for循环可以遍历字符串

a ="Python"
for i in a:#当然这里的i变量会自动转换为str(字符串)类型
	print(i,end=" ")
#输出结果为:P y t h o n 

也可以写成这个样子:

for i in "Python":
	print(i,end=" ")

2.遍历range
Python中有一个range()函数,可以使用这个生成一个等差数列,可以接受1 or 2 or 3个整数参数,分别有不同的用法
举一个C语言的列子:

for(int i=1;i<=n;i++){
	cout<<i<<endl;
}

等价于:

for i in range(n+1):
	print(i)

接下来我们讲一下不同数量参数的意义:
1.接收一个参数时候

for i in range(5):
	print(i,end=" ")
#输出0 1 2 3 4

2.接收两个参数时候

for i in range(2,5):
	print(i,end=" ")
#输出 2 3 4

3.接收三个参数时候

for i in range(2,8,2):
	print(i,end=" ")
#输出结果为2 4 6

这里要着重强调一下第三个方式,如果差值没写好很容易出现一个死循环,比如如果把最后的2换成-2这里就是一个死循环。

跳转语句

1.break
break语句可以提前结束最近的一层循环,一般情况下我们会和if语句连用,这里的break与C语言中的用法相似。

#判断一个数是不是素数
n = int(input())
if n<=1:
	print(NO)
else:
    flag = True;
    for i in range(2,n):
        if n%i==0:
            flag=False;
            break;#这里直接结束当前循环
    if flag:
        print("YES")
    else:
        print("NO")

2.continue语句
这里都是continue语句和C语言中的用法也差不多,都是可以结束当前循环中continue后面的语句,直接进入下一次循环。

#输出1-100之间所有的偶数和
s = 0
for i in range(1,101):
	if i%2==1:
		continue
	else:
		s+=i
print(s)

多层循环

Python中也和其他语言一样可以写多层循环,也就是说for循环里面还可以写一个for循环,但是要注意内外层循环的变量不能是同一个不然很容易出现错误。

k = 0
for i in range(10):
	for j in range(10):
		print(k,end=" ")
		k+=1
	print()#等价于换行

小tips

上面我们不是说到pass语句嘛,这里循环如果我们没有什么要输出的也可以用pass语句代替。

for i in range(10):
	pass
#这是一个死循环,我们只是要求不输出内容,但不是做了一个死循环。
while True:
	pass

2.循环中的else子句
for循环和while循环可以包含else子句,会在循环结束后执行,这里我们可以理解为for循环也是一种判断语句,只要不是被break等恶意终止,都会执行else语句,但是如果是被break语句终止的for循环则不会执行else语句。

#还是拿素数举例,输出是不是素数

n = int(input())
for i in range(2,n):
	if n%i==0:
		print("NO")
		break
else:
	print("YES")

注意多层循环尽量不要使用相同的变量名,防止互相干扰

posted @ 2023-09-13 13:48  du463  阅读(28)  评论(0编辑  收藏  举报