#python入门1#入门
终端进入命令行模式
python
命令行退出终端
exit()
命令行执行.py脚本
python hello.py
打印信息
print() 函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出
用户输入
input()
input('提示文字')
# print absolute value of an integer:
a = 100
if a >= 0:
print(a)
else:
print(-a)
以#开头的语句是注释,注释是给人看的
其他每一行都是一个语句,当语句以冒号: 结尾时,缩进的语句视为代码块。
Python还允许用r'' 表示''内部的字符串默认不转义
数据类型
- 如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用 '''...''' 的格式表示多行内容
**
>>> print('''line1
... line2
... line3''')
line1
line2
line3
- 空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
注意事项
Python程序是大小写敏感的,如果写错了大小写,程序会报错
字符串编码
以Unicode表示的str通过 ** encode() ** 方法可以编码为指定的bytes
>>> 'ABC' . encode('ascii')
b'ABC'
>>>'中文' . encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
- 纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes。含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。
- 在bytes中,无法显示为ASCII字符的字节,用\x##显示。
反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用 ** decode() **方法
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
字符串操作函数
- 计算str 包含多少字符,可以用 ** len() **
>>> len('abc')
3
>>> len('汇总')
2
- len()函数计算的是str的字符数,如果换成bytes, len()函数就计算成字节数
>>>len(b'ABC')
3
>>>len(b'\xe4\xb8\xad\xe6\x96\x87)
6
>>>len('中文' . encode('utf-8'))
6
当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
#!/usr/bin/env python3
# -- coding: utf-8 --
- 第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
- 第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
- 确保文本编辑器正在使用UTF-8 without BOM编码
格式化输出
- 在Python中,采用的格式化方式和C语言是一致的,用%实现
%d | 整数 |
---|---|
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
- 格式化整数和浮点数还可以指定是否补0和整数与小数的位数
>>> '%05d' %2
'00002'
>>> '%.3f' % 3.14245234234
'3.142'
list 和 tuple
- list是一种有序的集合
>>> classmates = ['michael', 'bob', 'tracy']
>>> classmates[0] // michael
>>> classmates[1] // bob
>>> classmates[2] // tracy
>>> classmates[-1] // tracy
>>> classmates[-2] //bob
末尾插入数据
>>> classmates.append('adam') // ['michael', 'bob', 'tracy', 'adam']
指定位置插入数据
>>> classmates.insert(1, 'jack') // 'michael', 'jack', 'bob', 'tracy', 'adam']
删除末尾数据
>>> classmates.pop() // ['michael', 'jack', 'bob', 'tracy']
删除指定位置数据
>>> classmates.pop(1) // ['michael', 'bob', 'tracy']
替换指定元素
>>> classmates[1] = 'hello' // ['michael', 'hello', 'tracy']
元素可以是另一个list
>>> s = ['michael', 'jack', ['asp', 'php', 'ios'], 'tracy']
>>> len(s) // 4
获取php值
>>> len[2][1]
- tuple 另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改
>>> classmates = ('michael', 'bob', 'tracy')
现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使classmates[0]
,classmates[-1],但不能赋值成另外的元素。
>>> class = () //定义空的tupple
但是,要定义一个只有1个元素的tuple,如果你这么定义:
>>> t = (1)
>>> t
1
定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:
>>> t = (1,)
>>> t
(1,)
- 最后来看一个“可变的”tuple
>>> t=('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
看看定义的时候tuple包含的3个元素
所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。