Python 学习笔记-16

Python 学习笔记-16:

  1. ATM 作业讲解
  2. xml 模块

1. ATM作业讲解

  1. 通过字典模拟switch功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
menu = u"""1、存款
2、取款
3、转账
4、账单
5、退出"""
menu_dic = {
'1': repay,
'2': withdraw,
'3': transfer,
'4': pay_check,
'5': logout,
}
choice = input(">>:")
if choice in menu_dic:
menu_dic[choice](*arg)

2. xml模块

  • 代码中使用的xml文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?xml version="1.0"?>
    <data>
    <country name="Liechtenstein">
    <rank updated="yes">2</rank>
    <year>2008</year>
    <gdppc>141100</gdppc>
    <neighbor name="Austria" direction="E"/>
    <neighbor name="Switzerland" direction="W"/>
    </country>
    <country name="Singapore">
    <rank updated="yes">5</rank>
    <year>2011</year>
    <gdppc>59900</gdppc>
    <neighbor name="Malaysia" direction="N"/>
    </country>
    <country name="Panama">
    <rank updated="yes">69</rank>
    <year>2011</year>
    <gdppc>13600</gdppc>
    <neighbor name="Costa Rica" direction="W"/>
    <neighbor name="Colombia" direction="E"/>
    </country>
    </data>
  • 代码示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    import xml.etree.ElementTree as ET

    tree = ET.parse("xmltest.xml")
    root = tree.getroot()
    print(root.tag)

    #遍历xml文档
    for child in root:
    print(child.tag, child.attrib)
    for i in child:
    print(i.tag,i.text)

    #只遍历year 节点
    for node in root.iter('year'):
    print(node.tag,node.text)


    import xml.etree.ElementTree as ET

    tree = ET.parse("xmltest.xml")
    root = tree.getroot()

    #修改
    for node in root.iter('year'):
    new_year = int(node.text) + 1
    node.text = str(new_year)
    node.set("updated","yes")

    tree.write("xmltest.xml")


    #删除node
    for country in root.findall('country'):
    rank = int(country.find('rank').text)
    if rank > 50:
    root.remove(country)

    tree.write('output.xml')


    import xml.etree.ElementTree as ET

    new_xml = ET.Element("namelist")
    name = ET.SubElement(new_xml,"name",attrib={"enrolled":"yes"})
    age = ET.SubElement(name,"age",attrib={"checked":"no"})
    sex = ET.SubElement(name,"sex")
    sex.text = '33'
    name2 = ET.SubElement(new_xml,"name",attrib={"enrolled":"no"})
    age = ET.SubElement(name2,"age")
    age.text = '19'

    et = ET.ElementTree(new_xml) #生成文档对象
    et.write("test.xml", encoding="utf-8",xml_declaration=True)

    ET.dump(new_xml) #打印生成的格式