Python_2

注释

#开头的语句是注释

大小写敏感

约定

Python使用缩进来组织代码块,需要遵循预定俗称的习惯,坚持以4个空格作为缩进(避免Tab和空格混用,可以将编辑器的Tab设置为空格代替)

数据类型

整数(1、0xff00)、浮点数(1.23、1.3e-5)、字符串('abc',"abc",'I\'m \"OK\"!')、布尔值(True、False)、空值(None)

注:\是转移字符,当一个字符串有很多符号需要转义时可以使用r''表示''内部的字符不转义(其中不要有空格,单引号用双引号会报错),如果字符串中有很多换行,全部使用\n不方便阅读,还支持'''...'''表示多行内容(其中...用实际内容代替,可以换行输入),布尔值、空值的首字母必须大写,Python的整数没有大小限制,Python的浮点数也没有大小限制,但是一旦超过一定范围就直接表示为inf(无限大)。

>>> print('I\'m ok.')
I'm ok.
>>> print('I\'m learning\nPython.')
I'm learning
Python.
>>> print('\\\n\\')
\
\
>>> print('\\\t\\')
\       \   
>>> print(r'\\\t\\')
\\\t\\
>>> print('''line1 
... line2 
... line3''')
line1
line2
line3

变量

变量名必须是大小写英文、数字和_组合,且不能用数字开头,等号=是赋值语句。

变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言(定义变量时必须指定变量类型,如果赋值的时候类型不匹配会报错)

a = 'ABC'
b = a
a = 'XYZ'
print(b)

最终打印的是ABC,应该刚开始创建'ABC'字符串,然后在内存新增a变量指向它,然后新建变量b也指向a变量指向的字符串'ABC',再然后创建'XYZ'字符串,只是将变量a指向它,b变量没变仍然指向'ABC'

常量

通常用全部大写的变量名表示常量,常量就是不能变的变量。常量的声明与变量类似,并没有严格的限制不让修改常量的值,只是约定不能变。

注:数字计算中除/的结果是浮点数(分子分母都为整数结果也是浮点数,整除了也是浮点数),//地板除就是整数相除取整数部分,%是整数相除取余数。

字符串和编码

Python3版本中,字符串是以Unicode编码的,Python提供ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符。

Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就要把str变为以字节为单位的bytes,Python对bytes类型的数据用带b前缀的单引号或双引号表示(b'ABC'),以Unicode表示的str通过encode()方式可以编码为指定的bytes('中文'.encode('utf-8')),相对应的使用decode将bytes变为str(b'ABC'.decode('ascii')),计算str的长度使用len()函数(len('中文')),计算的是字符数。一个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占1个字节。

指定源代码文件使用UTF-8编码:

#!/usr/bin/env python3 (Linux/OS X表示这是一个Python可执行程序,windows忽略)
# -*- coding: utf-8 -*- (告诉Python解释器按照UTF-8编码)

声明并不意味文件就是UTF-8编码,保存文件时也要注意使用UTF-8编码存储。

格式化字符串

在Python中,采用的格式化方式和C语言是一致的,用%实现

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 
'Hi, Michael, you have $1000000.'

%运算符就是用来格式化字符串的,在字符串内部,%s表示用字符串替换,%d表示用整数替换,%f表示浮点数替换,%x表示十六进制整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好,如果只有一个%?,括号可以省略,其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

>>> '%2d-%02d' % (3, 1) 
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'

如果不确定用什么,%s永远起作用,它会把任何数据类型转换为字符串:

>>> 'Age: %s. Gender: %s' % (25, True) 
'Age: 25. Gender: True'

如果字符串中%是一个普通字符,用%%来表示一个%

list和tuple

list是一种有序的集合,可以随时添加和删除其中的元素。

>>> classmates = ['Michael', 'Bob', 'Tracy']

len()函数获得list元素的个数(len(classmates)),list中元素的索引是从0开始(classmates[0]),len(classmates)-1和-1作为索引均表示获取最后一个元素,list追加元素到末尾使用append()函数(classmates.append('Adam')),在指定索引位置插入元素使用insert()函数(classmates.insert(1,'Jack')),删除末尾元素使用pop()(classmates.pop()),删除指定索引的元素使用pop(i),把某个元素替换成别的元素,直接重新赋值即可(classmates[1]='Sarah'),list中各元素的类型可以不同,元素可以是list,相当于多维度(classmates[1][2])

tuple和list非常类似,但是tuple一旦初始化就不能再修改

>>> classmates = ('Michael', 'Bob', 'Tracy')

如果定义一个空的tuple可以使用(),如果只有一个元素不能使用(1),需要使用(1,),其中逗号(,)为了消除歧义,因为(1)会被认为是1,tuple的元素可以是list

条件和判断

if <条件判断1>:

    <执行1>

elif <条件判断2>:

    <执行2>

elif <条件判断3>:

    <执行3>

else:

    <执行4>

if语句的执行特点是从上往下,如果上面的条件已经满足,下面的将不再执行。

注:input()函数交互获取的输入数据为字符串,如果输入纯数字字符可以使用int(str)函数转换成整数。

循环

循环有for循环和while循环

sum = 0

for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:

    sum = sum + x

print(sum)

整数序列可以使用range()函数生成,range(101)就是表示从0-100的整数序列

sum = 0

n = 99

while n > 0:

    sum = sum + n

    n = n - 2

print(sum)

注意缩进表示语句块,四个空格缩进的约束也要牢记。

dict和set

dict相当于键值对的存储,查找快,占用空间大(以空间占用时间的存储方式,list占用空间小查找慢)

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

d['Bob']进行查找调用,如果key不存在会报错,可以使用in判断key是否存在

>>> 'Thomas' in
False
也可以使用get方法,不存在返回None(空值),空值在交互模式下不显示结果,可以设置缺省值
>>> d.get('Thomas'
>>> d.get('Thomas', -1)
-1

使用pop(key)删除对应的value,dict内部存放的顺序和key放入的顺序没有关系

dict中的key必须是不可变对象,所以key不能是一个list,并且key具有唯一性

set和dict类似是一组key的集合,并且不存储value,要创建一个set需要一个list输入集合

>>> s = set([1, 2, 3])

重复的元素在set中会被自动过滤,add(key)添加元素到set中,可以重复添加但不会有效果,remove(key)可以删除元素,两个set可以做交集(&)和并集(|)的操作

不可变对象

对于可变对象,比如list,对list进行操作,list内部的内容是会变化的

>>> a = ['c', 'b', 'a']

>>> a.sort()

>>> a

['a', 'b', 'c']

而不可变对象,比如str

 

>>> a = 'abc'

>>> a.replace('a', 'A')

'Abc'

>>> a

'abc'

//TODO:下一期将学习函数,过几天在继续学习

你可能感兴趣的:(python)