版权声明:

  本文中的资料均来自于互联网。将各路内容摘抄于此,作为学习笔记,方便用作后面翻阅查看。如果原作者对文中内容的引用有任何版权方面的问题,请随时联系,我将尽快处理。

特别鸣谢:武沛齐

Python之路【第二篇】:Python基础(一)


本节课内容:
     基本数据类型
     基本数据类型的扩展
 
作用域:
     一个变量只要存在内存里,就可以用。(只要声明了,就可以使用。)
     # 在后面写函数(面向过程)的时候,需要额外添加一个条件:栈。
 
 
name = {'nm':123}
for item in name:
     # 首先判断,有没有下一个
     item = 元素
print item  ## 此处可以打印出字典里最后一个值,但是这种使用方法是违规的。在写代码的时候不要使用这种方法。

三元运算(三目运算)
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
 
eg:
name = 'sb' if 1==1 else '2b'

进制
二进制
八进制
十进制
十六机制

PyCharm用法:
     创建project
     配置解释器
 
     创建文件
     执行:
          断点,
          run,

在调试过程中如果需要调试类似于raw_input的断点话,会在需要用户输入交互时,会hang住,等待用户输入。

python基础
python中的一切事物都是对象,对象是基于类来创建的。
类 → 对象
 
对象,方法,类对象指针。
在由类创建对象的时候,不单单会创建对象包含的元素,还会包括一个"类对象指针"指向这个类所包含的方法。

查看某个对象所包含的方法
# 终端中
     通过type(对象名)查看对象的类型
     dir(类名) #快速查看类中提供的所有方法,会看到两种方法:两端带有下划线,两端没有下划线:
          __方法__:#内置方法,执行方式可能不止(至少)一种
          方法:#非内置方法(普通方法),执行方式只有一种:对象.方法
         
     help(类名) #查看类中提供的方法的详细内容
     help(类名.方法名) #查看类中某个方法的内容
# PyCharm中
     输入类名,按下ctrl鼠标左键点击类名,就会跳转到类的定义的源码
如下图:

类中的方法
    dir(类名) #快速查看类中提供的所有方法,会看到两种方法:两端带有下划线,两端没有下划线:
          __方法__:#内置方法,执行方式可能不止(至少)一种
          方法:#非内置方法(普通方法),执行方式只有一种:对象.方法

内置方法
可以把"+"加号当作一种语法,最终会被解析为__add__的方式:
加法的执行方式:
 
绝对值(__abs__)的执行方法:
 
int类型类型的创建,创建是指定进制

常用方法,及其等价的书写方式
 
__divmod__ # 取商和余数,返回值是一个元组。
divmod
# 在做页面分页展示的时候会用到

__div__ # 取商
__mod__ # 取余数

__float__ # 把数子转换为float类型

__floordiv__ #地板除
//

getattribute # 面向对象的概念,用来传参数。例如li.append之所以可以通过"."(点号)的方式调用,就是缘于此。

__init__构造方法,

repr # 用来转换为解释器可读的信息
str #用来转换为人类可读的信息

数字的内置方法,知道就可以了。因为有更好的替代方法。

PyChar 中迅速定位方法的简要的目录(index)

##字符串 ##
非常重要
 

 

expandtabs:
将tab转换为空格,默认一个tab将转为8个空格。可以通过参数指定tab键代指的空格的个数。

name = 'stephen'
name.find('s') # 如果找到,则返回找到的第一个匹配的子序列的下标
                         # 如果不存在,返回-1

name = "I am {0},age {1}"
# 这种情况下,赋值是有顺序要求的:
name.format('alex',73)
 
name = "I am {ss},age {dd}"
# 这种情况下,下面的两种赋值方式的效果是等价的:
name.format(ss='alex',dd='84')  <====> name.format(dd='84',ss='alex')


通过列表和字典进行字符串的赋值
name.format(*list)
name.format(**dict)

 

find index的区别
在查找不到的时候:
     find会返回None值,不会输出错误。
     index会报错 

判断是否是否中类型的数据
     isalpha
     isdigit
     isalnum
     islower
     isupper
     istitile # 是否是标题,可以通过title方法进行转换,

大小写转化:
lower
upper
swapcase

对齐:
center
ljust
rjust

分割:
partition
rpartition

替换:
replace

strip
lstrip
rstrip

splitlines # 按换行符分割

translate:
做转换,先做对应关系,后面的参数是要删除的字符的集合。

 '''
 translate
 用于做转换,先做对应关系,后面的参数是要删除的字符的集合
 '''

 #代码块
 import string
 intab = "aeiou"
 outtab = "
 trantab = string.maketrans(intab, outtab)
 str = "this is string example....wow!!!"
 print str.translate(trantab, 'xm')

 #程序输出结果
 th3s 3s str3ng 21pl2....w4w!!!

__contains__ # 是否包含

字符串相乘:
name='alex'*4

列表
append
del # del xx[下标]
count # 出现的次数
extend # 列表的扩展,可以做列表类似的"相加"
index # 找到某个字符首次出现的位置
insert # 插入到指定位置
pop # 弹出,出栈。
          删除并返回指定下标的值,如果没有指定,默认删除并返回最后一个。
remove # 删除指定的值,只删除第一个匹配的值。
reverse # 反转
sort # 排序
          # 数值,按数字比较
          # 字母,按ASCII码进行比较
          # 中文,按Unicode进行比较    

元组
元素不能被修改,不能被删除,增加,修改类型。
元素的元素可以被修改

字典
clear # 清除 
copy # 浅拷贝
get #
几种不同通过key获取value的方式及其区别:
 >>> dict = {'}  #创建一个字典,只包含一个键值对。
 >>>
 >>> dict['k1']
 '
 >>> dict['k2']        #使用这种方式引用不存在的key,会报错。
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 KeyError: 'k2'
 >>>
 >>> dict.get('k1')
 '
 >>> dict.get('k2')   #使用这种方式引用不存在的key,不会报错。会得到一个返回值:None。
 >>>
 >>> print dict.get('k2')
 None
 >>> print dict.get('k2','No Such Key')    #也可以只用这种方式,添加一个当key不存在的时候的返回值。
 No Such Key
 >>> 

所有不可变的元素都可以单做字典的key
  字符串
  数字
  类的实例
 
▷ 日期,元组 虽然可以用作字典的key,但是不要使用。

列表不可以被用作key,因为列表是可变的。

判断一个值是否是某种数据类型
  type(xx) is dict
  type(xx) is str
  type(xx) is float

批量创建具有相同value的字典(键值对)的方法:
  fromkeys([1,2,3],'t')
  fromkeys([1,2,3],[])

haskey
b = 
1 in b 

循环字典:
 
for k,v in b.iems:print k,v
for k in b:print k,b[k]

pop
popitem # 随机删除,尽量不要用

setdefault # 如果值存在,返回值;不存在,创建,并设置初始值。不能重复创建。

update 字典的整合
          # key存在,则更新value
           # key不存在,则创建

copy # 浅copy
import copy
f=copy.deepcopy(c)

集合:
     应用场景:CMDB,自动的资产更新。
 
set 去重

&
|
^
issuperset
issubset

pop # 随机删除
remove # 指定删除,需要指定值
update # 将一个集合加进来,union。 

My way to Python - Day02的更多相关文章

  1. Python Day02

    Python 代码执行流程: 编译 --> 执行 源代码  -->  字节码  -->  机器码  --> CPU执行 python 先将自己的源代码,编译成Python 字节 ...

  2. Python day02 三元运算

     type  查看数据类型.2 **32  :2的32次方 .浮点的表示类型是小数,但是小数不仅仅包括浮点 浮点数用来处理实数,即带有小数的数字 三元运算:  result = 值1 if 条件 el ...

  3. python—day02

    python的版本与基本类型... 第一: 讲了计算机的基础的补充,讲解了什么是操作系统,计算机硬件,应用程序之间的关系: 操作系统是一个能协调管理计算机软件与硬件的软件程序: 能帮我们发送指令集到C ...

  4. python———day02

    算术运算符 >>>1+2 3 >>>3-2 1 >>>2*2 4 >>>5/2 2.5 >>>5//2 #整除 ...

  5. Python day02 课堂笔记

    今天是第二天学习Python课程,主要从格式化输出,逻辑运算,编码,数据类型 这几个方面来学习. 1.格式化输出: % : 占位符 %s:字符串 %d:数字 注意: 在格式化的输出中,如果要输出%(因 ...

  6. python day02 作业答案

    1. (1).false   (2).false 2. (1).8  (2).4 3. (1).6  (2).3  (3).false (4).3   (5).true   (6).true  (7) ...

  7. python day02作业

  8. python day02练习和作业

    # 1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=[‘alex’, ‘eric’, ‘rain’]# li=['alex','eric','rain']# print('_'.jo ...

  9. Python全栈--目录导航

    这里更新以Python语言作为基础,想要成为全栈工程师需要掌握的技能... Python基础语法 day01 初识Python day02 while循环 运算符和编码 day03 字符串 day04 ...

随机推荐

  1. sqlite创建数据库问题

    1.<Sqlite权威指南>上说是这么创建数据库的: sqlite3 test.db 但是我写了这条语句之后出现了下面的情况(注:安装Sqlite过程见 ...) 我的sqlite3放在 ...

  2. (转)[老老实实学WCF] 第四篇 初探通信--ChannelFactory

    第四篇 初探通信--ChannelFactory 通过前几篇的学习,我们简单了解了WCF的服务端-客户端模型,可以建立一个简单的WCF通信程序,并且可以把我们的服务寄宿在IIS中了.我们不禁感叹WCF ...

  3. javascript作用域和作用域链

    1.作用域 作用域,它是指对某一变量和方法具有访问权限的代码空间.当我们在定义变量的时候,会定义两种变量,一种是在全局环境下定义的变量,叫全局变量,一种是在函数中定义的变量叫局部变量.全局变量的作用域 ...

  4. (二)backbone - DEMO - user list

    Demo介绍 学习了如何基本的使用Backbone,展示用户信息 使用JQuery操作DOM,backbone.localStorage.js操作localstorage 大体实现 •创建user M ...

  5. Symfony2 Doctrine从现有Database生成Entity(转载自http://blog.it985.com/6809.html)

    在我的以前一章Symfony之十分钟入门说了怎样生成数据库,然后设计实体Entity,再同步数据库的表结构,一般我们的顺序都是这样:生成数据库->设计实体Entity->同步数据库表结构. ...

  6. PMBOK 项目管理 九大知识领域和五大流程

    PMI   Project Management Institute.PMI 是世界上最大的非盈利机构,是项目管理领域的领导者.PMI制定项目管理行业标准,带领项目管理的研究并提供项目管理的培训,证书 ...

  7. iPhone 和Android应用,特殊的链接:打电话,短信,email;

    http://ice-k.iteye.com/blog/1426526 下面的这篇文章主要是说,网页中的链接如何写,可以激活电话的功能. 例如,页面中展示的是一个电话号码,当用户在手机浏览器里面点击这 ...

  8. a:hover和a:visited书写顺序的重要性

    2a:hover和a:visited书写顺序的重要性今天在用a:hover属性的时候发现一个奇怪的问题,同一个页面里面有些链接的a:hover效果不能正常表现出来.链接的代码是一样,没有使用其它样式固 ...

  9. Linux 日志

    成功地管理任何系统的关键之一,是要知道系统中正在发生什么事.Linux 中提供了异常日志,并且日志的细节是可配置的. Linux 日志都以明文形式存储,所以您不需要特殊的工具就可以搜索和阅读它们.您还 ...

  10. VS2010下测试程序性能瓶颈

    之前看到Qt的有个BUGreport https://bugreports.qt-project.org/browse/QTBUG-13182 这个BUG是在windows下QFileDialog很慢 ...