Python武器库开发-基础篇(二)
  aSr2Nx0McLeE 2023年11月02日 39 0


基础篇(二)

if 语句

编程时经常需要检查一系列条件,并据此决定采取什么措施。在Python中,if 语句让你能够检查程序的当前状态,并据此采取相应的措施

Python武器库开发-基础篇(二)_武器库开发

下面是一个简短的示例,演示了如何使用if 语句来正确地处理特殊情形。假设你有一个汽车列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,都应以首字母大写的方式打印其名称,但对于汽车名’bmw’ ,应以全大写的方式打印。下面的代码遍历一个列表,并以首字母大写的方式打印其中的汽车名,但对于汽车名’bmw’ ,以全大写的方式打印:

每条if语句的核心都是一个值为True 或False 的表达式,这种表达式被称为条件测试 。Python根据条件测试的值为True 还是False 来决定是否执行if 语句中的代码。如果条件测试的值为True ,Python就执行紧跟在if 语句后面的代码;如果为False ,Python就忽略这些代码

cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
   if car == 'bmw':
        print(car.upper())
   else:
        print(car.title())

这个示例中的循环首先检查当前的汽车名是否是’bmw’ 。如果是,就以全大写的方式打印它;否则就以首字母大写的方式打印:

Python武器库开发-基础篇(二)_java_02

最简单的 if 语句只有一个测试和一个操作:

在第1行中,可包含任何条件测试,而在紧跟在测试后面的缩进代码块中,可执行任何操作。如果条件测试的结果为True ,Python就会执行紧跟在if 语句后面的代码;否则Python将忽略这些代码。

假设有一个表示某人年龄的变量,而你想知道这个人是否够投票的年龄,可使用如下代码:

age = 19
if age >= 18:
  print("You are old enough to vote!")

Python检查变量age 的值是否大于或等于18;答案是肯定的,因此Python执行处缩进的print 语句:

Python武器库开发-基础篇(二)_武器库开发_03

if-else 语句

经常需要在条件测试通过了时执行一个操作,并在没有通过时执行另一个操作;在这种情况下,可使用Python提供的 if-else 语句。if-else 语句块类似于简单的if 语句,但其中的else 语句让你能够指定条件测试未通过时要执行的操作。

下面的代码在一个人够投票的年龄时显示与前面相同的消息,同时在这个人不够投票的年龄时也显示一条消息:

age = 17
if age >= 18:
    print("You are old enough to vote!")
    print("Have you registered to vote yet?")
else:
    print("Sorry, you are too young to vote.")
    print("Please register to vote as soon as you turn 18!")

如果条件测试通过了,就执行第一个缩进的print 语句块;如果测试结果为False ,就执行else 代码块。这次age 小于18,条件测试未通过,因此执行else 代码块中的代码:

Python武器库开发-基础篇(二)_python_04

if-elif-else 语句

经常需要检查超过两个的情形,为此可使用Python提供的if-elif-else 结构。Python只执行if-elif-else 结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试。

在现实世界中,很多情况下需要考虑的情形都超过两个。例如,来看一个根据年龄段收费的游乐场:

  • 4岁以下免费;
  • 4~18岁收费5美元;
  • 18岁(含)以上收费10美元。

如果只使用一条if 语句,如何确定门票价格呢?下面的代码确定一个人所属的年龄段,并打印一条包含门票价格的消息:

age = 12

if age < 4:
    print("Your admission cost is $0.")
elif age < 18:
    print("Your admission cost is $5.")
else:
    print("Your admission cost is $10.")

if 测试检查一个人是否不满4岁,如果是这样,Python就打印一条合适的消息,并跳过余下的测试。elif 处的代码行其实是另一个if 测试,它仅在前面的测试未通过时才会运行。在这里,我们知道这个人不小于4岁,因为第一个测试未通过。如果这个人未满18岁,Python将打印相应的消息,并跳过else 代码块。如果if 测试和elif 测试都未通过,Python将运行else 处代码块中的代码。

在这个示例中,if处测试的结果为False ,因此不执行其代码块。然而,第二个测试的结果为True (12小于18),因此将执行其代码块。输出为一个句子,向用户指出了门票价格:

Python武器库开发-基础篇(二)_python_05

只要年龄超过17岁,前两个测试就都不能通过。在这种情况下,将执行else 代码块,指出门票价格为10美元。

为让代码更简洁,可不在if-elif-else 代码块中打印门票价格,而只在其中设置门票价格,并在它后面添加一条简单的print 语句:

age = 12

if age < 4:
    price = 0
elif age < 18:
    price = 5
else:
    price = 10

print("Your admission cost is $" + str(price) + ".")

根据人的年龄设置变量price 的值。在if-elif-else 结构中设置price 的值后,一条未缩进的print 语句会根据这个变量的值打印一条消息,指出门票的价格。

这些代码的输出与前一个示例相同,但if-elif-else 结构的作用更小,它只确定门票价格,而不是在确定门票价格的同时打印一条消息。除效率更高外,这些修订后的代码还更容易修改:要调整输出消息的内容,只需修改一条而不是三条print 语句。

Python武器库开发-基础篇(二)_python_06

for 循环

Python武器库开发-基础篇(二)_网络安全_07

你经常需要遍历列表的所有元素,对每个元素执行相同的操作。例如,在游戏中,可能需要将每个界面元素平移相同的距离;对于包含数字的列表,可能需要对每个元素执行相同的统计运算;在网站中,可能需要显示文章列表中的每个标题。需要对列表中的每个元素都执行相同的操作时,可使用Python中的for 循环。

假设我们有一个魔术师名单,需要将其中每个魔术师的名字都打印出来。为此,我们可以分别获取名单中的每个名字,但这种做法会导致多个问题。例如,如果名单很长,将包含大量重复的代码。另外,每当名单的长度发生变化时,都必须修改代码。通过使用for 循环,可让Python去处理这些问题。

下面使用for 循环来打印魔术师名单中的所有名字:

magicians = ['alice', 'david', 'carolina']
for magician in magicians:
     print(magician)

首先,我们像定义了一个列表magicians。接下来,我们定义了一个for 循环;这行代码让Python从列表magicians 中取出一个名字,并将其存储在变量magician 中。最后,我们让Python打印前面存储到变量magician 中的名字。这样,对于列表中的每个名字,Python都将重复执行代码行。你可以这样解读这些代码:对于列表magicians 中的每位魔术师,都将其名字打印出来。输出很简单,就是列表中所有的姓名:

Python武器库开发-基础篇(二)_网络安全_08

while 循环

for 循环用于针对集合中的每个元素都一个代码块,而while 循环不断地运行,直到指定的条件不满足为止

Python武器库开发-基础篇(二)_java_09

你可以使用while 循环来数数,例如,下面的while 循环从1数到5:

current_number = 1
while current_number <= 5:
    print(current_number)
    current_number += 1

在第1行,我们将current_number 设置为1,从而指定从1开始数。接下来的while 循环被设置成这样:只要current_number 小于或等于5,就接着运行这个循环。循环中的代码打印current_number 的值,再使用代码current_number += 1 (代码current_number = current_number + 1 的简写)将其值加1。

只要满足条件current_number <= 5 ,Python就接着运行这个循环。由于1小于5,因此Python打印1 ,并将current_number 加1,使其为2 ;由于2小于5,因此Python打印2 ,并将current_number 加1 ,使其为3 ,以此类推。一旦current_number 大于5,循环将停止,整个程序也将到此结束:

Python武器库开发-基础篇(二)_服务器_10

使用 continue 语句 退出循环

Python武器库开发-基础篇(二)_网络安全_11

for letter in 'Python':   
   if letter == 'h':
      continue
   print('当前字母 :', letter)

程序的输出结果如下:

Python武器库开发-基础篇(二)_网络安全_12

var = 10                   
while var > 0:              
  var = var-1
  if var == 5:
     continue
  print('当前变量值 :', var)

程序的输出结果如下:

Python武器库开发-基础篇(二)_网络安全_13

使用break 退出循环

Python武器库开发-基础篇(二)_java_14

要立即退出while 循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用break 语句。break 语句用于控制程序流程,可使用它来控制哪些代码行将执行,哪些代码行不执行,从而让程序按你的要求执行你要执行的代码。

例如,来看一个让用户指出他到过哪些地方的程序。在这个程序中,我们可以在用户输入’quit’ 后使用break 语句立即退出while 循环:

prompt = "\nPlease enter the name of a city you have visited:"
prompt += "\n(Enter 'quit' when you are finished.) "

while True:
    city = input(prompt)

    if city == 'quit':
        break
    else:
        print("I'd love to go to " + city.title() + "!")

pass 语句

Python pass 是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句

for letter in 'Python':
   if letter == 'h':
      pass
      print('这是 pass 块')
   print('当前字母 :', letter)

以上实例执行结果:

Python武器库开发-基础篇(二)_服务器_15

字典

来看一个游戏,其中包含一些外星人,这些外星人的颜色和点数各不相同。下面是一个简单的字典,存储了有关特定外星人的信息:

alien_0 = {'color': 'green', 'points': 5}

print(alien_0['color'])
print(alien_0['points'])

字典alien_0 存储了外星人的颜色和点数。使用两条print 语句来访问并打印这些信息,如下所示:

Python武器库开发-基础篇(二)_服务器_16

运算符

算术运算符

以下假设变量: a=10,b=20:

Python武器库开发-基础篇(二)_网络安全_17

以下实例演示了Python所有算术运算符的操作:

a = 21
b = 10
c = 0
 
c = a + b
print("1 - c 的值为:", c)
 
c = a - b
print("2 - c 的值为:", c)
 
c = a * b
print("3 - c 的值为:", c)
 
c = a / b
print("4 - c 的值为:", c)
 
c = a % b
print("5 - c 的值为:", c)
 
# 修改变量 a 、b 、c
a = 2
b = 3
c = a**b 
print("6 - c 的值为:", c)
 
a = 10
b = 5
c = a//b 
print("7 - c 的值为:", c)

以上实例输出结果:

Python武器库开发-基础篇(二)_服务器_18

比较运算符

以下假设变量a为10,变量b为20:

Python武器库开发-基础篇(二)_武器库开发_19

赋值运算符

以下假设变量a为10,变量b为20:

Python武器库开发-基础篇(二)_java_20

位运算符

Python武器库开发-基础篇(二)_武器库开发_21

逻辑运算符

Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:

Python武器库开发-基础篇(二)_java_22

成员运算符

除了以上的一些运算符之外,Python还支持成员运算符

Python武器库开发-基础篇(二)_java_23

身份运算符

身份运算符用于比较两个对象的存储单元

Python武器库开发-基础篇(二)_java_24

运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

Python武器库开发-基础篇(二)_java_25

命令行参数

在Python中,python提供了我们一个库sys,可以让我们去执行需要的命令行参数

我们将下列代码保存为a.py

import sys
for arg in sys.argv:
	print(arg)

然后程序脚本就能根据相应脚本的命令行输入,去执行相应的命令行参数

Python武器库开发-基础篇(二)_java_26

这里我们需要注意的是sys.srgv[0]的位置就是文件名


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
aSr2Nx0McLeE