# 加法运算
>>> 2+2
4
# 减法运算
>>> 3-1
2
# 乘法运算
>>> 2*3
6
# 除法运算,默认返回浮点型
>>> 4/2
2.0
>>> 2/3
0.6666666666666666
# 除法运算,两个整数去小数位
>>> 2//3
0
>>> 4//2
2
# 除法运算,有浮点型则返回浮点型
>>> 1//0.2
4.0
# 幂运算
>>> 2**3
8
>>> -3**2
-9
>>> (-3)**2
9
# 取模运算,即取余数
>>> 3%2
1
>>> 2%3
2
# 二进制 b为字母,其余都是数字 结果为2的3次方
>>> abin=0b1000
>>> abin
8
# 八进制 首位数字0,后面字母o,接着数字12 结果为8的1次方加2
>>> aoct=0o12
>>> aoct
10
# 十六进制 首位数字0,后面字母x,接着字母A
>>> ahex=0xA
>>> ahex
10
>>> a=10
>>> a
10
在Python中,名称(标识符)只能由字母、数字和下划线(_)构成,且不能以数字打头。 因此Plan9是合法的变量名,而9Plan不是。
>>> _a_ = 1
>>> _b_12 = 12
>>> 1_c = 13
File "" , line 1
1_c = 13
^
SyntaxError: invalid token
表达式是一些东西,而语句做一些事情。例如,2 * 2的结果是4,而print(2 * 2)打印4。表达式和语句的行为很像,因此它们之间的界线可能并非那么明确。
Python常用的表达式操作符:
算术运算符:
x+y, x-y, x / y, x*y, x // y, x%y
比较运算符:
x>y, x<y, x>=y, x<=y, x==y, x!=y
逻辑运算符:
x or y, x and y, not x
成员关系运算:
x in y, x not in y
对象实例测试:
x is y, x not is y
位运算:
x & y, x | y, x ^ y, x<<y, x>>y
一元运算:
-x,+x,~x(按位取反)
幂运算:
x ** y
索引、分片(对于序列):
x[i], x[i,j], x[i,i,stride]
调用(对于可调用对象):
x(...)
取属性:
x.attribute
元组:(...)
序列:[...]
字典:{...}
三元选择表达式:
expression if boolean_expression else expression2
匿名函数:lambda args:expression
生成器函数发送协议:yield x
运算优先级:
(..),[...],{...}
s[i],s[i.j]
s.attribute
s(...)
+x,-x,~x
x ** y
*,/,//,%
+,-
<<,>>
&
^
|
<,<=,>,>=,==,!=
is,not is
in,not in
not
and
or
lambda
语句:
赋值语句
调用
print:打印对象
if/elif/else:条件判断
for/else:序列迭代
while/else:普通循环
pass:占位符
break
continue
def
return
yield
global
raise:手动触发异常
import
from:模块属性访问
class
try/except/finally
del:删除引用
assert:调试检查
with/as:环境管理器
赋值语句:
隐式赋值:import ,from, def,class, for, 函数参数
元组和列表分解复制:当赋值符号(=)的左侧为元组或列表时,Python会按照位置吧右边的对象和左边的目标自左向右追忆进行配对:个数不同是出触发异常,此时可以切片的方式进行;
多重目标复制:n1=n2=n3=88
增强赋值:+=,-=,*=,/=,//=,%= 效率较高
##五、获取输入
>>> x = input('x:')
x:10
>>> y = input('y:')
y:11
>>> print(int(x) * int(y))
110
内置函数:即无需import即可使用的函数,并可以通过如下命令来进行获取
# 通过以下命令可以查看python的内置函数
>>> dir(__builtins__)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BufferError', 'BytesWarning', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'None', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'ZeroDivisionError', '__debug__', '__doc__', '__import__', '__name__', '__package__', 'abs', 'all', 'any', 'apply', 'basestring', 'bin', 'bool', 'buffer', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'cmp', 'coerce', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'intern', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'long', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 'vars', 'xrange', 'zip']
自定义函数:def 即define的意思,接函数名不可使用数字开头只能以,下划线 or 字母开头,and 字母数字来组合命名。
>>> def funtest(a,b):
... print(a * b)
...
>>> funtest("*",10)
**********
Python中使用 #符号来进行文档的注释功能
Python中字符串的表示方法有三种
使用单引号 ‘’
使用双引号""
使用三引号""”""
如果要在字符串中使用 单引号/双引号此特殊字符时,可以这种表示方式
“This’s an apple!”
“”"
She says:“Peter’s Dad is a doctor!”
“”"
>>> s1 = "This's an apple!"
>>> s2 = """
...
... She says:"Peter's Dad is a doctor!"
...
... """
>>> print(s1)
This's an apple!
>>> print(s2)
She says:"Peter's Dad is a doctor!"
实际上str代表的是一个类,而repr是一个函数
>>> s = "hell\nworld"
>>> print(s)
hell
world
>>> print(repr(s))
'hell\nworld'
一般长字符串使用三引号来表示一段长字符,当然,可以使用\来进行换行表示
>>> s = "abc\
... defg"
>>> print(s)
abcdefg
>>> ss = '''
... hello
... world
... '''
>>> print(ss)
hello
world
当如果遇到一个字符串 s= "c:\new\python"时,此时需要使用r关键字来进行获取原始字符串,或者通过\来转义
>>> s1 = "c:\new\python"
>>> print(s1)
c:
ew\python
>>> s2 = r"c:\new\python"
>>> print(s2)
c:\new\python
>>> s3 = "c:\\new\\python"
>>> print(s3)
c:\new\python
Python字符串使用unicode编码来表示。Python将文本写入文件或通过网络套接字发送出去,提供两种类型:bytes 表示字节序列,是一个不可变的数据类型。
bytearray 表示字节数组,是一个可变的数据类型。
>>> "中国China".encode("utf-8")
b'\xe4\xb8\xad\xe5\x9b\xbdChina'
>>> "China".encode("ascii")
b'China'
>>> "中国China".encode("ascii")
Traceback (most recent call last):
File "" , line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
>>> "中国China".encode("utf-32")
b'\xff\xfe\x00\x00-N\x00\x00\xfdV\x00\x00C\x00\x00\x00h\x00\x00\x00i\x00\x00\x00n\x00\x00\x00a\x00\x00\x00'
>>> len("China".encode("utf-8"))
5
>>> len("China".encode("ascii"))
5
>>> len("China".encode("utf-16"))
12
>>> x = bytearray(b"hello")
>>> x[1] = ord(b"中")
File "" , line 1
SyntaxError: bytes can only contain ASCII literal characters.
>>> x[1] = ord(b"P")
>>> x
bytearray(b'hPllo')
>>> x.decode()
'hPllo'
在Python中,最基本的数据结构为序列(sequence)。列表与元祖不同的是,列表是可修改的而元祖是不可修改的。几乎所有的场景中,列表都是可替代元祖处理。唯独一种情况,元祖作为字典键值时,禁止使用列表。毕竟,列表是可修改的数据。