Python入门(二)

126 阅读1分钟

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战

四、字典

1. 创建和使用

  1. dict = {'Mon' : 1, 'Tue': 2, 'Web': 3} 初始化。
  2. dict['Tue'] 读取指定值。

2. 方法

  1. clear():清空原始字典的全部项。
  2. copy():返回副本(浅复制)。
  3. {}.fromkeys(['name', 'age'], 0):使用键建立字典,值全为 0(第二参数不填则默认为 None)。
  4. get('age'):取键值,不存在则返回 None。
  5. has_key('sex'):检测是否存在键。
  6. items():将字典以列表方式,每项转换为(键,值)形式。
  7. keys():将键转换为列表。
  8. pop('name'):删除指定键,并返回键值。
  9. popitem():随机弹出值,并删除键。
  10. setdefault('name', 100):获取值,若键不存在则设定键,值为 100(无第二参数则默认值为 None)。
  11. update(dict2):利用一个字典更新原字典(同名者覆盖之)。
  12. values():将值转换为列表。

五、其他常用函数

  1. min() 求最小值。
  2. max() 求最大值。
  3. len(s) 求字符串、列表、元组等长度。
  4. list('hi'):返回序列 ['h', 'i']。
  5. cmp(a, b):比较两个数,返回 1,0,-1(3.X 版本此函数已移除,可用 operator 模块代替)。
  6. del a删除变量 a 的值(移除引用)。
  7. exec 'print("Hello world!")':执行语句。
  8. eval():求值,同 input()
  9. pass:什么也不做,充当占位符

1. 条件、循环

if name == 'John':
    print(name)
elif(name == 'Boss'):
    print("My lord.")
else:
    print("None.")

while i < 100:
    i += 1

for num in numbers:
    print(str(num) + '\n')
  • 其他比较运算符
  1. x is y:是否为同一对象(同一引用)。
  2. x is not y
  3. x in y:成员资格判断运算符。
  4. x not in y

2. 迭代工具

names = ['a', 'b', 'c', 'd']

ages = [12, 13, 11, 14]

# range 函数按指定长度生成 0 至 len-1 的序列
for i in range(len(names)):
    print(names[i], 'is' ages[i], ' years old.')

# 逗号等价于 + ' ' +
for name, age in zip(names, ages):
    print(name, 'is' age, ' years old.')

六、抽象

1. 函数

  1. 入参支持设置默认值。
  2. *param:单星号,不定数量参数。
  3. **dict:双星号,传递元组或字典。

2. 类

  1. 每个函数第一个参数 self 表示当前对象,类似于 Java 的 this。
  2. 类名后带有括号,表示当前类继承了括号中的类,多个父类用逗号分割。
  3. 判断实例对象是否为目标类:isinstance(object, Class)。
  4. 判断类继承关系:issubclass(child, parent)。
__metaclass__ = type

class Person(Animal):
    def __init__(self):
        print("init.")

    def setName(self, name):
        self.name = name

    def getName(self):
        return self.name

    def greet():
        print("Hello , I'm %s." % self.name)

man = Person()
man.greet() # 等价于 Person.greet(man)
  • 类属性定义
  1. __ 以双下划线开头的为 private 属性。
  2. _ 以单下划线开头的为 protected 属性。
  1. 不以下划线开头的为 public 属性。
  • 其他重载方法有:
  1. del(self):析构函数
  2. repr(self):转成供解释器读取的形式
  3. str(self):序列化
  4. cmp(self):对象对比