pyhton基础
缩进方式
Python的语法比较简单,采用缩进方式。
# print absolute value of an integer:
a = 100
if a >= 0:
print(a)
else:
print(-a)
以#
开头的语句是注释。
语句以冒号:
结尾时,缩进的语句视为代码块。
按照约定俗成的管理,应该始终坚持使用4个空格
的缩进。
Python程序是大小写敏感
的。
数据类型
整数,浮点数,字符串,布尔值,空值,list,tuple,dict,set。
-
整数
- 有符号数。
- 无大小限制。
- 整数运算精确。
-
浮点数
- 与整数存储方式不同。
- 浮点数运算不精确。
-
字符串
- 单引号
''
、双引号""
括起来的任意文本。 - 转义字符
\
。 -
'''...'''
的格式表示多行内容。
- 单引号
在交互式命令行内输入情况如下,其中...
为输入line1
后按下回车后的提示符
>>> print('''line1
... line2
... line3''')
line1
line2
line3
在.py
文件中
print('''line1
line2
line3''')
line1
line2
line3
多行字符串'''...'''
还可以在前面加上r
使用
在.py
文件中
print(r'''hello,\n
world''')
hello,\n
world
- 布尔值
- 只有
True
、False
两种值(注意大小写)。 - 可以用
and
、or
和not
运算。
- 只有
- 空值
- 用
None
表示。 -
None
不能理解为0
,因为0
是有意义的,而None
是一个特殊的空值。
- 用
- list 列表
- 有序集合,可以添加和删除元素。
- 索引从
0
开始,可以用负数做索引。 -
len()
函数获得list元素个数。 - append()追加元素到末尾。
- insert()把元素插入到指定位置。
- pop()删除末位元素,pop(i)删除索引i的元素。
- 替换,直接给对应索引位置赋值。
- list里面元素数据类型可以不同。
>>> classmates = ['Michael', 'Bob', 'Tracy'] >>> classmates ['Michael', 'Bob', 'Tracy'] >>> len(classmates) 3 >>> classmates[-1] 'Tracy' >>> classmates.append('Adam') >>> classmates ['Michael', 'Bob', 'Tracy', 'Adam'] >>> classmates.insert(1, 'Jack') >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam'] >>> classmates.pop(1) 'Jack' >>> classmates ['Michael', 'Bob', 'Tracy'] >>> classmates[1] = 'Sarah' >>> classmates ['Michael', 'Sarah', 'Tracy'] >>> L = ['Apple', 123, True] >>> L = [] >>> len(L) 0
- tuple 元组
- 有序列表。
- 一旦初始化就不能修改,没有append(),insert()这样的方法,如果可能,能用tuple代替list就尽量用tuple。
- 只有1个元素的tuple定义时必须加一个逗号
,
。
>>> t = (1,) >>> t (1,)
- dict 字典
- 其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。key必须是不可变对象。
- 把数据放入dict:初始化、通过key赋值(多次对一个key放入value会覆盖;key不存在报错。)
- 判断key是否存在:
in
,get()
- key
in
dict - dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value。
注意:返回None的时候Python的交互环境不显示结果
- key
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> 'Thomas' in d False >>> d.get('Thomas') >>> d.get('Thomas', -1) -1
pop(key),删除key,对应的value也会从dict中删除。
dict内部存放的顺序和key放入的顺序是没有关系的。
-
与list的比较
dict- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
list
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
- set 集合
- 一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
- 不有序。
- add(key)添加元素。可以重复添加,但不会有效果。
- remove(key)删除元素。
>>> s = set([1, 2, 3]) >>> s {1, 2, 3} >>> s.add(4) >>> s {1, 2, 3, 4} >>> s.add(4) >>> s {1, 2, 3, 4} >>> s.remove(4) >>> s {1, 2, 3}
变量、常量、运算
-
变量
- 在Python中,等号
=
是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。 - 这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言。
- 在Python中,等号
-
常量
- 在Python中,通常用全部大写的变量名表示常量。
-
运算
-
/
除法计算结果是浮点数。 -
//
地板除只取结果的整数部分。 -
%
取余运算。
-
控制语句
- 条件判断
if
- if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else。
age = 20 if age >= 6: print('teenager') elif age >= 18: print('adult') else: print('kid')
- 只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
if x: print('True')
- 循环
for...in
Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name)
>>> list(range(5)) [0, 1, 2, 3, 4]
- while循环,只要条件满足,就不断循环,条件不满足时退出循环。
sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum)
- break、continue与java大同小异。