安装Python
安装文本编辑器
编写程序前应该知道
- 输出
print()
- 输入
input()
- 变量
简单理解为一个存放东西的箱子
- 注释 用
#
来写注释,#
所在行计算机直接忽视. 注释是给人看的,而不是给机器看的. - 代码块 编辑器中的每一行都是一个语句,当语句以冒号
:
结尾时,缩进的语句视为代码块。 - 缩进 坚持使用4个空格的缩进, 便于阅读和理解.sublimes编辑器已经默认设置一个tab等于4个空格.
数据类型
- 整数
- 浮点数
- 字符串
字符串是以单引号'或双引号"括起来的任意文本
转义字符\
可以转义很多字符,比如\n
表示换行,\t
表示制表符,字符\
本身也要转义,所以\\\
表示的字符就是\
为了简化,Python还允许用r''
表示''
内部的字符串默认不转义 - 布尔值
Ture
跟False
(大小写需要完全一样)
可以用and
,or
,not
来运算布尔值(与或非)
and
与运算, 只有全都Ture
才输出Ture
or
或运算,只有有Ture
就输出Ture
not
非运算, 把True
变成False
,False
变成True
- 空值 用
None
表示。None
不能理解为0
,因为0
是有意义的,而None
是一个特殊的空值。 - 变量
简单理解为一个存放东西的箱子.
变量在程序中就是用一个变量名表示.
变量名必须是大小写英文、数字和_的组合,且不能用数字开头. -
=
赋值语句 把=
右边的值赋给左边. - 常量 就是不变的变量. 在Python中, 通常用全部大写的变量名表示常量, 如PI.
- 三种除法
/
无论怎么除都是浮点数
//
结果取整
%
结果取余
字符编码
- 请读者自己搞清楚ASCII、 Unicode和UTF-8的关系
- 简单说就是从最简单的ASCII开始发展, 各国为自身需要制定自己语言的编码. 导致在多语言混合的文本里, 会出现乱码.
- 为解决乱码问题, 于是制定了Unicode.
Unicode是所有语言都统一到一套编码里.
ASCII编码是1个字节, 而Unicode编码通常是2个字节.
但如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间, 这在存储和传输上就十分不划算. - 为了解决浪费的问题, 于是制定了UTF-8编码.
UTF-8编码简单理解就是Unicode的精简, 只保留最常用的字符.
Python的字符串
- Python3中, 字符是以Unicode编码的,这意味着它支持多语言.
- 可以利用
ord()
函数 跟chr()
函数 进行字符和编码的转换.
在编写程序时, 最开头加上
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。 - 格式化
%
这里的格式化不是指硬盘的格式化, 而是可以理解为模版.
例如 我们经常会输出类似亲爱的xxx你好!你xx月的话费是xx,余额是xx
之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种能够简便地表达格式化字符串的方式。
有%d 整数
,%f 浮点数
,%s 字符串
,%x 十六进制整数
这四种常见的占位符.
使用范例:'Hi, %s, you have $%d.' % ('Michael', 1000000)
输出为'Hi, Michael, you have $1000000.'
%.2f
表示保留小数点2位显示.
当字符串里%
是表达一个普通字符时, 需要编写为%%
.
list和tuple
- list
- list是一种有序的集合. 比如,列出班里所有同学的名字,就可以用一个list表示:
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates ['Michael', 'Bob', 'Tracy']
这个变量classmates就是一个list。 - 用
len()
函数可以获得list元素的个数.如输入len(classmates)
,得到3
. - 输入
classmates[0]
,classmates[1]
,classmates[2]
可分别获得Michael
,Bob
,Tracy
.值得留意的是, 里边的元素是从0
开始数的. - 输入
classmates[-1]
,classmates[-2]
,classmates[-3]
, 则分别获得Tracy
,Bob
,Michael
,值得注意的是里边的数字.表示从最后一个元素数起. - 使用
classmates.append('Adam')
往listclassmates
的最后添加一个元素Adam
- 使用
classmates.insert(2, 'Jack')
把Jack
这个元素插到classmates
这个list的第三个位置.其它元素往后退一位. - 使用
classmates.pop()
删除list的最后一个元素.输入classmates.pop()
后,list的最后一个位置的元素被删除. - 使用
classmates.pop(i)
来删除list的特定位置元素. 输入classmates.pop(2)
, 则list的第三个位置的元素被删除 - 使用直接赋值可以直接替换list里的某个元素.如
classmates[2] = 'Adam'
, 则这个list里的第三个元素被替换为'Adam'
. - list里元素的类型可以是不同的, 比如
L = ['apple', 13213, bb]
表明字符串, 数字, 变量 都可以是list的元素. - 一个list可以是另一个list的元素,如
A = ['apple', 'banana', ['mouse', 'keyboard'], 'orange']
, 值得留意的是如果输入len(A)
的话, 得到的结果是4
, 因为此时子list是被当作一个元素处理. - 把list拆开写比较好理解.
A = ['apple', 'banana']
B = ['mouse', 'keyboard', A]
如果想要取得banana
这个元素, 可以写A[1]
或者B[2][1]
. 你可以把B
这个list当成二维数组,以此类推有三维, 四维....
- list是一种有序的集合. 比如,列出班里所有同学的名字,就可以用一个list表示:
- tuple
- tuple称为
元组
, 跟list非常类似, 区别在于tuple后使用()来囊括元素, 而list是使用[]; 其次在于list的元素可重新赋值, tuple的元素不可变换. - tuple一旦初始化就不能修改.
- tuple因为不可变, 所以代码更加稳定, 可控, 安全.
- 只有1个元素的tuple定义时必须加一个逗号
,
,来消除歧义.
例:t = (1,)
- tuple称为
if, elif, else条件判断
- 经典情景
age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid')
千万不要忘记条件后的冒号:
,else后原本也有条件, 只是省略了, 但该有的冒号:
还得加上.
再谈input()
- 在做条件判断时需要注意, input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。
Python提供了int()函数来完成这件事情:
s = input('birth: ') birth = int(s) if birth < 2000: print('00前') else: print('00后')
循环
- Python提供两种循环
for x in...:
while ...:
留意条件的冒号
-
for x in ...:循环
就是把每个元素代入变量x,然后执行缩进块的语句。 -
range()函数
可以生成一个整数序列, 如range(5)是生成0, 1, 2, 3, 4这样的整数序列. 再通过list()函数可以转换为list. -
while循环
,只要条件满足,就不断循环,条件不满足时退出循环。 - 利用
break
和continue
跳出循环-
break
的作用是提前结束循环. -
continue
的作用是提前结束本轮循环,并直接开始下一轮循环。
-
n = 0 while n < 10: n = n + 1 print(n)
n = 0 while n < 10: n = n + 1 if n % 2 == 0: # 如果n是偶数,执行continue语句 continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行 print(n)