简单的python基础

python的特点

Python 崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。

与 Java 和 C++ 这些语言相比,Python 最大的两个特点是:

  • 语句结束不用分号“;”。
  • 代码块用缩进来控制,而不用大括号“{}”

基本语法

数据类型

python是一种弱类型语言,变量的定义不需要在前加类型说明,而且不同类型之间可以方便地相互转换。python有五个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

其中 List、Tuple、Dictionary 为容器,Python 支持四种不同的数字类型:int(有符号整型)、long(长整型)、float(浮点型)、complex(复数)

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
Demo:

age = 18        # int
weight = 62.51  # float
name = "Tony"    # string
print("age:", age)
print("weight:", weight)
print("name:", name)
# 变量的类型可以直接改变
age = name
print("age:", age)

a = b = c = 5
# a,b,c三个变量指向相同的内存空间,具有相同的值
print("a:", a, "b:", b, "c:", c)
print("id(a):", id(a), "id(b):", id(b), "id(c):", id(c))
age: 18
weight: 62.51
name: Tony
age: Tony
a: 5 b: 5 c: 5
id(a): 1457772400 id(b): 1457772400 id(c): 1457772400

常用容器

List(列表)
List(列表)是python中使用最频繁的数据类型,用**[ ]**标识.。
列表可以完成大多数集合类的数据结构实现,类似于java中的ArrayList。此外,一个List中还可以同时包含不同类型的数据,支持字符、数字、字符串,甚至可以包含列表(即嵌套)。

  • 列表中值的切割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始,从右到左索引默认-1开始,下标可以为空表示取头或尾。
  • 加号(+)是列表连接运算符,星号(*)是重复操作。
    list = ['TOMDIJ',2,3,54,"SUNNY",180.2]
    tinyList = [123,"tiny"]
    print(list)
    print(list[0])
    print(list[1:3])
    print(tinyList * 2)
    print(list + tinyList)
    list[0] = 100
    print(list)
    list.append("love you")
    print(list)

结果

['TOMDIJ', 2, 3, 54, 'SUNNY', 180.2]
TOMDIJ
[2, 3]
[123, 'tiny', 123, 'tiny']
['TOMDIJ', 2, 3, 54, 'SUNNY', 180.2, 123, 'tiny']
[100, 2, 3, 54, 'SUNNY', 180.2]
[100, 2, 3, 54, 'SUNNY', 180.2, 'love you']

Dictionary(字典)
Dictionary(字典)是Python中除列表以外最灵活的内置数据结构类型。字典用“{}”标识,字典由索引(key)和它对应的值value组成,相当于java中的map。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取的。

    dict = {}
    dict['one'] = "this is one"
    dict[2] = "this is two"
    tinydict = {'name': 'Tony', 'age': 24, 'height': 177}
    print(dict['one'])  # 输出键为'one' 的值
    print(dict[2])  # 输出键为 2 的值
    print(tinydict)  # 输出完整的字典
    print(tinydict.keys())  # 输出所有键
    print(tinydict.values())  # 输出所有值

结果:

this is one
this is two
{'name': 'Tony', 'age': 24, 'height': 177}
dict_keys(['name', 'age', 'height'])
dict_values(['Tony', 24, 177])

类的定义
使用class语句来创建一个新类,class之后为类的名称并以冒号结尾,如下

class ClassName:
   '类的帮助信息'   #类文档字符串
   class_suite  #类体

类的帮助信息可以通过ClassName._doc_查看,class_suite由类成员,方法,数据属性组成。如:

class Test:
    "这是一个测试类"

    def __init__(self):
        self.__ivalue = 5

    def getvalue(self):
        return self.__ivalue

其中,_init_为初始化函数,相当于构造函数

访问权限

  • foo :定义的是特殊方法,一般是系统定义名字,类似_init_()之类的。
  • _foo :以单下划线开头的表示的是protected类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于from module import *。
  • __foo :双下划线的表示的是私有类型(private)的变量,只能是允许这个类本身进行访问了。

类的继承
继承的语法结构如下:

class 派生类名(基类名):
    类体

Python中继承中的一些特点:

  • 在继承中基类的构造(init()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。
  • 在调用基类的方法时,需要使用super()前缀。
  • Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找(先在本类中查找调用的方法,找不到才去基类中找)。

如果在继承元组中列了一个以上的类,那么它就被称做“多重继承”。

基础重载方法
Python的类中有很多内置的方法,我们可以通过重写这些方法来实现一些特殊的功能

序号方法描述简单的调用
1init(self [,args…] )构造函数obj = className(args)
2del(self)构成方法,删除一个对象del obj
3repr(self)转化为供解释器读取的形式repr(obj)
4str(self)用于将值转化为适于人阅读的形式str(obj)
5cmp(self, x)对象比较cmp(obj,x)

Demo 顿悟

class Person:
    "人"
    visited = 0


    def __init__(self, name, age, height):
        self.__name = name
        self._age = age
        self.height = height

    def getName(self):
        return self.__name

    def getAge(self):
        return self._age

    def showInfo(self):
        print("name", self.__name)
        print("age", self._age)
        print("height", self.height)
        print("visited", self.visited)
        Person.visited = Person.visited + 1


class Teacher(Person):
    "老师"

    def __init__(self, name, age, height):
        super().__init__(name, age, height)
        self.__title = None

    def getTitle(self):
        return  self.__title

    def setTitle(self, title):
        self.__title = title

    def showInfo(self):
        print("title:", self.__title)
        super().showInfo()


def testPerson():
    "测试方法"
    toney = Person("Toney",25,1.77)
    toney.showInfo()
    print();

    jenny = Teacher("Jenny",45,1.80)
    jenny.setTitle("教授")
    jenny.showInfo();

testPerson()

测试结果

name Toney
age 25
height 1.77
visited 0

title: 教授
name Jenny
age 45
height 1.8
visited 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值