py2 基本数据类型 基本语法

目录

上一篇:py1 

基本语法

运算符

  1. 算数运算:
  2. 比较运算:
  3. 赋值运算:
  4. 逻辑运算:
  5. 成员运算:
  6. 身份运算:
  7. 位运算:
  8. 三元运算:

基本数据类型

  1.  Number(数字)
  2.  布尔值

基本语法

标识符

  • 第一个字符必须是字母或下划线 
  • 标识符的其他的部分由字母、数字和下划线组成
  • 标识符对大小写敏感

在 Python 3 中,非 ASCII 标识符也是允许的了(甚至是支持汉字了)。

python保留字

保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']


注释

Python中单行注释以 # 开头,实例如下:

#!/usr/bin/python3 
# 第一个注释 
print ("Hello, Python!") 
# 第二个注释

输出结果为:Hello, Python!

多行注释可以用多个 # 号,还有 ''' 和 """:(多行注释在python还能当做字符串来使用)

#!/usr/bin/python3 
# 第一个注释 
# 第二个注释 
''' 
第三注释 第四注释
''' 
""" 
第五注释 第六注释 
""" 
print ("Hello, Python!")

执行以上代码,输出结果为:Hello, Python!

行与缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:

if True:
    print ("True")
else:
    print ("False")

以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:

if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")
  print ("False")    # 缩进不一致,会导致运行错误

以上程序由于缩进不一致,执行后会出现类似以下错误:

 File "test.py", line 6
    print ("False")    # 缩进不一致,会导致运行错误
                                      ^
IndentationError: unindent does not match any outer indentation leve

多行语句

Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠()来实现多行语句,例如:

total = item_one + 
        item_two + 
        item_three

在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(),例如:

total = ['item_one', 'item_two', 'item_three',
        'item_four', 'item_five']

Print输出

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

x="a"
y="b"
# 换行输出
print( x )
print( y )
 
print('---------')
# 不换行输出
print( x, end=" " )
print( y, end=" " )
print()

# 每个输出后面加个字符
print('alex','jim','jack',sep='中文')
# alex中文jim中文jack

打印进度条

import time, sys
for i in range(50):
    print('#', end='')
    # sys.stdout.write('#')
    sys.stdout.flush()
    time.sleep(0.1)

用户输入

#!/usr/bin/env python 
#_*_coding:utf-8_*_
 
#name = raw_input("What is your name?") #only on python 2.x
name = input("What is your name?")
print("Hello " + name )

输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:(在cmd中不可见,在python中可见)

import getpass
# 将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码:")
# 打印输入的内容
print(pwd)

pyc是什么鬼

Python是一门解释型语言?

我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在。如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊!

为了防止其他学习Python的人也被这句话误解,那么我们就在文中来澄清下这个问题,并且把一些基础概念给理清。

简述Python的运行过程

在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。

我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。

当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

 

运算符

1、算数运算:

2、比较运算:

3、赋值运算:

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

多个变量赋值

Python允许你同时为多个变量赋值。例如:

a = b = c = 1

a, b, c = 1, 2, "runoob"

4、逻辑运算:

5、成员运算:

6、身份运算:

注: id() 函数用于获取对象内存地址。

a = 10
b = a
a = 123
print(id(a))
print(id(b))
print(a is b)
c = [1,2,3]
d = c
c[1] = 4
print(id(c))
print(id(d))
print(d is c)

'''
140733173719904
140733173716288
False
2292888461896
2292888461896
True
'''
View Code

is 与 == 区别:

is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

>>>a = [1, 2, 3]
>>> b = a
>>> b is a 
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True
View Code

7、位运算:

a = 0011 1100             b = 0000 1101

 *按位取反运算规则(按位取反再加1)   详解http://blog.csdn.net/wenxinwukui234/article/details/42119265

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a  = 1100 0011
View Code

8、三元运算符

result = 值1  if 条件 else 值2

如果条件为真,result为值1,否则为值2。

运算符优先级:

 更多内容详见http://www.runoob.com/python3/python3-basic-operators.html

基本数据类型

Python3 中有六个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

Python3 的六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。 

1.Number(数字)

Python3 支持 int、float、bool、complex(复数)

在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

float类型默认保留小数点后16位

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

此外还可以用 isinstance 来判断:

>>>a = 111 
>>> isinstance(a, int) 
True 
>>>

isinstance 和 type 的区别在于:

  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。

注意:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。

当你指定一个值时,Number 对象就会被创建:

var1 = 1

var2 = 10

您也可以使用del语句删除一些对象引用:

del语句的语法是:

del var1[,var2[,var3[....,varN]]]]

您可以通过使用del语句删除单个或多个对象。例如:

del var

del var_a, var_b

数值运算:

>>>5 + 4  # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余 
2
>>> 2 ** 5 # 乘方
32

注意:

  • 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
  • 2、一个变量可以通过赋值指向不同类型的对象。
  • 3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
  • 4、在混合计算时,Python会把整型转换成为浮点数。

数值类型实例

intfloatcomplex
10 0.0 3.14j
100 15.20 45.j
-786 -21.9 9.322e-36j
080 32.3e+18 .876j
-0490 -90. -.6545+0J
-0x260 -32.54e100 3e+26J
0x69 70.2E-12 4.53e-7j

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

我们可以使用十六进制和八进制来代表整数:

>>> number = 0xA0F # 十六进制
>>> number
2575

>>> number=0o37 # 八进制
>>> number
31

Python 数字类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

  • int(x) 将x转换为一个整数。

  • float(x) 将x转换到一个浮点数。

  • complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。

  • complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。

  • bin(x) 将十进制转换为二进制

  • oct(x) 将十进制转换为二进制

  • hex(x) 将十进制转换为十六进制

  • str(x ) 将对象 x 转换为字符串    

以下实例将浮点数变量 a 转换为整数:

>>> a = 1.6  # 舍去小数部分
>>> int(a)
1

Python 数字运算

Python 解释器可以作为一个简单的计算器,您可以在解释器里输入一个表达式,它将输出表达式的值。

表达式的语法很直白: +, -, * 和 /, 和其它语言(如Pascal或C)里一样。例如:

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5  # 总是返回一个浮点数
1.6

注意:在不同的机器上浮点运算的结果可能会不一样。

在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 // :

>>> 17 / 3  # 整数除法返回浮点型
5.666666666666667
>>>
>>> 17 // 3  # 整数除法返回向下取整后的结果
5
>>> 17 % 3  # %操作符返回除法的余数
2
>>> 13.648/3.548
3.8466741826381057
>>> 13.497%5.1356
3.2257999999999996 >>> 5 * 3 + 2 17

注意:// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。

>>> 7//2
3
>>> 7.0//2
3.0
>>> 7//2.0
3.0

等号 = 用于给变量赋值。赋值之后,除了下一个提示符,解释器不会显示任何结果。

>>> width = 20
>>> height = 5*9
>>> width * height
900

Python 可以使用 ** 操作来进行幂运算:

>>> 5 ** 2  # 5 的平方
25
>>> 2 ** 7  # 2的7次方
128

变量在使用前必须先"定义"(即赋予变量一个值),否则会出现错误:

>>> n   # 尝试访问一个未定义的变量
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined

不同类型的数混合运算时会将整数转换为浮点数:

>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5

在交互模式中,最后被输出的表达式结果被赋值给变量 。例如:

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

此处, 变量应被用户视为只读变量。 

 2.布尔值

  True or False
  1 或 0
  “”空字符串为False
  只要字符串不是空就是True “ ”
Python中,False,0,'',[],{},()都可以视为假
>>> a = True
>>> type(a)
<class 'bool'>
>>> a = 0
>>> type(a)
<class 'int'>
>>> a = False
>>> type(a)
<class 'bool'>
a = 1
if a:
print(a)
else:
print(a+10)
# 输出为 1

 3.扩展数据类型

  • namedtuple():生成可以用名字访问元素内容的tuple子类
  • deque:双端队列
  • Counter:计数器,用来计数
  • OrderedDict:有序字典
  • defaultdict:带有默认值的字典
原文地址:https://www.cnblogs.com/wlx97e6/p/9307809.html