唐抉的个人博客

python学习笔记(一)

字数统计: 1.3k阅读时长: 5 min
2022/10/08

基本语句

输入:input() 输出:print()

注释:#

字符串类型:str

空值用None表示多行输入:'''...'''

内部字符默认不转义:r'''...'''

获取字符的整数表示:ord()

将字符编码转化为字符:chr()

bytes类型用带b前缀的单引号或双引号表示:b'字符'

将str类型数据转为指定的bytesr类型数据:'字符'.encode('原编码类型')

示例语句如下:

print('a'.encode('ascii'))

注意:python是4个空格缩进的,区分大小写。

含有中文的str类型无法用ASCII编码,在bytes中无法显示ASCII字符的字节,会以##代替显示

将bytesr类型数据转为str类型数据:b'字符'.decode('str的编码类型')

示例语句如下:

print(b'a'.decode('ascii'))

注意:若bytes中只有一小部分无效的字节,可用errors='ignore'语句忽略错误的字节。

计算str的字符数:len()

将源代码按UTF-8编码保存:

1
2
3
#!/usr/bin/env python3

# -*- coding: utf-8 -*-

申明UTF-8编码外,必须还要确保文本编辑器正在使用UTF-8 without BOM编码

格式化字符串的三种方法

占位符格式化字符串:

输出整形数据的语句:print('%d' % 123)

输出小数点后2位数的语句:print('%.2f' % 3.1415926)

format()格式化字符串

例子如下:

1
2
print('''{0}在考试中提升了{1:.2f}%,
{2}在考试中提升了{3:.2f}%'''.format('张三',2.354,'李四',0.458))

用f-string格式化字符串

例子如下:

1
2
3
4
5
6
a='张三'
b=2.354
c='李四'
d=0.458
print(f'''{a}在考试中提升了{b:.2f}%,
{c}在考试中提升了{d:.2f}%''')

练习题

小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出xx.x%,只保留小数点后1位:

代码如下:

1
2
3
4
5
6
7
# -*- coding utf-8 -*-
s1=72
s2=85
r=(s2-s1)/s1*100
print('%.1f%%'%r)
print('{0:0.1f}%'.format(r))
print(f'{r:0.1f}%')

列表list和元组tuple

列表list

list是一种有序的集合,可随时增减其中的元素

形式如同 name=['Zhangsan','Lisi','Wangwu'],指的是定义一个name列表,name为该列表的名称,与C语言中的数组相似,其区别在于list中的元素数据类型可以不同,元素可以是另一个list。

定义一个空列表,其列表名称为name:name()

获取列表中元素的个数

如获取name列表元素的个数:len(name)

使用索引获取列表中的最后一个元素

如获取name列表中的最后一个元素:name[-1]

在列表末尾增加元素

如在name列表末尾追加元素Bob:name.append('Bob')

将元素插入到列表中的指定位置

如将元素Jack插入到name列表指定的位置,如索引号为1的位置:name.insert(1,Jack)

删除列表末尾的元素

如删除name列表末尾的元素:name.pop()

删除列表指定位置的元素

如删除name列表中索引号为1的元素:name.pop(1)

替换列表中指定位置的元素

如将name列表中索引号为1的元素换成Xiaoming:name[1]='Xiaoming'

列表中的元素包含另一个list时,若想要取内嵌list元素的值,可将list看做二维数组来进行取值,如下面取s列表中php的值,可写成:

1
2
s=['python','java',['asp', 'php'],'scheme']
print(s[2][1])

元组tuple

tuple是一种有序的列表,元组一旦初始化就不能修改,tuple一旦被定义,其元素就必须要确定下来。

形式如同name=('Zhangsan','Lisi','Wangwu'),指的是定义一个name元组,name为该元组的名称,与list类似,但tuple没有append()、insert()这类的方法,获取元素的方法与list相同,但不能给元素赋值。

定义空的tuple

如定义空元组name:name=()

定义只有1个元素的tuple

如定义只有1个元素的元组name:name=(1,)

注意:将只有1个元素的tuple若误写成name=(1),该语句定义的不是元组tuple类型,其实际是指1经过数学小括号运算后,将结果赋给name。

当元组的元素中含有列表时,可以改变元组中的列表元素,此时元组是“可变的”,但其本质上元组没变,改变的是列表。如下列代码改变的是列表中元素的值:

1
2
3
4
name=('Zhangsan','Lisi',['A','B'])
name[2][0]='X'
name[2][1]='Y'
print(name)

此时元组name中的元素变成了('Zhangsan', 'Lisi', ['X', 'Y'])改变的仅是列表中的元素

练习题

请用索引取出下面list的指定元素:

1
2
3
4
5
6
7
# -*- coding: utf-8 -*-

L = [
['Apple', 'Google', 'Microsoft'],
['Java', 'Python', 'Ruby', 'PHP'],
['Adam', 'Bart', 'Lisa']
]

代码如下:

1
2
3
4
5
6
# 打印Apple:
print(L[0][0])
# 打印Python:
print(L[1][1])
# 打印Lisa:
print(L[2][2])

CATALOG
  1. 1. 基本语句
  2. 2. 格式化字符串的三种方法
    1. 2.1. 占位符格式化字符串:
    2. 2.2. format()格式化字符串
    3. 2.3. 用f-string格式化字符串
    4. 2.4. 练习题
  3. 3. 列表list和元组tuple
    1. 3.1. 列表list
    2. 3.2. 元组tuple
    3. 3.3. 练习题