其实python中的if和while的使用和C语言中的if和while的使用并没有多大的差距,只不过在一些地方的的使用有所不同,相较之下python中的用法更为简便快捷些。
if语句
使用if语句要注意的还是缩进,if语句后面要加上冒号。每条if 语句的核心都是一个值为True 或False 的表达式,这种表达式被称为条件测试 条件测试 。Python根据条件测试的值为True 还是False 来决定是否执行if 语句中的代码。如果 是True就执行这条语句。
cars = ['Audi', 'Bmw', 'Subaru', 'Toyota']
for car in cars:
if car.lower()=='subaru':#当这个条件为真时就执行下面一条语句
print(car.upper())
else:
print(car)
print('\n')
在python中检查两个值是否相等也是使用“==”、“!=”来代表相等与不相等,这一点和C语言中的用法相同,包括用“>"、"<"、”=“、”>="、“<=”来表示两值比较用法也都和C语言相同。不同的是“与”和“或”的表示,在python中是用and和or来表示
而不是用"&&“和”||"表示。
age_0=15
age_1=19
if age_0>=18 and age_1>=18:
print('true')
else:
print('false')
in和not in在if语句中的使用
在python中可以用in来检查特定值是否包含在列表中,这种功能可以帮助用户在注册结束注册之前检查用户是否已经注册过。
requested_toppings = ['mushrooms', 'onions', 'pineapple']
if 'mushrooms' in requested_toppings:
print("yes")
else:
print("no")
而not in则可以帮助我们检查特定值是否不包含在列表中。这种功能可以用在论坛中检查某个用户是否被禁言。
banned_users = ['andrew', 'carolina', 'david']
user=input()
if user not in banned_users:
print(user.title() + ", you can post a response if you wish.")
else:
print(user.title()+",you not can post a response if you wish.")
布尔表达式
布尔表达式其实和条件表达式一样,其结果要么为True要么为False。布尔值通常用于记录条件。在循环语句中也会经常用到。
if-elif-else
在C语言中我们经常能看到if-else if-else这样的语句所以当看到elif便不理解是干什么用的,其实elif只不过是else if的简化形式它的作用和else if一样。可以按照C语言中的解决思路去解决问题,只是书写格式不同而已(注意后面冒号和缩进)
age = 12
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
else:
price = 5
print("Your admission cost is $" + str(price) + ".")
if语句和列表的搭配使用
将if语句和列表for循环搭配在一起可以更好的去解决一个问题也能更好的实现人们对某一事物的要求,实现更好的人机交互。
requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
for request in requested_toppings:
if request=='green peppers':
print("Sorry, we are out of green peppers right now.")
else:
print("Adding " + request + ".")
确定列表不是空的
一般列表都会包含元素,但对于要即将打印列表中的信息来说在运行for循环之前判断列表是否为空也很重要。下面是先用if语句来判断列表是否为空如果为空就输出对用户的提示,不为空就使用循环打印列表信息。
requested_toppings = []
if requested_toppings:
for requested_topping in requested_toppings:
print("Adding " + requested_topping + ".")
print("\nFinished making your pizza!")
else:
print("Are you sure you want a plain pizza?")
在python中也可以使用多个列表来完成一项工作。
while循环语句
在python中while循环的使用和C语言中的while循环并没有多大区别,使用起来也比较简单。在python中也可以使用C语言中的break语句来退出整个循环并不再执行余下代码和使用continue语句来结束本次循环。什么时候使用则根据自己需要。在python中也要避免无限循环。
speak="Please input the bulletin of the pizza! Thank you!\n"
speak+="Enter 'quit' when you are finished."
while True:
pizza=input(speak)
if pizza=="quit":
break
else:
print("The "+str(pizza)+" have been added!")
print('\n')
用while循环处理列表
for循环是一种遍历列表的有效方式,但在遍历时不应修改列表,不然很难跟踪其中列表。要想在遍历列表时对其修改可以使用while循环。
在列表之间移动元素
numbers=[23,44,35,65,12]
even=[]
odd=[]
while len(numbers)>0:
number=numbers.pop()
if number%2==0:
even.append(number)
else:
odd.append(number)
print(even)
print(odd)
运行结果:
[12, 44]
[65, 35, 23]
删除包含特定值的所有列表元素
使用while循环我们可以用remove()删除一个列表中多次出现的一个元素。
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
print(pets)
while 'cat' in pets:
pets.remove('cat')
print(pets)
运行结果:
[‘dog’, ‘cat’, ‘dog’, ‘goldfish’, ‘cat’, ‘rabbit’, ‘cat’]
[‘dog’, ‘dog’, ‘goldfish’, ‘rabbit’]
小结
其实python中的if和while的用法真的和C语言没太大差距,只是在一些写法上和某些运用上有一些差距。具体使用还是看自己想如何解决问题。
下面一个代码是在一个视频网站教程中看到的,自己根据自己的想法对原来的代码进行了修改,大体没变就是改变了一下交互过程。
import random
secret=random.randint(1,15)#产生1<=n<=15内的随机整数
print("-------------下面是一个猜字游戏--------------")
print("你可以猜一下下面将要出现的数字!")
time=3
guess=0
while(guess!=secret) and (time>0):
temp=input("请输入你想的数字:")
guess=int(temp)
time-=1
if guess==secret:
print("太棒了!恭喜你猜中了!")
else:
if guess>secret:
print("你输入的数大了!")
else:
guess<secret
print("你输入的数小了")
if time>0:
print("你还有”“”"+str(time)+"机会!再试一次吧!")
else:
print("很遗憾!机会用光了!")
print("游戏结束!")