上一篇:py1 html
基本语法python
运算符ide
基本数据类型函数
在 Python 3 中,非 ASCII 标识符也是容许的了(甚至是支持汉字了)。学习
保留字即关键字,咱们不能把它们用做任何标识符名称。Python 的标准库提供了一个 keyword 模块,能够输出当前版本的全部关键字:ui
>>> 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中单行注释以 # 开头,实例以下:spa
#!/usr/bin/python3 # 第一个注释 print ("Hello, Python!") # 第二个注释
输出结果为:Hello, Python!.net
多行注释能够用多个 # 号,还有 ''' 和 """:(多行注释在python还能当作字符串来使用)code
#!/usr/bin/python3 # 第一个注释 # 第二个注释 ''' 第三注释 第四注释 ''' """ 第五注释 第六注释 """ print ("Hello, Python!")
执行以上代码,输出结果为:Hello, Python!htm
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 默认输出是换行的,若是要实现不换行须要在变量末尾加上 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)
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的一种持久化保存方式。
Python 中的变量不须要声明。每一个变量在使用前都必须赋值,变量赋值之后该变量才会被建立。
在 Python 中,变量就是变量,它没有类型,咱们所说的"类型"是变量所指的内存中对象的类型。
多个变量赋值
Python容许你同时为多个变量赋值。例如:
a = b = c = 1
a, b, c = 1, 2, "runoob"
注: 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 '''
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
>>>a = [1, 2, 3] >>> b = a >>> b is a True >>> b == a True >>> b = a[:] >>> b is a False >>> b == a True
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
result = 值1 if 条件 else 值2
若是条件为真,result为值1,不然为值2。
运算符优先级:
更多内容详见http://www.runoob.com/python3/python3-basic-operators.html
Python3 中有六个标准的数据类型:
Python3 的六个标准数据类型中:
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 的区别在于:
注意:在 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
注意:
数值类型实例
int | float | complex |
---|---|---|
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
有时候,咱们须要对数据内置的类型进行转换,数据类型的转换,你只须要将数据类型做为函数名便可。
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) 将十进制转换为十六进制
如下实例将浮点数变量 a 转换为整数:
>>> a = 1.6 # 舍去小数部分 >>> int(a) 1
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
此处, _ 变量应被用户视为只读变量。
>>> 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