Python学习 【二】:基本知识


 

一、运算符

1、算数运算

  

 

2、比较运算

  

 

3、逻辑运算

  

  

4、赋值运算

  

  

5、成员运算

  

 

  

6、小结

    Python中的运算符大体上和其他语言类似,比如C,C++,JAVA。在学习的过程中如果有其他语言的知识,只需要记住一些特殊的运算符即可。在这里,由于Python的发展因素,Python2.x与Python3.x共存的情况下,需要大家了解两个版本中运算符的细微差别。比如,'<>'运算符和'/'在Python2和Python3中的区别,以及在进行比较运算时,Python2支持不同类型变量比较,Python3不支持。

    这就是Python基本运算符了,是不是很简单?


 二、基本数据类型

1、数值型

  • 整型 int  

    通常被称为是整数或整数,没有小数点的正或负整数。普通整数长度为机器位长,通常都是32位,超过这个范围的整数就自动当长整数处理,而长整数的范围几乎完全没限制。

    在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
    在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807 

1 num = 10 
2 #此时num就表示10,一个int型变量

 

  • 长整型 long(Python3取消)

    无限大小的整数。在整数后加L或l(推荐L因为不会与数字1混淆)。这种长整型在Python3中被取消,使用int型来代表普通整型和长整型。 

1 num = 45555L
2 #此时num就为一个长整型
3 #在Python3中统一使用int表示整型

 

  • 浮点型 float

    数学中的小数。在运算中,整型和浮点型运算,结果为浮点型。

    对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10**9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

1 num = 2.53
2 #此时num就为一个浮点型
3 num2 = num*100
4 #算术结果为253,但num2此时为浮点类型,代码结果为253.0

 

  • 复数 complex

    复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

1 num = 2.5+3.6j
2 #此时num表示一个复数
3 #还有一个种写法,效果一样
4 num = complex(2.5,3.6)

 

2、布尔型

  真或假,0或1

 

3、字符串

  Python字符串即可以用单引号也可以用双引号括起来
  字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分。

1 str = 'hello world'
2 str2 = "hello world"
3 #num和num2效果一样
4 #如果我们字符串中有 ' 或者 "怎么办?使用\转义字符
5 str3 = "i\'m OK!"
6 #str3 表示i'm OK!
7 #转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\

   字符串自带常用函数:

    简单介绍了一直常用的字符串自带函数

 1 capitalize(self):  
 2         """ 首字母变大写 """
 3     
 4 center(self, width, fillchar=None):  
 5         """ 内容居中,width:总长度;fillchar:空白处填充内容,默认无 """
 6        
 7 count(self, sub, start=None, end=None):  
 8         """ 子序列个数 ,sub为子序列,start和end表示从主串中截取一段"""
 9        
10 decode(self, encoding=None, errors=None):  
11         """ 解码,将bytes类型解码成string类型 """
12 
13 encode(self, encoding=None, errors=None):  
14         """ 编码,针对unicode,返回bytes类型 """
15 
16 endswith(self, suffix, start=None, end=None):  
17         """ 是否以 suffix子串 结束,返回布尔类型 """
18 
19 expandtabs(self, tabsize=None):  
20         """ 将tab转换成空格,默认一个tab转换成8个空格 """
21 
22 find(self, sub, start=None, end=None):  
23         """ 寻找子序列sub位置,如果没找到,返回 -1 """
24     
25 format(*args, **kwargs): 
26         """ 字符串格式化 """
27      
28 index(self, sub, start=None, end=None):  
29         """ 子序列位置,如果没找到,报错 """
30 
31 isalnum(self):  
32         """ 是否是字母和数字,返回布尔类型 """
33      
34 isalpha(self):  
35         """ 是否是字母 """
36         
37 isdigit(self):  
38         """ 是否是数字 """
39 
40 islower(self):  
41         """ 是否小写 """
42 
43 join(self, iterable):  
44         """ 连接 """
45 
46 ljust(self, width, fillchar=None):  
47         """ 内容左对齐,右侧填充 """
48 
49 lower(self):  
50         """ 变小写 """
51 
52 lstrip(self, chars=None):  
53         """ 移除左侧空白 """
54 
55 
56 partition(self, sep):  
57         """ 分割,前,中,后三部分 """
58 
59 replace(self, old, new, count=None):  
60         """ 替换 """
61 
62 rjust(self, width, fillchar=None):  
63         """右对齐,左填充"""
64 
65 split(self, sep=None, maxsplit=None):  
66         """ 按sep分割, maxsplit最多分割几次 """
67 
68 splitlines(self, keepends=False):  
69         """ 根据换行分割 """
70 
71 startswith(self, prefix, start=None, end=None):  
72         """ 是否以prefix起始 """
73 
74 strip(self, chars=None):  
75         """ 移除两端chars字符 """
76 
77 
78 swapcase(self):  
79         """ 大写变小写,小写变大写 """
80 
81 translate(self, table, deletechars=None):  
82         """转换,需要先做一个对应表,最后一个表示删除字符集合"""
string常用函数

 

4、列表

  用符号[]表示列表,中间的元素可以是任何类型,用逗号分隔。list类似C语言中的数组,用于顺序存储结构。

 创建代码:

1 list = ['zss','hello','world']
2 list2 = list(['zss','hello','world'])
3 #list和list2创建方式等价

   列表自带常用函数:

 1 append(self, p_object): 
 2         """ 将p_object加入列表的尾部 """
 3 
 4 count(self, value): 
 5         """计算value在列表出现的次数"""
 6 
 7 extend(self, iterable): # real signature unknown; restored from __doc__
 8         """ 在list尾部加入iterable,iterable为迭代类型,列表元组或字典
 9               字典仅在列表尾部添加value值
10          """
11         pass
12 
13 index(self, value, start=None, stop=None): 
14         """
15              返回value在列表中出现的索引
16         """
17 
18 insert(self, index, p_object):
19         """在指定index位置插入p_object"""
20 
21 pop(self, index=None): 
22         """
23         取出index位置处对象,并将其剔除出列表,默认列表尾部
24         """
25 
26 remove(self, value): 
27         """
28         取出列表value元素,只去除第一个找到的!
29         """
30 
31 reverse(self): 
32         """ 反转列表 """
33 
34 sort(self, cmp=None, key=None, reverse=False): 
35         """排序"""
36                  
list常用函数

 

5、元组

  元组是和列表相似的数据结构,但它一旦初始化就不能更改,速度比list快,同时tuple不提供动态内存管理的功能,需理解一下规则:
    tuple可以用下标返回一个元素或子tuple
    表示只含有一个元素的tuple的方法是:(d,)后面有个逗号,用来和单独的变量相区分

1 tuple = (123,233)
2 #和列表相似的创建

    元组常用函数

1 count(self, value): 
2         """value出现次数 """
3 
4 index(self, value, start=None, stop=None): 
5         """
6         第一个value出现的位置
7         """
tuple常用函数

 

6、字典(无序键值对)

  字典是一种无序存储结构,包括关键字(key)和关键字对应的值(value)。字典的格式为:dictionary = {key:value}。关键字为不可变类型,如字符串、整数、只包含不可变对象的元组,列表等不可作为关键字。如果列表中存在关键字对,可以用dict()直接构造字典

    字典常用函数

 1 clear(self): 
 2         """ 清除内容 """
 3 
 4 copy(self): 
 5         """ 浅拷贝 """
 6 
 7 get(self, k, d=None): 
 8         """ 根据key获取值,d是默认值 ,可使用字典名(key)"""
 9 
10 has_key(self, k): 
11         """ 是否有key ,Python3中取消!"""
12      
13 items(self): 
14         """ 所有项的列表形式 """
15 
16 iteritems(self): 
17         """ 项可迭代 """
18 
19 iterkeys(self): 
20         """ key可迭代 """
21 
22 itervalues(self): 
23         """ value可迭代 """
24 #可迭代在Python3中取消,故不太常用
25 
26 keys(self): 
27         """ 所有的key列表 """
28 
29 pop(self, k, d=None): 
30         """ 获取并在字典中移除 """
31 
32 popitem(self): 
33         """ 获取并在字典中移除 """
34 
35 setdefault(self, k, d=None): 
36         """ 如果key不存在,则创建,如果存在,则返回已存在的值且不修改 """
37 
38 update(self, E=None, **F): 
39         """ 更新,将新的字典类型加入
40         """
41 
42 values(self): 
43         """ 所有的值 """
44 
45 #Python3中取消
46 viewitems(self): 
47         """ 所有项,只是将内容保存至view对象中 """
48 
49 viewkeys(self): 
50         
51 
52 viewvalues(self): # real signature unknown; restored from __doc__
dict常用函数

 

7、bytes类型

  对应于2.X版本的八位串,定义一个bytes字面量的方法如下:

b = b'zss'

#b就是一个bytes类型的变量

 

  小例子:将自己的名字用二进制输出

1 name = '张帅帅'
2 for i in name:
3     #循环字符串得到每个汉字
4     #使用bytes函数得到每个汉字的字节码,列表形式
5     name_list = bytes(i,encoding='utf-8')
6     for j in name_list:
7         #遍历每个汉字的字节码,打印默认十进制
8         #使用bin将十进制转换为二进制
9         print(bin(j))

 

8、set类型

  不允许重复的列表,用来有重复元素的列表对象

s = set()
s = {}#第二种方式
#创建一个空集合,可用add函数来增加元素
s.add(11)
s.add(11)
s.add(12)
#s中只包含11,12 没有重复的11
 
s = set(iteration) 可以给一个迭代对象参数,比如列表,可以剔除重复元素

 

 


 三、其他基本知识

1、注释

    Python中使用#注释一行,用""" """注释多行,这和其他语言有些区别,注意区分。

 

2、格式控制

    Python中使用缩进来区分语句和上下文关联,这和主流语言C,JAVA有所区别。在写Python代码的时候要严格控制代码的缩进,不使用{}来关联上下文

 

3、条件语句

    条件语句,是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块

    Python 编程中 if 语句用于控制程序的执行,基本形式为:

1 if 判断条件1:
2     #当判断条件1为真执行的代码块
3     代码块1
4 else5     #当判断条件1为假执行的代码块
6     代码块2

    当判断条件众多时,形式为:

1 if 条件1:
2     代码块1
3 elif 条件2:
4     #当条件1为假时,进行条件2的判断
5     代码块2
6 elif 条件3:
7     代码块3
8 else9     代码块4

 

 

4、循环及相关

  • for循环

  for循环与其他语言区别较大,需要注意语法。

#第一种
for i in list:#此时for循环用来遍历列表,可使用这种方式,注意格式!i表示列表中每个元素
        循环体
#循环结束条件为遍历完

#第二种
for i in range(len(list)):
#使用range函数来表示创建一个指定的范围的数字,生成从0开始长度为列表长度的范围数字
#在Python2中可以使用xrange函数
        循环体:
  • while循环

    循环的基本思想和其他语言一致,不再赘述。注意Python特有的语法格式

1 while 循环判断条件 :
2         循环体
3 #while循环进入循环体之前会进行条件判断,布尔值为真则进行,假则退出
  • break和continue

    break表示退出当前整个循环

    continue表示跳过当次循环,继续下一个循环

 

5、杂项一

    杂项是整理阶段性的一些小知识点。

  • range和xrange

    首先,xrange和range的功能是差不多的,由于在Python3中range取代了xrange,所以我就整理一下range函数的功能。

    range函数是用来创建一个范围的数。

    一般情况下有这么三种形式使用:

 1 #第一种形式,相当于给range函数一个参数,即列表list的长度
 2 #range函数默认创建一个范围,即(0,给定数)步长为1
 3 for i in range(len(list)):
 4         循环体....
 5 
 6 
 7 #第二种形式,给定起始位置,即1<=i<10,步长为1
 8 for i in range(1,10):
 9     循环体
10 
11 #第三种形式,给定起始位置,给定步长2,即1<=i<10每次增加2
12 for i in range(1,10,2):
13     循环体
  • enumerate

  给可迭代对象增加序号,(什么是可迭代对象?即列表,元组,字典),返回enumerate对象

1 for i in enumerate(list):
2     print(i)
3 
4 #为list列表对象创建一个带序号的enumerate对象,然后打印。
  • Python2.x和Python3.x的区别

  整理一下在Python2.x和3.x的区别。

    1、数据类型的区别  

      3.x中取消long型,用int型统一代替

      3.x中出现bytes类型,来代表2.x中的八位串

    2、运算符的区别

      3.x中取消<>

      3.x中/运算符保留小数,2.x中只保留整数部分

    3、xrange

      3.x中取消xrange,使用range统一

    4、print函数

      3.x使用print() 带括号,2.x中可以不使用(),2.7和2.6可以混用

    5、unicode

      Python 2 有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型。

      现在, 在 Python 3,我们最终有了 Unicode (utf-8) 字符串,以及一个字节类:byte 和 bytearrays。 

      由于 Python3.X 源码文件默认使用utf-8编码

    6、异常     

      在 Python 3 中处理异常也轻微的改变了,在 Python 3 中我们现在使用 as 作为关键词。捕获异常的语法由 except exc, var 改为 except exc as var

      使用语法except (exc1, exc2) as var可以同时捕获多种类别的异常。 Python 2.6已经支持这两种语法。

        1. 在2.x时代,所有类型的对象都是可以被直接抛出的,在3.x时代,只有继承自BaseException的对象才可以被抛出。

        2. 2.x raise语句使用逗号将抛出对象类型和参数分开,3.x取消了这种奇葩的写法,直接调用构造函数抛出对象即可。

    7、去掉了repr表达式``

       Python 2.x 中反引号``相当于repr函数的作用。

       Python 3.x 中去掉了``这种写法,只允许使用repr函数。

    8、字典

       dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有 dict.has_key(),用 in替代它。

    9、模块的改名

      


 总结

  这是Python入门的必备知识,如果学过其他编程语言的同学可以重点关注Python与其他编程语言的区别。没有学过其他编程语言的同学也没有关系,Python当作第一个入门编程语言也是非常友好的,很容易上手,后面会进一步和大家分享学习Python的心得。

  另外欢迎大家提出宝贵的意见!谢谢!

posted @ 2018-02-03 15:32  &Mr_z  阅读(172)  评论(0编辑  收藏  举报