高级程序语言,代码量少,执行速度慢,不能加密,跨平台
python解释器:CPython(最广泛),IPython,PyPy,Jython,IronPython
命令行模式(一行一行解释执行)和交互模式(一次性执行源代码)
2. 输入和输出
print('one','two','three'), 有逗号,会输出一个空格
name = input('please enter your name') print('hello',name) 备注:input返回的是str
打开 和退出交互模式:打开python,关闭exit()
2.python基础:
任何一种编程语言都有自己的一套语法,编译器或者解释器就是负责把符合语法的程序代码转换成cpu能够执行的机器码,然后执行。
(1.注释:
单行注释#
多行注释''' XXX ''''
格式 采用缩进方式,坚持 使用4个空格的缩进(注意tab和空格不可混用)
(2. Python程序是大小写敏感的,如果大小写错了,程序会报错
3. 数据类型:
(1整数,浮点数,字符串('' ""),布尔值(True False),空值None(不是0,特殊的空值),list,truple,dict
(2转义字符\: "包含 "需要转义:'I\'m\"OK\"!' 表示的是I'm "OK"!
换行\n, 制表符\t, \\字符\, 不做转义原字符输出r'',r'''helloword''',多行内容'''...'''
例子:print('\\\n\\')
print('''line1
...line2
...line3''')
(3(静态语言和动态语言)
python是动态语言:在指定变量时不必指定变量类型,变量本身类型不固定。
静态语言:在定义变量时必须指定变量类型,如果赋值类型不匹配,会报错
(4 精确除法/,即使2个数都是整数,结果也是浮点数; 整除//,取整数部分;%取余数
(5 list(可变)
len(),list[-1],list.append('a'),list.insert(1,'45'),list.pop(),list.pop(i),list[1]='b', s=['python','java',['x','y'],'c']
(6 truple不可变指”指向不变“,代码更安全
classmates = ('hong','ming','jiao')
classmates[1], t=(1,),t = ('a', 'b', ['A', 'B'])
(7 dict字典(key-value),key必须是不可变
key不存在会报错:确保key存在:
key in d 存在返回True
d.get('key'): #如果key不存在返回None
set 是一组key的集合,但不存储value.由于key不能重复,在set中没有重复的key; 重复元素会过滤
s = set([1,2,3])
s.add(4) #结果{1,2.3,4}
s.remove(4)
(8可变变量和不可变
可变 a=['c','b','a'],a.sort() a = ['a','b','c']
不可变 a='abc', a.replace('a','A'), a ='abc'
4.字符编码:
Ascii GB2312 Unicode utf-8 (内存中使用unicode,传输保存时用utf-8)
chr(65),ord('A')
5.格式化:%f,%d,%s,%x, %%(转义,表示一个%)
(1:% print(Hi,%s,you have$%d.'%('Michael',1000000)
(2:format():print('Hello,{0},成绩提升了{1:.1f}%'.format('小明',17.125)
5. if x:
只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False
6. 循环:for x in list or truple
for x in range(4)
while
break 退出循环
continue 跳过本次循环,直接开始下一次循环
函数
1.函数调用 (个数和参数类型不对会报错)
abs(), max()
2. 函数定义
def my_abs(): 如果有return 返回return 的值,如果没有return则返回None
空函数 pass, 仅占位符,不填写会有语法错误
函数参数校验:
def my_abs():
if not isinstance(x,(int,float)):
raise TypeError('bad operand type')
if x >=0:
return x
else:
return y
函数可以同时返回多个值,其实就是一个tuple
默认参数(一定要不可变对象):def student(name,gender,age=6,city='Beijing'):必选参数在前,默认参数在后(变化大的参数在前,变化小的参数在后)默认参数必须指向不变对象
可变参数(*args)-list & tuple
关键字参数(**kw)
命名关键字参数(没有可变参数时需要加*分隔),确定的关键字参数
参数组合:顺序:必选参数,默认参数,可变参数,命名关键字参数和关键字参数