目录
1、数字
var:
用于声明一个函数范围或全局范围的变量,并可将其初始化为一个值(可选)。
-
使用var声明变量,在方法内部是局部变量,在方法外部是全局变量
-
没有使用var声明的变量,在方法内部或外部都是全局变量,但如果是在方
-
法内部声明,在方法外部使用之前需要先调用方法,告知系统声明了全局变量后方可在方法外部使用。
-
在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量
-
在function内部, 加var的是局部变量, 不加var的则是全局变量;
-
在function外部, 不管有没有使用var声明变量,都是全局变量,在function外部,var关
-
键字一般可以省略,但是为了书写规范和维护方便以及可读性好,我个人不建议省略var关键字!
-
可以使用del语句删除一些数字对象的引用。
del语句的语法是:
del var1[,var2[,var3[....,varN]]]
单个或多个对象
del var del var_a, var_b #var a 是错误输入法
2、Python 支持三种不同的数值类型:
整型(int) - 可以当作 Long 类型使用, Python3 没有 Python2 的 Long 类型。布尔(bool)是整型的子类型。
浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
我们可以使用十六进制和八进制来代表整数:
>>>number=0xBA7
>>>number
2983
>>>number=0o87 #错误是因为这是八进制,我写了个8超范围了
SyntaxError: invalid digit '8' in octal literal
>>>number=0x45
>>>number
69
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
>>>a=16
>>>complex(a)
(16+0j)
>>>b=17
>>>complex(a,b)
(16+17j)
3、运算
>>>2+3
5
>>>5/2
2.5
>>>5//2 #除后取整
2
>>>5.0//2 #这个运算符跟数的浮点类型一样
2.0
>>>a=2
>>>b=4
>>>a*b
8
>>>a==b #数学的等于,但这里不等于,所以输出False
False
>>>a=b #赋值
>>>a
4
>>>2**4 #2的四次方
16
>>>n #需要赋值
Traceback (most recent call last):
File "<pyshell#59>", line 1, in <module>
n
NameError: name 'n' is not defined
>>>n=int a
SyntaxError: incomplete input
>>>n=int(a)
>>>n
4
>>>3*0.5
1.5
>>>3.0/3
1.0
>>>a=11
>>>b=23.5
>>>b*a
258.5
>>>b+_ #交互模式中,最后被输出的表达式结果被赋值给变量 _ , _ 变量应被视为只读变量
282.0
>>>round(_,2)
282.0
>>>a=23.5678
>>>round(a,2) #小数点后几位数
23.57
4、数学函数
函数 | 返回值 ( 描述 ) |
---|---|
abs(x) | 返回数字的绝对值,如abs(-10) 返回 10 |
ceil(x) | 返回数字的上入整数,如math.ceil(4.1) 返回 5 |
(x>y)-(x<y) | 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 |
exp(x) | 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
fabs(x) | 以浮点数形式返回数字的绝对值,如math.fabs(-10) 返回10.0 |
floor(x) | 返回数字的下舍整数,如math.floor(4.9)返回 4 |
log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) | 返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
max(x1, x2,...) | 返回给定参数的最大值,参数可以为序列。 |
min(x1, x2,...) | 返回给定参数的最小值,参数可以为序列。 |
modf(x) | 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
pow(x, y) | x**y 运算后的值。 |
round(x [,n]) | 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。 其实准确的说是保留值将保留到离上一位更近的一端。 |
sqrt(x) | 返回数字x的平方根。 |
5、随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
函数 | 描述 |
---|---|
choice(seq) | 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
randrange ([start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 |
random() | 随机生成下一个实数,它在[0,1)范围内。 |
seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) | 将序列的所有元素随机排序 |
uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内。 |
6、三角函数
函数 | 描述 |
---|---|
acos(x) | 返回x的反余弦弧度值。 |
asin(x) | 返回x的反正弦弧度值。 |
atan(x) | 返回x的反正切弧度值。 |
atan2(y, x) | 返回给定的 X 及 Y 坐标值的反正切值。 |
cos(x) | 返回x的弧度的余弦值。 |
hypot(x, y) | 返回欧几里德范数 sqrt(x*x + y*y)。 |
sin(x) | 返回的x弧度的正弦值。 |
tan(x) | 返回x弧度的正切值。 |
degrees(x) | 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 |
radians(x) | 将角度转换为弧度 |
7、数学常量
常量 | 描述 |
---|---|
pi | 数学常量 pi(圆周率,一般以π来表示) |
e | 数学常量 e,e即自然常数(自然常数)。 |
2、字符串
>>>var1="hello python"
>>>var2="CSDN"
>>>var1[0]
'h'
>>>var1[5] #空格也是字符,占据空间
' '
>>>var1[1:4]
'ell'
>>>var2[-1]
'N'
>>>print("已更新字符串:",var1[:6]+'var2') #从第六个开始变
已更新字符串: hello var2
>>>print("已更新字符串:",var1[:6]+var2)
已更新字符串: hello CSDN
1、转义字符
在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符。如下表:
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车,将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。 |
\f | 换页 |
\yyy | 八进制数,y 代表 0~7 的字符,例如:\012 代表换行。 |
\xyy | 十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行 |
\other | 其它的字符以普通格式输出 |
' '
>>>var1\
var2
SyntaxError: incomplete input
>>>print(var1\
var2)
SyntaxError: invalid syntax. Perhaps you forgot a comma?
>>>print("var1\var2
SyntaxError: incomplete input
>>>print("var1\
var2")
var1var2
>>>print("var1 \
var2")
var1 var2
>>>print"var1\\var2")
SyntaxError: unmatched ')'
>>>print("var1\\var2")
var1\var2
>>>print('var\'')
var'
>>>print("\"")
"
>>>print("\a")
>>>print("\000")
>>>print("hello\npython")
hello
python
>>>print("hello python\n")
hello python
>>>print("hello python"\n)
SyntaxError: unexpected character after line continuation character
print("hello\vpython")
hellopython
>>>print("hello \v python")
hello python
>>>print("hello\tpython")
hello python
>>>print("hello\rpython")
hello
python
>>> print("Hello\rWorld!")
SyntaxError: unexpected indent
>>>print("Hello\rWorld!")
Hello
World!
>>>print('google runoob taobao\r123456')
google runoob taobao
123456
>>>print('google runoob taobao \r 123456')
google runoob taobao
123456
>>>print("hello\fpython")
hellopython
>>>print("hello\yyy")
hello\yyy
>>>print("\110\145\154\154\157\40\127\157\162\154\144\41")
Hello World!
2、字符串运算符
下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | a + b 输出结果: HelloPython |
* | 重复输出字符串 | a*2 输出结果:HelloHello |
[] | 通过索引获取字符串中字符 | a[1] 输出结果 e |
[ : ] | 截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。 | a[1:4] 输出结果 ell |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True | 'H' in a 输出结果 True |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | 'M' not in a 输出结果 True |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 | print( r'\n' ) print( R'\n' ) |
% | 格式字符串 |
3、列表
a=['blue','yello','red']
num=[10,20,30,40]
4、元组
tuple=('abc','cde','bes')
tuple=("abc","cad")
tup=(1,2,3,4)
tup="a","b","c"
5、字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中
d = {key1 : value1, key2 : value2, key3 : value3 }
>>>emptyDict1={}
>>>emptyDict2={'name':tang,'age':20,'class':4}
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
emptyDict2={'name':tang,'age':20,'class':4}
NameError: name 'tang' is not defined. Did you mean: 'range'?
>>>emptyDict2={'name':'tang','age':20,'class':4}
>>>print(emptyDict1)
{}
>>>print(emptyDict2)
{'name': 'tang', 'age': 20, 'class': 4}
>>>print("Length:",len(emptyDict))
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
>>>print("Length:",len(emptyDict))
NameError: name 'emptyDict' is not defined. Did you mean: 'emptyDict1'?
>>>print("Length:",len(emptyDict1))
Length: 0
>>>print("Length:",len(emptyDict2))
Length: 3
>>>print(type(emptyDict1))
<class 'dict'>
>>>print(type(emptyDict1))
<class 'dict'>
>>>print(type(emptyDict2))
<class 'dict'>
>>>print ("tinydict['Name']: ", tinydict['Name'])
>>>print ("tinydict['Age']: ", tinydict['Age'])
SyntaxError: multiple statements found while compiling a single statement
>>>print ("emptyDict2['Name']: ", emptyDict2['Name'])
>>>print ("emptyDict2['Age']: ", emptyDict2['Age'])
SyntaxError: multiple statements found while compiling a single statement
>>>print ("emptyDict2['Name']: ", emptyDict2['Name'])
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
>>>print ("emptyDict2['Name']: ", emptyDict2['Name'])
KeyError: 'Name'
>>>print ("emptyDict2['name']: ", emptyDict2['name'])
emptyDict2['name']: tang
>>>print ("emptyDict2['age']: ", emptyDict2['age'])
emptyDict2['age']: 20
>>>print ("emptyDict2['people']: ", emptyDict2['peopie'])
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
>>>print ("emptyDict2['people']: ", emptyDict2['peopie'])
KeyError: 'peopie'
>>>emptyDict2['age']=21
>>>emptyDict['school']="nanjing"
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
emptyDict['school']="nanjing"
NameError: name 'emptyDict' is not defined. Did you mean: 'emptyDict1'?
>>>emptyDict2["school"]='nanjing'
>>>print("emptyDict2['age']:".emptydict2['age'])
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
>>>print("emptyDict2['age']:".emptydict2['age'])
AttributeError: 'str' object has no attribute 'emptydict2'
>>>print("emptyDict2['age']:".emptyDict2['age'])
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
>>>print("emptyDict2['age']:".emptyDict2['age'])
AttributeError: 'str' object has no attribute 'emptyDict2'
>>>print ("emptyDict2['age']: ", emptyDict2['age'])
emptyDict2['age']: 21
>>>print ("emptyDict2['school']: ", emptyDict2['school'])
emptyDict2['school']: nanjing
>>>del emptyDict2['name']
>>>print("emptyDict2删除name键后:",emptyDict2)
emptyDict2删除name键后: {'age': 21, 'class': 4, 'school': 'nanjing'}
>>>emptyDict2.clear()
>>>print("emptyDict2清空后:",emptyDIct2)
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
>>>print("emptyDict2清空后:",emptyDIct2)
NameError: name 'emptyDIct2' is not defined. Did you mean: 'emptyDict2'?
>>>print("emptyDict2清空后:",emptyDict2)
emptyDict2清空后: {}
>>>del emptyDIct2
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
>>>del emptyDIct2
NameError: name 'emptyDIct2' is not defined. Did you mean: 'emptyDict2'?
>>>del emptyDict
Traceback (most recent call last):
File "<pyshell#30>", line 1, in <module>
>>>del emptyDict
NameError: name 'emptyDict' is not defined. Did you mean: 'emptyDict1'?
>>>del emptyDict2
>>>print("emptyDict2删除字典后:",emptyDict2)
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
>>>print("emptyDict2删除字典后:",emptyDict2)
NameError: name 'emptyDict2' is not defined. Did you mean: 'emptyDict1'?
注意点:
1、不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
2、键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
函数
序号 | 函数及描述 |
---|---|
1 | len(dict) 计算字典元素个数,即键的总数。 |
2 | str(dict) 输出字典,可以打印的字符串表示。 |
3 | type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。 |
Python字典包含了以下内置方法:
序号 | 函数及描述 |
---|---|
1 | dict.clear() 删除字典内所有元素 |
2 | dict.copy() 返回一个字典的浅复制 |
3 | dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
4 | dict.get(key, default=None) 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
5 | key in dict 如果键在字典dict里返回true,否则返回false |
6 | dict.items() 以列表返回一个视图对象 |
7 | dict.keys() 返回一个视图对象 |
8 | dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | dict.update(dict2) 把字典dict2的键/值对更新到dict里 |
10 | dict.values() 返回一个视图对象 |
11 | pop(key[,default]) 删除字典 key(键)所对应的值,返回被删除的值。 |
12 | popitem() 返回并删除字典中的最后一对键和值。 |