python基础
Posted yuwengeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础相关的知识,希望对你有一定的参考价值。
#数据类型:
string:
1 # 获得字符串首字母大写的拷贝
2 print(str1.capitalize())
3
4
5 # 从字符串中查找子串所在位置
6 find( ) || index( ) # 子串不存在时,find返回-1 ,index()报错
7
8
9 # 检查字符串是否以指定的字符串开头
10 print(str1.startswith(‘He‘)) # False
# 将字符串以指定的宽度 居中并在两侧填充指定的字符 print(str1.center(50, ‘*‘)) # 将字符串以指定的宽度 靠右放置 ,左侧填充指定的字符 print(str1.rjust(50, ‘ ‘))
# 检查字符串是否由数字构成 print(str2.isdigit()) # False # 检查字符串是否以字母构成 print(str2.isalpha()) # False # 检查字符串是否以数字和字母构成 print(str2.isalnum()) # True
list:
>> lst.insert(-1,6) #从列表第-1个位置,插入元素6 >>> lst [0, 1, 2, 3, 4, 5, 6, 7] >>> lst.insert(-20,10) #从列表第-20个位置,插入元素10 >>> lst [10, 0, 1, 2, 3, 4, 5, 6, 7] >>> lst.insert(30,20) #从列表第30个位置,插入元素20 >>> lst [10, 0, 1, 2, 3, 4, 5, 6, 7, 20]
lst.clear() # clear全部
排序:
1. 调用sorted()方法。它返回一个新的list # sorted(list)
2. 使用list.sort()方法来排序,此时list本身将被修改 # list.sort()
3. 另一个不同就是list.sort()方法仅被定义在list中,相反地sorted()方法对所有的可迭代序列都有效。
>>> sorted({1: ‘D‘, 2: ‘B‘, 3: ‘B‘, 4: ‘E‘, 5: ‘A‘}) [1, 2, 3, 4, 5]
反序:reverse(True or False)
集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。
大括号或 set() 函数可以用来创建集合。
注意:想要创建空集合,你必须使用 set() 而不是 {}。{}用于创建空字典
/(单斜杠)是除法,会自动转型成浮点数类型 查看字符的ascll码:ord() Python中没有自增、自减运算符 注:对象的三个特征: id、value、type
成员运算符in、 not in
身份运算符 is、 not is
注:三元表达式。
1. 其他语言(java, c)
x > y ? x : y
2. Python
条件为真的时候返回的结果 if 条件判断 else 条件为假时的返回结果
类型的判断:isinstance
==:比较值是否相等 is:比较内存地址是否相等
逻辑运算:and or not
声明变量注意事项有那些?
模块名,包名 :小写字母, 单词之间用户_分割。
类名:首字母大写。
全局变量: 大写字母, 单词之间用户_分割。
普通变量: 小写字母, 单词之间用户_分割。
函数: 小写字母, 单词之间用户_分割。
实例变量: 以_开头,其他和普通变量一样 。
私有实例变量(外部访问会报错): 以__开头(2个下划线),其他和普通变量一样 。
专有变量: __开头,__结尾,一般为python的自有变量(不要以这种变量命名)。
关于运算符:
结果是值:
算数运算
a = 10 * 10
赋值运算
a = a + 1 a+=1
结果是布尔值:
比较运算
a = 1 > 5
逻辑运算
a = 1>6 or 1==1
成员运算
a = "蚊" in "郑建文"
各进制的表示与转换:
用0b做前缀表示二进制, 二进制的转换,用 bin()
用0o做前缀表示八进制, oct()
用0x做前缀表示十六进制,hex() 十进制的转换,用 int()
2. 复合数据类型: int str tuple:值类型、不可改变 ; list set dict :引用类型、可改变
关于序列的函数:
len()
max()
min()
key:必须是不可变的类型–>int,’str’ & 不允许有重复的key
value:可以取Python里面的任意类型。
Python高级特性
切片:
切片:用步长正负控制切片顺序;
可以通过反向切片操作来获得倒转后的列表的拷贝 print(str2[::-1]) # 654321cba
L[ : ]取所有数 通过切片制作一份列表的副本
取前十:L[:10] 取后十:L[-10:]
#迭代:
判断一个对象是可迭代对象,方法是通过collections模块的 Iterable类型判断:
>>> from collections import Iterable
>>> isinstance(‘abc‘, Iterable)
True
迭代:适于可迭代对象,作用于元素本身,不是索引。 enumerate枚举:同时迭代索引和元素。
# 装饰器:不修改原函数源代码,添加附加功能 原则:不修改原函数源代码,调用方式
#生成器就是可迭代对象
enumerate() |
用于字符串,可同时循环索引 |
Python里面文件夹与包的区分是因为包下面包含init.py 文件
#模块:一个脚本文件导入另一脚本
导入模块时,先在当前目录进行查找,再到site-package查找,
再去全局环境变量查找,如果都没有导入的模块名称,则报错
modle即是 Python 源码文件,其可以导出 类、函数与全局变量;当我们从某个模块导入变量时,函数名往往就是命名空间(Namespace)。 而 Python 中的包(Package)则是模块的文件夹,往往由 __init__.py 指明某个文件夹对外模块:from * import 模块名 命名:小写字母+ _
函数:
注:必须参数必须全部放在前面,默认参数必须全部放在后面
#函数: 参数传递:值传递(输出不变); 引用传递 形参:调用前不占用内存空间,结束释放。 参数传递形式:(一一位置对应) 位置参数必须在关键词参数左边 传参:根据参数位置,参数名称依次判断, 默认参数权重最低
必选参数 默认参数:(在形参处) 一般在参数列表末尾 必须指向不变对象,可变对象不方便连续调用 3. 可变参数 *nums 表示把 nums 这个 list 的所有元素作为可变参数传进去,即去掉[](),得到一tuple 4. 关键字参数(在实参处) 而关键字参数允许你传入 0 个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个 dict。kw传到一个dict **kw 作为可选项 拓展:对于任意函数,都可以通过类似func(*args, **kw)的形式调用它无论它的参数
是如何定义的 print()函数 : 可以接受多个字符串,遇见逗号输出一个空格
1 return可以返回多个值,实际返回一个元组(tuple)
2 def damage(skill1, skill2):
3 skill1 += 100
4 skill2 *= 10
5 return skill1, skill2
6
7
8 damage_skill1, damage_skill2 = damage(20, 30)
9 #序列解包
10 print(damage_skill1, damage_skill2)
面向对象:
面向对象(OOP):基本单元:对象
面向对象概念:面向对象是一种抽象
两个基本概念:类(定义一件事物的抽象特点)、对象(类的一个实例)
两个基本要素:属性(变量)、方法(函数)-->封装性(只用功能,不用实现过程)
三大特性:
封装:用类封装数据与功能
继承 多重继承(继承不同维度)
子类调用父类方法:super().父类方法
方法重写覆盖
多态(用一个类继承几个不同的类)调用不同类有不同的结果
类:属性定义:1.没有下划线--->公有成员变量 2.有一个下划线--->不严格的私有成员变量:实际还是可以访问 3.有两个下划线--->较严格的私有成员变量,实际需要变法访问 Python的类中定义的双下划线开头的属性"__score", 在外界访问不了, 是因为: python将这个属性的名称改成了"_类名__score", 所以在外面就不能以__score来访问
而使用"_类名__score"其实还是可以访问到的
定义类的属性
1.直接在类里定义
class Programer(object):
sex=‘male‘
会被所有类的对象使用
2.在构造函数里定义
class Programer(object):
def __init__(self,name,age):
self.name =name
self.age = age
3.访问的控制
class Programer(object):
def __init__(self,name,age):
self.name =name ----->可以公开访问
self._age = age ------>私有属性,还可被对象访问
self.__weight = weight ---->不可被类外访问_类名__weight访问
4..__dict__#查看对象属性的情况
programer=Programer(‘Albert‘,25,80)
print programer.__dict__
打印对象属性发现是{‘_age‘:25,‘_Programer__weight‘:70,‘name‘:‘Albert‘}
以上是关于python基础的主要内容,如果未能解决你的问题,请参考以下文章