前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 ># 基础类型

# 基础类型

作者头像
用户1175783
发布2019-09-10 14:41:33
4530
发布2019-09-10 14:41:33
举报

# 基础类型

整数

代码语言:javascript
复制
a=1

字符串

代码语言:javascript
复制
# py中‘与“无区别,都是表示字符串
str=''
str=""
# 多行文本
str='''
'''
# 忽略转义字符,如:\n、\t等
str=r'\n'

浮点数

代码语言:javascript
复制
# 浮点数
f=1.1

布尔值

代码语言:javascript
复制
b=True #False

空值

代码语言:javascript
复制
# py中None表示空未赋值,其它语言用null/nil表示
n=None

数组

代码语言:javascript
复制
# 一维数组
list=[1,2,3]
# 多维数组
list=[[1,2,3],[1,2,3]]

# 数组切片
# 批量生产数组元素
list = [index for index in range(10)]
print(list[:3])
print(list[1:3])
print(list[1:])
print(list[:])
print(list)

元组

代码语言:javascript
复制
# 元组初始化后不可修改
tuple=(1,2)
for item in tuple:
    print(item)

# 条件判断

if语句

代码语言:javascript
复制
if Ture:
    pass

模拟三目运算

代码语言:javascript
复制
# py不支持?:运算符,替代方案
value='a' if(True) else "b"
print(value)

# 循环

for循环

代码语言:javascript
复制
for index in range(10)
	print(index)

while循环

代码语言:javascript
复制
index=10
while index>0:
    print(index)
    index-=1

循环终止符

代码语言:javascript
复制
# continue跳过本次循环之后的代码
for index in range(10):
    for jIndex in range(100):
        if(index%/2):
        	continue
        print(index)
# break跳出本次循环
for index in range(10):
    for jIndex in range(100):
        if(index%/2):
        	break
        print(index)

# 运算符

代码语言:javascript
复制
# &&替代方案
True and True
# ||替代方案
True or True
# !替代方案
not True
# 除法运算符
print(12/2) #6.5
# 取整运算符
print(13//2) #6
# 去模/求余
print(13%2) #1
# 不支持++,--
value+=1
value-=1

# dict/set

字典dict

代码语言:javascript
复制
dict={"a":1,"b":2,"a":3}
# 重复的key,使用后则替换前者
print(dict)
# 打印所有key
print(dict.keys())
# 使用get获取值,避免异常
print(dict.get("c"))
# 判断是否存在key
if "a" in dict:
    print(dict["a"])

去重set

代码语言:javascript
复制
# set是一个没有value的dict
setArr:set=set([])
setArr.add(1)
setArr.add(1)
setArr.add(2)
print(setArr)

# 函数

代码语言:javascript
复制
# 定义参数带默认值的函数
def method1(arg1,arg2=1):
    pass

匿名函数之lambda

代码语言:javascript
复制
method=lambda index:index+1
print(method)
value=method(1)
print(value)

# 面向对象

类,静态成员(类成员),实例,实例成员

代码语言:javascript
复制
# 定义一个类
class People:
    pass
# python中没有静态类的概念,所谓的静态类指的是类本身,如下:类成员
People.name="姓名"
print(People.name)
# 创建一个实例
people=People()
people.name="hello name!"
# People.name就类似与静态成员,实例成员的变化不影响静态成员的值
print([People.name,people.name])

属性

python中并不直接支持属性,但是python中提供了其它方式来模拟属性

代码语言:javascript
复制
class People:
    @property
    def name(self):
        self._name
    @name.setter
    def name(self,value):
        self._name=value		

可访问性

通过在变量名前加上__双下划线来定义一个私有成员

代码语言:javascript
复制
class People(object):
   	def __init__(self,name):
        self.__name=name
    pass
People().__name="无法访问的变量"

继承和多态

默认所有的类都继承了object,如上面的People

代码语言:javascript
复制
class People:
    
    @property
    def name(self):
        self._name
    
    @name.setter
    def name(self,value):
        self._name=value
        
    def getName(self):
        return "People:{0}".format(self._name)
    
# 继承People类
class Student(People):
    def getName(self):
        return "Student:{0}".format(self.name)
    pass

student=Student()
student.name="属性"
print(student.getName())

多继承与mixin

在其它语言中通常只支持单一的继承关系,如果需要多继承只能通过接口的方式实现。

多继承在某些时候还是很有用的,所以python将多继承定义为mixin功能,字面理解为混入。

代码语言:javascript
复制
# 动物
class Animals:
    pass
# 游泳
class SwimmingMixIn(Animals):
    pass
# 飞
class FlyingMixIn(Animals):
    pass
# 没有会飞的鱼,但是有会游泳的鸟
class Bird(SwimmingMixIn,FlyingMixIn):
    pass

__slots__限定

作为动态语言,python可以在运行时动态的添加属性,在某些情况下为了限制这种特性,所以有了__slots__方法,这个方法可以阻止这一特性。

代码语言:javascript
复制
class People:
    __slots__=('name','age')

People.name="姓名"
# 允许添加
People.test="test"
# 不允许实例方法添加test属性
People().test="test"
print([People.test,People.name])
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 基础类型
  • # 条件判断
    • # 循环
    • # 运算符
    • # dict/set
    • # 函数
    • # 面向对象
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档