python基础

1.关于python编码的问题。

python的编码现在主要是两种版本python2.7和python3.5

python2.7默认的是ascii码进行编译,我们可以采用

# -*- coding:utf-8 -*-

a='你好'

a_unicode=a.decode('utf-8')

a_gbk=a_unicode.encode('gbk')

print('a_gbk')

的代码将2.7转化为用utf-8的方式进行编译,但是如果终端显示的只能是GBK的编码模式,还需要将utf-8转化为GBK。由代码可知,我们需要将utf-8转化为Unicode,然后将Unicode转化为gbk。

注意:在转化的时候解码和编码的过程需要明确知道现在对应的gbk还是utf-8。

图中为编码和解码的流程图

python3.5为了帮助我们更好的编码进行了优化,因为python3.5采用的默认就是utf-8。并且我们不用再转化为Unicode了可以直接把utf-8转化为gbk。

a='你好'

a_gbk=a.encode('gbk')

代码中直接将你好编译成了gbk模式,因为py3.5内部移除了Unicode的类型。

注意:Windows为了方便大家在终端使用的时候方便,只要你输入的Unicode的代码,它就自动可以转化为gbk,所以在py2.7里面我们直接吧utf-8转化为Unicode以后便可以在终端输出了.

2.python的运算符(py3.x版本)

1:算数运算符

加法运算:

减法运算:

乘法运算:

除法运算:

注意上面的3.0为浮点型即为小数点型。

幂运算:

**号后面的数为幂即为次方

取余数的运算:

取整数的除法,返回商的部分。

不要小数点后面的部分

2:比较运算符

相等运算:

由图由于a和b的值不是相同的,所以返回一个False相反,如果相等应该返回一个True

不相等运算:

大于运算:

小于运算:

大于等于运算:

小于等于运算:

3:赋值运算符:

赋值运算:

加法赋值运算:

b+=a和b=b+a是同一个效果

减法赋值运算:

乘法赋值运算:

除法赋值运算:

取余数赋值:

幂运算赋值:

整除赋值运算:

4:逻辑运算符

and

一个条件不满足就不成立

or

一个条件成立即满足条件

5:成员运算符

in

如果a在b里面这返回True

not in

如果a不在b里面则返回True

3.基本数据类型

基本数据类型主要分为int 、bool、 字符串、字典、元组、列表。

它们每一个都有自己的功能,并且在python里面我们统称为class(类),这些不同的类所创作的变量我们统称为了对象。

1:bool值

True或False

1或0

2:数字

int(整形)

在32位的电脑上面,整数的位数是32,取值范围为-2**31~2**31-1.

在64位的电脑上面,整数的位数是64,取值范围为-2**63~2**63-1.

如果超出上面的取值范围,我们则会由int型转换为long型,到达long以后根据内存的大小决定取值范围,这是针对python2.2,py2.7和py3.x以后int就变成没有限制。根据内存的大小来决定范围的大小。

int型的赋值:

int的二进制赋值方法

int的十进制赋值方法

对于py2.x来说a和b的内存地址是不同的,但是python内部自己做了优化,减小内存的消耗,所以-5到257以内的数字都是用一个内存地址。

超出-5到257以后就不共用一个内存地址。

但是对于py2.7和py3.x数字的范围没有限制,都是一样的id

class int(object)

"""

int(x=0) -> integer

int(x, base=10) -> integer

Convert a number or string to an integer, or return 0 if no arguments

are given. If x is a number, return x.__int__(). For floating point

numbers, this truncates towards zero.

If x is not a number or if base is given, then x must be a string,

bytes, or bytearray instance representing an integer literal in the

given base. The literal can be preceded by '+' or '-' and be surrounded

by whitespace. The base defaults to 10. Valid bases are 0 and 2-36.

Base 0 means to interpret the base from the string as an integer literal.

>>> int('0b100', base=0)

4

"

int 里面的内部功能

def bit_length(self): # real signature unknown; restored from __doc__

"""

int.bit_length() -> int

Number of bits necessary to represent self in binary.

>>> bin(37)

'0b100101'

>>> (37).bit_length()

6

"""

return 0

def __add__(self, *args, **kwargs): # real signature unknown

""" Return self+value. """

pass

bit.length():可以计算对象在二进制里面最少占几位

  

__add__的功能:

效果等同于print(a+b)

3:字符串

创建方式:

字符串的类

class str(object):

"""

str(object='') -> str

str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or

errors is specified, then the object must expose a data buffer

that will be decoded using the given encoding and error handler.

Otherwise, returns the result of object.__str__() (if defined)

or repr(object).

encoding defaults to sys.getdefaultencoding().

errors defaults to 'strict'.

"""

字符串常用功能:

upper()和lower():将字符串字母变大小写

capitalize:首字母变大写

center:字符串居中以后填充增加物

count:计算字符串的里面字符出现的次数,可以定义范围(第一个字符的位置为0)

如果不定义范围,则全部字符参加计算

i出现的次数总共为两次。

endswith:判断字符串是否以某个字符结尾,可以定义范围

如果不定义范围则是全部字符串查找

expandtabs:默认将tab键变成8个空格,可以修改默认值

\t代表Tab键

find:寻址字符串里面字符的位置,如果没有找到返回-1,同样可以定义范围

没有定义范围就是全程查找

没有找到就返回-1

format:字符串格式化:

{0},{1}对应的format里面值得顺序

index:找字符串里面字符的位置没有找到报错,其余功能与find相同

isalnum:是否是数字和字母

isalpha:是否是字母

isdigit:是否是数字

isupper,islower,istitle,isspace等都用相同的方法进行判断

join:连接iterable的类型,可以设置连接方式

注意iterable里面必须是字符串,不然会报错

ljust和rjust与center用法相同,不同为一个左填充默认值,一个右填充默认值。

lstrip和rstrip:移除左右的空格

strip:默认情况移除所有的空格或者换行符,如果有参数strip('o'),移除前后的o

partition:分割字符串,

replace:从左到右替换字符串里面的字符,可以设定替换的个数

split:分割字符串里面的字符,且返回一个列表,并且列表里面没有被分割的字符

默认的是从左到右,可以用rsplit来从右到左进行分割

splitlines:根据换行符进行分割

startswith:判断是否以某个字符串进行开始 可以定义范围

swapcase:大写变小,小写变大写

title:变成标题

索引:

长度:

切片:

切片最后一位代表步长,就是范围确定以后按照一次读几个数进行输出

循环:

4:列表

创建方式

列表的类

class list(object):

"""

list() -> new empty list

list(iterable) -> new list initialized from iterable's items

"""

列表常用功能:

索引:

长度:

切片:

循环:

append:追加

count:计算列表里面元素的个数

extend:批量的扩展元素到列表里面,只能添加iterable功能的

index:找到元素所在列表的索引位置

insert:根据索引位置添加元素

pop:根据索引删除元素并且返回元素的值

remove:移除某个元素

reverse:翻转

del(delete):删除指定索引位置

5:元组

元组和列表几乎是一样的,唯一的差距就是元组的元素无法修改

创建方式:

元组的类

class tuple(object):

"""

tuple() -> empty tuple

tuple(iterable) -> tuple initialized from iterable's items

If the argument is a tuple, the return value is the same object.

"""

元组的常用功能

索引:

切片:

循环:

长度:

count:计算元素的个数

index:查找索引位置

注意查找是从左到右

6:字典

字典对于的是两个值key:value

创建方式:

字典的类

class dict(object):

"""

dict() -> new empty dictionary

dict(mapping) -> new dictionary initialized from a mapping object's

(key, value) pairs

dict(iterable) -> new dictionary initialized as if via:

d = {}

for k, v in iterable:

d[k] = v

dict(**kwargs) -> new dictionary initialized with the name=value pairs

in the keyword argument list. For example: dict(one=1, two=2)

"""

字典的常用功能:

索引:

索引值是key,如果key不存在,报错

循环:

默认循环的是key

字典单独输出key、value、item

clear:全部清除

get:根据key获取value,如果key不存在返回默认值none,默认值可以修改

in 检查key是否在字典里面:

popitem:从左到右去拿item

pop:指定key去拿对应的value

update:更新字典,批量增加

del(delete):删除键值对

4.特殊功能用法

enumerate:为循环增加默认的索引

rang:提供一段范围的函数

注意rang()函数有步长的概念,并且步长默认为1

步长可以为负数 即反方向

步长的概念和切片中同样适用

本章总结

1:本章中学到赋值运算,数据类型,数据类型的各种功能,enumerate,rang ,for的用法。

2:__init__是类里面重要且固定的方法

3:py3.5里面读字符串是一个字符一个字符去读,py2.7里面读字符串是一个字节一个字节的读,

并且py3.5里面字节和字符可以相互转换

4:字节在循环的时候只能返回十进制

5:十进制和二进制之间的转换,通过bin(十进制)

6:字节和字符串相互转换

字符串转换为字节

字节转换为字符串

注意转换过程中字节和字符串之间的编码方式必须一致

7:索引取那个元素就是元素本身,切片取元素或一群元素,就是原来切片的类型,例如字符串切片返回字符串,列表切片返回列表

8:列表的嵌套

9:元组不能被修改,指的是元组的元素,但元组的元素内部可以修改,相当于第一层不能改

10:字典的修改方式除了用update还可以用直接dic['k1']=123

如果原来没有key就增加,如果有就更新原来的key

11:一般对于字符串操作都是会产生新的,其余的都不会。如果不是就反过来。

12:fromkeys的用法

注意所有要改变和增加的key都要用()或者【】包含起来。

13:如果要用数字表示key,数字不能相同,字符串不能相同。如果相同会随机抹去一个相同的键值对

14:如果用fromkeys和{}直接创建字典没有什么区别,唯一的不同就是{}里面的keys是独立改变但是fromkeys里面的keys是一起改变

15:python里面的方法,分为类方法和静态方法,类方法只能用类名调用,静态方法可以用类名和对象调用。

16:在字符串里面空格也占一个字符

流浪的python博客园_python学习心得第二章相关推荐

  1. 流浪的python博客园_python学习心得第一章

    初始python 1什么是程序 计算机程序是一组执行某种动作的的指令.和那些电路.芯片.显卡.硬盘等不同,它不是计算机本身可以触摸的部分,而是隐藏在背后运行在硬件上面的东西.程序就是一系列告诉没有知觉 ...

  2. python的selenium模块博客园_Python学习--Selenium模块学习(2)

    Selenium的基本操作 获取浏览器驱动寻找方式 1. 通过手动指定浏览器驱动路径 2. 通过 `$PATH`环境变量找寻浏览器驱动 控制浏览器访问URL find系列函数定位元素 - `find_ ...

  3. python博客园_python模拟博客园登录-基础版

    mport time import inspect from functools import wraps user_status = {'username': None,'status': Fals ...

  4. python教程博客园_python学习(一)—简明python教程

    2016-04-12 15:59:47 1. 介绍 2. 安装Python 3. 最初的步骤 4. 基本概念 5. 运算符与表达式 6. 控制流 7. 函数 8. 模块 9. 数据结构 10. 解决问 ...

  5. Python 博客园快速备份脚本

    鉴于有些小伙伴在寻找博客园迁移到个人博客的方案,本人针对博客园实现了一个自动备份脚本,可以快速将博客园中自己的文章备份成Markdown格式的独立文件,备份后的md文件可以直接放入到hexo博客中,快 ...

  6. python博客园_用Python向博客园发布新文章

    最近在开发一个博客系统,经常把写的东西放在自己网站的博客上(之前写在Onenote),然后我在博客园也申请了一个博客,就有了同样一篇文章,我需要复制粘贴排版分别提交两次的情况.于是我就想能不能在我的网 ...

  7. python博客园、知乎、掘金爬取知乎文章及问答

    bs主要爬取 def getSoup(url,herders):req = urllib.request.Request(url,headers=herders)response=urllib.req ...

  8. python博客园_python3 模拟博客园登录

    '''作业题目: 模拟博客园登录 作业需求: 1),启动程序,首页面应该显示成如下格式: 欢迎来到博客园首页 1:请登录 2:请注册 3:文章页面 4:日记页面 5:评论页面 6:收藏页面 7:注销 ...

  9. python 爬虫 博客园_Python爬虫爬取博客园作业

    分析一下他们的代码,我在浏览器中对应位置右键,然后点击检查元素,可以找到对应部分的代码.但是,直接查看当前网页的源码发现,里面并没有对应的代码.我猜测这里是根据服务器上的数据动态生成的这部分代码,所以 ...

最新文章

  1. 递归算法学习系列之八皇后问题
  2. Triangular Sums http://acm.nyist.net/JudgeOnline/problem.php?pid=122
  3. 01XC-1: 动态规划
  4. linux红黑树节点没有数据,真正理解红黑树,真正的(Linux内核里大量用到的数据 -电脑资料...
  5. 7-130 古风排版 (20 分)
  6. Python菜鸟入门:day01基础知识
  7. oracle表空间查询维护命令大全之二(undo表空间)
  8. win10系统设置护眼色 word2016页面显示失败
  9. Excel表格打印时不打印标记填充颜色
  10. 带阵列卡的服务器如何装系统,带阵列卡的服务器能不能做ghost
  11. 2022 最新 Memcached 面试题
  12. 图片轮播且可以实现5张翻页
  13. 的计算机基本操作知识,电脑的基本操作知识有哪些
  14. mysql redo log 数据恢复_MySQL 怎么样恢复丢失的数据?redo log 写磁盘的过程
  15. CAS的ABA问题,ABA问题会导致什么后果?
  16. 避免创业的大忌,我为何给 TDengine 只选择了集群、高性能与 SQL 支持三大特点?
  17. 黑苹果安装包(MaxOS)及教程——如何在非苹果电脑上安装MaxOS系统
  18. mac下编译android源码避坑指南(新)
  19. VMware安装华为存储模拟器
  20. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第38讲:PHP数据库编程mysql

热门文章

  1. Matplotlib 绘制圆环图的两种方法!
  2. 2018美团CodeM编程大赛资格赛第一题
  3. 使用Unity UGUI根据实时数据动态绘制图线(心电图)
  4. 第一章 基础 (续 在IIS中寄宿服务)
  5. 今天开始试着翻译译本日语的JAVA书
  6. [编程基础] Python谷歌翻译库googletrans总结
  7. 均衡发展国检时计算机会问哪些问题,XX小学均衡发展迎国检工作方案.doc
  8. 苹果4s忘记id密码怎么办_iPhone忘记ID密码怎么办?不花钱,这波操作帮你轻松解决...
  9. JavaScript基础——第二章,JavaScript操作BOM对象
  10. 雅马哈笔试_汉英翻译