码迷,mamicode.com
首页 > 编程语言 > 详细

python基础

时间:2018-07-12 18:02:15      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:pre   width   可迭代对象   占用   没有   附加   首字母   布尔   abc   

技术分享图片

   

#数据类型:

 

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基础

标签:pre   width   可迭代对象   占用   没有   附加   首字母   布尔   abc   

原文地址:https://www.cnblogs.com/yuwengeng/p/8641438.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!