VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • Python语法基础(2)

Audo
BWM
Benchi
Toyota
  • 条件测试

每条if语句核心都是一个值为True和false的表达式,这种表达式杯称为条件测试。Python根据条件测试的值为True还是false来决定是否执行if语句中的代码。

检查特定的值是否包含在列表中

要判定特定的值是否已经在列表中,可以使用关键字in。

>>> aminal = ['lion','tiger','birl','monkey']
>>> 'lion' in aminal
True
>>> 'fish' in aminal
False

检查特定的值是否不包含在列表中

aminal = ['lion','tiger','birl','monkey']
aaa = 'fish'
if aaa not in aminal:
     print(aaa.title()+"不在动物列表中")
Fish不在动物列表中
  • 省略else语句块

else是一条包罗万象的语句,只要不满足任何if或者elif中的条件测试,其中的代码就会执行,这可能会引入无效甚至是恶意的数据。如果知道最终要测试的条件,应考虑使用一个elif代码来代替else代码块。这样,你就可以肯定,仅当满足相应条件时,你的代码才会运行。

  • 测试多个条件

if-elif-else: 结构功能强大,但是仅适合一个条件满足的情况:遇到通过了的测试后,Python就跳过余下的测试。这种行为很好,效率很高。让你能够测试一个特定的条件。

然而,有些时候必须检查你关心的所有条件。在这种情况下,应使用一种不包含elif 和else的代码块的简单if语句。这种方法适合于 ,有多个条件都为true,且需要在每个true条件下执行相关的操作。

essage = ['mushroom','tea','buger','dumpling']

if 'dumpling' in essage:
    print("有客人点餐dumpling")
if 'tea' in essage:
    print("有客人点餐tea")
if 'apple' in essage:
    print("有客人点餐apple")

print("\n点餐完毕")
有客人点餐dumpling
有客人点餐tea

点餐完毕

如果使用if-elif-else语句,代码将不能正确地运行,因为有一个测试通过后,就会跳过余下测试:

essage = ['mushroom','tea','buger','dumpling']

if 'dumpling' in essage:
    print("有客人点餐dumpling")
elif 'tea' in essage:
    print("有客人点餐tea")
elif 'apple' in essage:
    print("有客人点餐apple")
    
print("\n点餐完毕")
有客人点餐dumpling

点餐完毕
  • 使用if语句处理列表

检查特殊元素

继续使用前面的例子,这家餐厅在制作时,客人每次点一道菜都打印一条信息。通过创建一个列表,并使用一个循环来打印出客人点的菜:

essage = ['mushroom','tea','buger','dumpling']
for i in essage:
    print("有客人点餐"+i.title())
print("\n点餐完毕")
有客人点餐Mushroom
有客人点餐Tea
有客人点餐Buger
有客人点餐Dumpling

点餐完毕

输出很简单,上述代码不过是一个简单的foe语句

然而,如果餐厅的茶用完了,该如何处理呢?

essage = ['mushroom','tea','buger','dumpling']
for i in essage:
    if i == 'tea':
        print("不好意思,店里没有tea")
    else:
        print("有客人点餐"+i.title())
print("\n点餐完毕")
有客人点餐Mushroom
不好意思,店里没有tea
有客人点餐Buger
有客人点餐Dumpling

点餐完毕

day_06(字典)

  • 一个简单的字典

创建一个外星人字典

alien_0 = {'color':'green','points':5,'X_position':4,'Y_position':5,'speed':'unknow'}
print(alien_0['color'])
print(alien_0['points'])

new_color = alien_0['color']
new_points = alien_0['points']
print("恭喜,你击败了一个"+ new_color +"外星人,获得了"+str(new_points) +"个点数。")
  • 添加键值对
alien_0['X_position'] = 4
alien_0['Y_position'] = 5
print(alien_0)
  • 修改字典中的值
print("外星人现在的颜色是:"+alien_0['color'])

alien_0 = {'color':'red'}
print("外星人现在的颜色是:"+alien_0['color'])
  • 改变外星人的移动位置
alien_0 = {'color':'green','points':5,'X_position':4,'Y_position':5,'speed':'unknow'}

#外星人的原始坐标
print("外星人的位置("+ str(alien_0['X_position']) +","+ str(alien_0['Y_position']) +")" )
add_number = 0
for i in range(10):
    if alien_0['speed'] == 0:
        add_number+=1
    elif alien_0['speed']  == 'unknow':
        add_number+=2
    else:
        add_number+=3
    
#新位置等于老位置加上增量
    alien_0['X_position'] = alien_0['X_position'] + add_number
    alien_0['Y_position'] = alien_0['Y_position'] + add_number
    print("现在外星人的坐标是("+ str(alien_0['X_position']) +","+ str(alien_0['Y_position']) +")")
外星人的位置(4,5)
现在外星人的坐标是(6,7)
现在外星人的坐标是(10,11)
现在外星人的坐标是(16,17)
现在外星人的坐标是(24,25)
现在外星人的坐标是(34,35)
现在外星人的坐标是(46,47)
现在外星人的坐标是(60,61)
现在外星人的坐标是(76,77)
现在外星人的坐标是(94,95)
现在外星人的坐标是(114,115
  • 删除键值对

对于字典中不再需要的值,可以使用del语句将相应的键值对彻底删除。使用del语句时,必须指定字典名和要删除的键。

下面的代码中,将alien_0中删除键'points' 及其值:

alien_0 = {'color':'green','points':5,'X_position':4,'Y_position':5,'speed':'unknow'}
print(alien_0)

del alien_0['points']
print(alien_0)

{'color': 'green', 'points': 5, 'X_position': 4, 'Y_position': 5, 'speed': 'unknow'}
{'color': 'green', 'X_position': 4, 'Y_position': 5, 'speed': 'unknow'}

删除的键值对,永远消失

  • 由类似对象组成的字典

利用字典存储多个键值对时,可以使用以下的格式:

favorite_language = {
    'herry':'java',
    'mical':'python',
    'jun':'ruby',
    'lily':'C'
    }
print("herry最喜欢的语言是:"+ favorite_language['herry'].title())
herry最喜欢的语言是:Java

这个示例演示了如何将较长的print语句分成多行。

  • 遍历字典

遍历所有的键值对

下面的字典中存储了一名用户的用户名、名和姓:

user_0= {
    'user_name':'GHP',
    'first':'G',
    'last':'P'
    }
for key,value in user_0.items():  #利用两个变量分别存储键和值
    print('\n键: '+key)
    print('值: '+value)

可以使用for来遍历字典

键: user_name
值: GHP

键: first
值: G

键: last
值: P
  • 遍历字典中所有的键
user_0= {
    'user_name':'GHP',
    'first':'G',
    'last':'P'
    }
for name in user_0.keys():
    print(name.title())

User_Name
First
Last

创建一个列表,使用列表中的值来遍历字典

favorite_language = {
    'herry':'java',
    'mical':'python',
    'jun':'ruby',
    'lily':'C'
    }
friends = ['herry','mical']
for name in favorite_language.keys():
    print(name.title())

    if name in friends:
        print("你好," + name.title() + "我知道你最喜欢的语言是" + favorite_language[name].title())
Herry
你好,Herry我知道你最喜欢的语言是Java
Mical
你好,Mical我知道你最喜欢的语言是Python
Jun
Lily

按照顺序遍历字典中的所有键

字典总是明确的记录键之间的关联关系,但是获取字典元素时,获取顺序是不可预测的。

可以使用sorted() 来获取按特定顺序排列的键列表的副本:

favorite_language = {
    'herry':'java',
    'mical':'python',
    'jun':'ruby',
    'lily':'C'
    }

for name in sorted(favorite_language.keys()):
    print(name.title()+"谢谢你\n")
================= RESTART: H:\python练习\Python\Python38-32\字典.py ================
Herry谢谢你

Jun谢谢你

Lily谢谢你

Mical谢谢你

>>> 
================= RESTART: H:\python练习\Python\Python38-32\字典.py ================
Herry谢谢你

Jun谢谢你

Lily谢谢你

Mical谢谢你

输出了两次,都是按字典中键的顺序输出

遍历字典中的所有值

如果你只想输出字典中所有的值,不输出键,你可以使用方法values(),它返回一个值列表,而不包含任何的值。

favorite_language = {
    'herry':'java',
    'mical':'python',
    'jun':'ruby',
    'lily':'C'
    }

for language in sorted(favorite_language.values()):
    print("他们喜欢的语言有:"+language.title())
他们喜欢的语言有:C
他们喜欢的语言有:Java
他们喜欢的语言有:Python
他们喜欢的语言有:Ruby
  • 嵌套

有时候需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称之为嵌套。你可以在列表中嵌套字典,在字典中嵌套列表甚至在字典中嵌套字典。

字典列表

如何管理成群结队的外星人?一种方法是创建一个外星人列表,其中每一个外星人都是一个字典,包含有外星人的各种信息。

alien_0 = {'color':'green','points':3}
alien_1 = {'color':'red','points':4}
alien_2 = {'color':'orange','points':6}

aliens = [alien_0,alien_1,alien_2]

for alien in aliens:
    print(alien)
{'color': 'green', 'points': 3}
{'color': 'red', 'points': 4}
{'color': 'orange', 'points': 6}

下面我们使用range() 生成30个外星人:

#创建一个外星人的空列表
aliens = []

#创建30个外星人
for alien in range(30):
    new_aliens = {'color':'green','points':3}
    aliens.append(new_aliens)

#显示5个外星人
for alien in aliens[:5]:
    print(alien)

print("...\n")
print("一共创建了"+ str(len(aliens))+"个机器人。")
{'color': 'green', 'points': 3}
{'color': 'green', 'points': 3}
{'color': 'green', 'points': 3}
{'color': 'green', 'points': 3}
{'color': 'green', 'points': 3}
...

一共创建了30个机器人。

修改每个机器人的相关数值

#创建一个外星人的空列表
aliens = []

#创建30个外星人
for alien in range(30):
    new_aliens = {'color':'green','points':3}
    aliens.append(new_aliens)
    
#显示5个外星人
for alien in aliens[0:3]:
    if alien['color'] == 'green':
        alien['color'] = 'red'
        alien['points'] = 6

for alien in aliens[0:7]:
    print(alien)

print("...\n")
print("一共创建了"+ str(len(aliens))+"个机器人。")
{'color': 'red', 'points': 6}
{'color': 'red', 'points': 6}
{'color': 'red', 'points': 6}
{'color': 'green', 'points': 3}
{'color': 'green', 'points': 3}
{'color': 'green', 'points': 3}
{'color': 'green', 'points': 3}
...

一共创建了30个机器人。

还可以添加一些条件

#显示5个外星人
for alien in aliens[0:3]:
    if alien['color'] == 'green':
        alien['color'] = 'red'
        alien['points'] = 6
    elif alien['color'] == 'red':
        alien['color'] = 'green'
        alien['points'] = 3

在字典中存储列表

存储披萨的信息

pizza = {
        "面皮":"榴莲面皮",
        "佐料":["榴莲","虾仁","牛肉","芝士"]
    }

#错误,列表不能直接输出,需要用循环遍历,不能再错
'''print("你点的是1号披萨,是"+pizza["面皮"]+","+"里面有"+pizza["佐料"]+"的pizza.")'''
print("你点的是1号"+pizza["面皮"]+"披萨")

for i in pizza["佐料"]:
    print("其中1号披萨中的佐料有\t"+i)

你点的是1号榴莲面皮披萨
其中1号披萨中的佐料有	榴莲
其中1号披萨中的佐料有	虾仁
其中1号披萨中的佐料有	牛肉
其中1号披萨中的佐料有	芝士

输出每个人喜欢的语言:

favorite_language = {
    'harry':['python','php'],
    'merry':['java'],
    'micle':['c'],
    'ben':['嵌入式','c++']
    }

for k,v in favorite_language.items():
    print("\n"+k+"喜欢的是")
    for language in v:
        print("\t"+language.title())
harry喜欢的是
	Python
	Php

merry喜欢的是
	Java

micle喜欢的是
	C

ben喜欢的是
	嵌入式
	C++

在字典中存储字典

创建一个城市字典

cities = {
    'Beijing':{
        'population':3000000,
        'country':'中国',
        'foods':['北京烤鸭','豆汁']
        },
     'GuangZhou':{
        'population':20000000,
        'country':'中国',
        'foods':['云吞','烧麦']
        },
     'NewYork':{
        'population':4000000,
        'country':'美国',
        'foods':['汉堡','牛排']
        }
    }

for k,v in cities.items():  #v就是一个小字典
    print("\n城市的名字"+k)
    new_population = v['population']
    countries = v['country']
    print("它的人口有"+str(new_population))
    print("这个城市属于"+countries)
    for food in v['foods']:
        print("他们喜欢的食物是:"+food)
城市的名字Beijing
它的人口有3000000
这个城市属于中国
他们喜欢的食物是:北京烤鸭
他们喜欢的食物是:豆汁

城市的名字GuangZhou
它的人口有20000000
这个城市属于中国
他们喜欢的食物是:云吞
他们喜欢的食物是:烧麦

城市的名字NewYork
它的人口有4000000
这个城市属于美国
他们喜欢的食物是:汉堡
他们喜欢的食物是:牛排

day_07 (用户输入和while循环)

  • 使用while循环

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

使用while循环来数数:

#while循环
i = 0
while (i<5):
    i+=1
    print(i)
    
1
2
3
4
5

让用户选择何时退出

message_0 = "你有两个选择,要么输入一条信息,要么输入'quit'退出程序"

message_1 = " "

while message_1 != 'quit':
    message_1 = input(message_0)
    print(message_1)

你有两个选择,要么输入一条信息,要么输入'quit'退出程序你好啊
你好啊
你有两个选择,要么输入一条信息,要么输入'quit'退出程序hello
hello
你有两个选择,要么输入一条信息,要么输入'quit'退出程序quit
quit

不输出最后的quit,需要再加一个判断语句;

message_0 = "你有两个选择,要么输入一条信息,要么输入'quit'退出程序"
message_1 = " "

while message_1 != 'quit':
    message_1 = input(message_0)
    if message_1 !='quit':
        print(message_1)
你有两个选择,要么输入一条信息,要么输入'quit'退出程序不要在意别人拥有的
不要在意别人拥有的
你有两个选择,要么输入一条信息,要么输入'quit'退出程序quit
  • 使用标志

在要求很多条件满足才能继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量被称为标志,充当了程序的交通信号灯。你可以让程序在标志为True时继续运行,并在任何事件导致标志的值为Flase时让程序停止运行。这样,在while语句中就只需检出一个条件——标志的当前值是否为True,并将所有的测试都放在其他地方,从而让程序更加简洁。

message_0 = "你有两个选择,要么输入一条信息,要么输入'quit'退出程序"
message_1 = " "
active = True
while active:
    message_1 = input(message_0)
    if message_1  =='quit':
        active = False
    else:
        print(message_1)
你有两个选择,要么输入一条信息,要么输入'quit'退出程序nihao
nihao
你有两个选择,要么输入一条信息,要么输入'quit'退出程序quit
  • 使用while循环来处理列表和字典
#在列表之间移动元素
#首先创建两个列表
first_list = ['apple','orange','cherry','banana']
second_list = []

#验证每个元素,直到没有元素为止
#将每个已验证的元素,移到空列表当中
while first_list:
    fruits = first_list.pop()

    print("已经验证的元素:"+fruits.title())
    second_list.append(fruits)

#显示所有已验证的元素
print("\n已经验证的元素")
for i in second_list:
    print(i)
已经验证的元素:Banana
已经验证的元素:Cherry
已经验证的元素:Orange
已经验证的元素:Apple

已经验证的元素
banana
cherry
orange
apple

删除包含特定值的所有列表元素

列表中有多个相同的元素,我们该如何只是将相同的元素删除:

#创建一个宠物列表
pets = ['dog','cat','dog','cat','fish','rabbit','cat']
print(pets)

while 'cat' in pets:
    pets.remove('cat')

print(pets)
['dog', 'cat', 'dog', 'cat', 'fish', 'rabbit', 'cat']
['dog', 'dog', 'fish', 'rabbit']

使用用户输入来填充字典

#使用用户输入来充填字典
responses = {}  #创建一个空字典

#设置一个标签,用于指出调查是否继续
active = True

while active:
    #提示输入被调查者的名字和回答
    name = input(
      



  

相关教程