Python基础
- 什么是Python?
解释型、面向对象、动态数据类型的高级程序设计语言。
解释器
当我们编写Python代码时,我们得到的是一个包含Python代码的以.py
为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py
文件。
CPython
当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python
就是启动CPython解释器。CPython是使用最广的Python解释器。
Ipython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>
作为提示符,而IPython用In [序号]:
作为提示符。
输入和输出
输出:print
输入:Python提供了一个input
,可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:
>>>a = input("input:") #input()括号内的内容是说明性内容,并不是输入的内容
input:123 # 输入整数
>>> type(a)
<class 'str'> #从input得到的任何内容都是字符串格式
变量类型
命名:大小写英文、数字和下划线_的组合,且不能用数字开头
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
a = b = c = 1 #多个变量赋值
a, b, c = 1, 2, "runoob"
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
其中,3个不可变:Number(数字)、String(字符串)、Tuple(元组)
Number(数字)
Python3 支持 int、float、bool、complex(复数)。
下列对象的布尔值都是False:
None;False;所有值为0的数:0、0.0、0L、0.0+0.0j
‘’(空字符串)、[] (空列表)、()(空元组)、{}(空字典)
格式化字符串
- 占位符方法
customized = 'world'
print('Hello, %s' % customized) #利用格式化字符串,固定Hello
customized = '小鱼'
print('Hello, %s' % customized)
- format()函数方法
#format函数是在需要格式化的文本中用“{}”预留空位而不是占位符,同时可以预设参数
print('Hello, {}'.format(customized)) #不预设参数使用
print('Hello, {var}'.format(var = customized)) #预设参数使用
- 使用位置参数
li = ['hoho',18]
>>> 'my name is {1} ,age {0}'.format(10,'hoho')
'my name is hoho ,age 10'
>>> 'my name is {} ,age {}'.format(*li)
'my name is hoho ,age 18'
- 使用关键字参数-字典
>>> hash = {'name':'hoho','age':18}
>>> 'my name is {name},age is {age}'.format(name='hoho',age=19)
'my name is hoho,age is 19'
>>> 'my name is {name},age is {age}'.format(**hash)
'my name is hoho,age is 18'
- 填充与格式化
^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
>>> '{0:*>10}'.format(10) ##右对齐
'********10'
>>> '{0:*<10}'.format(10) ##左对齐
'10********'
>>> '{0:*^10}'.format(10) ##居中对齐
'****10****'
- 精度与进制
>> '{0:.2f}'.format(1/3) #保留小数点后两位
'0.33'
>>> '{0:b}'.format(10) #二进制
'1010'
>>> '{0:o}'.format(10) #八进制
'12'
>>> '{0:x}'.format(10) #16进制
'a'
>>> '{:,}'.format(12369132698) #千分位格式化
'12,369,132,698'
- 使用索引
>>> li
['hoho', 18]
>>> 'name is {0[0]} age is {0[1]}'.format(li) #0是必须的
'name is hoho age is 18
运算符
-
算术运算符
±*/%
**(返回x的幂次方)
//(取整数-向下取整)
-
比较运算符
!=、<>表示不等于
-
位运算符
&、|、^(异或)、~(取反)、<<(左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0)、>>
a=2 b=1 c=a^b d=a<<2
得到c为3,d为8
-
逻辑运算符
and、or、not
-
成员运算符
in、not in
-
身份运算符
is、is not
is 与 == 区别:is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。