[Python笔记_2]循环、字符串、列表、函数、异常处理

文章目录

  • 1 循环
    • 1.1 循环
    • 1.2 for-in循环
    • 1.2 while循环
    • 1.3 嵌套循环
      • 1.3.1 九九乘法表
      • 1.3.2 输入一个正整数,判断其是不是素数
  • 2 字符串
    • 2.1 字符串的定义
    • 2.2 字符串的运算
      • 2.2.1 拼接
      • 2.2.2 重复
      • 2.2.3 比较运算
      • 2.2.4 获取长度:len()
    • 2.3 索引
      • 2.3.1 正序索引
      • 2.3.2 倒序索引
    • 2.4 切片
    • 2.5 字符串的办法
      • 2.5.1 首字母变大写
      • 2.5.2 每个字母变大写
      • 2.5.3 每个字母变小写
      • 2.5.4 查找操作:index()\find()
      • 2.5.5 格式化字符串
      • 2.5.6 修剪操作
  • 3 列表
    • 3.1 列表运算符
      • 3.1.1 列表的拼接
      • 3.1.2 列表重复
      • 3.1.3 列表的成员运算:in\not in
    • 3.2 索引
    • 3.3 切片
    • 3.4 比较运算
    • 3.4 列表的循环遍历
    • 3.5 列表的方法
      • 3.5.1 添加元素
      • 3.5.2 append():在列表的尾部添加元素
      • 3.5.3 复制快捷键:Ctrl + D
      • 3.5.4 insert():在制定的索引位置添加元素
      • 3.5.5 删除列表中元素:del、pop、remove
    • 3.6 列表中某个元素的位置和出现的次数
      • 3.6.1 位置:index()
      • 3.6.2 次数:count()
      • 3.6.3 排序:sort()、reverse()
    • 3.7 列表生成式
      • 3.7.1 普通方式
      • 3.7.2 使用列表生成式
  • 4 函数
    • 4.1 计算1到N的和
  • 5 异常处理
    • 5.1 练习1
  • 6 元组
    • 6.1 定义组元
      • 6.1.1 定义一个一元组
      • 6.1.2 二元组
    • 6.2 拼接
    • 6.3 重复
    • 6.4 成员运算
    • 6.5 索引
    • 6.6 切片
    • 6.7 创建空元组
    • 6.8 元组的打包和解包
    • 6.8.1 打包
    • 6.8.2 解包
    • 6.9 交换两个变量的值

1 循环

1.1 循环

for-in循环:确定具体次数的循环
while循环:不确定要循环多少次

1.2 for-in循环

total = 0
# range(a,b)函数[a,b)左闭右开
for i in range(1, 101):
    total += i
print(total)

range()函数:左闭右开的区间

只写一个数字,默认左侧为0
range(101):产生0-100之间的整数
range(2,101):产生2-100之间的整数
range(0,101,2):产生0-100之间的偶数(设置了步长——2)

for i in range(0, 101, 2):
    print(i)

1.2 while循环

1、一个死循环

i = 0
while i >= 0:
	i += i

2、while使用的示例

sum = 0
flag = True
i = 1
while flag:
    if i <= 100:
        sum += i
        i += 1
    else:
        flag = False
print(sum)

break:终止break所在循环
continue:终止当前本次循环,进入下一次循环

for i in range(1, 101):
    if i == 50:
        # break
        continue
    else:
        print(i)

1.3 嵌套循环

1.3.1 九九乘法表

for i in range(1, 10):
    for j in range(1, i + 1):
        # print('%d X %d = %d'%(i,j,i*j))
        # print('{}*{}={}'.format(i,j,i*j)) #两行作用一样,但是都在一列(需要更改最后一个默认字符)
        # 修改print()的end参数
        print('{} * {} = {}'.format(i, j, i * j), end='\t')
    # 每行打印完成之后换行
    print()

1.3.2 输入一个正整数,判断其是不是素数

num = int(input('输入一个正整数:'))
judge = False
if num == 1 or num == 2:
    print('{}是素数'.format(num))
else:
    for i in range(2, num // 2 + 1):
        if num % i == 0:
            print('%d不是素数' % num)
            judge = True
            break
        else:
            continue
            # print('{}是素数'.format(num))
            # 问题:为什么这里不会循环输出{}是素数?
    if not judge:
        print('%d是素数' % num)

2 字符串

2.1 字符串的定义

由零个或者多个字符组成的有限序列
在Python中,单个或者多个字符由单引号或双引号引起来的,就叫做字符串

s1 = 'Hello,World!'
s2 = 'Violets'

2.2 字符串的运算

2.2.1 拼接

s1 = 'Hello,World!'
s2 = 'Violets'

print(s1 + s2)
print(s1 + '!')

2.2.2 重复

s1 = 'Hello,World!'
s2 = 'Violets'

print(s1 * 3)

2.2.3 比较运算

1、ASCII码比较大小

print('a' > 'b')
print('boy' > 'girl')

2、ord()将字符转换成ASCII码

print(ord('a'), ord('o'))
print(ord('李'))

3、成员运算:in\not in

s1 = 'abcd'
print('a' in s1)
print('c' not in s1)

2.2.4 获取长度:len()

print(len(s1))

2.3 索引

2.3.1 正序索引

s1 = 'abcd'
print(s1[2])

2.3.2 倒序索引

print(s1[-1])
# 结果是d
print(s1[-4])
# 结果是a

2.4 切片

默认步长为1
切片也是左闭右开区间
第一个冒号前不写参数,默认从0开始
第一个冒号后不写参数,默认取到字符串末尾

s2 = '醉里挑灯看剑,梦回吹角连营。'
print(s2[0:])
print(len(s2))

print(s2[3:7])
# 第三个参数也是步长
print(s2[::2])
# 倒取
print(s2[-1:-11:-2])

# 循环遍历字符串
# 输出字符串的每个元素
for i in s2:
    print(i)
# 输出字符串每个位置索引
for i in range(len(s2)):
    print(i)

for i in range(len(s2)):
    print(i,s2[i])

2.5 字符串的办法

s3 = 'Hello!World!'

2.5.1 首字母变大写

# 将字符串首字母变大写:capitalize()
print(s3.capitalize())

2.5.2 每个字母变大写

# 将字符串每个单词的首字母变大写
print(s3.title())

# 将字符串所有字母变大写
a = s3.upper()
print(a)

2.5.3 每个字母变小写

# 将字符串所有字母变小写:lower()
print(a.lower())

2.5.4 查找操作:index()\find()

# index()\find()默认从左向右查找,查找到元素立即停止
print(s3.index('l'))
# index()找不到元素报错:ValueError: substring not found
# print(s3.index('a'))

# find()
# find()找不到元素,返回-1
print(s3.find('l'))
print(s3.find('a'))
# find()可以指定从索引N的位置开始查找
print(s3.find('l', 4))
# rfind()从右往左开始查找
print(s3.rfind('d'))

2.5.5 格式化字符串

s3 = 'hello world'
# center()将字符串补成长度为N的字符串,空白位置用指定字符串补全,原字符串放入现字符串中间位置
print(s3.center(20, '*'))
# rjust()
print(s3.rjust(20, '*'))
# ljust()
print(s3.ljust(20, '*'))

2.5.6 修剪操作

s = '          hello world                \n\t'
# strip()将字符串左右两边的空格,转义字符去掉
print(s.strip())

3 列表

列表是一系列元素按照一定的顺序进行的排列
列表中可以存多种数据
列表中可以存重复数据

一行代码多行显示,使用反斜杠\连接

list = ['hello world', 2022, 6, \
        16, 3.1415, [1, 2, 3], \
        {10, 20}, {'name': '张三'}]

3.1 列表运算符

list1 = [10, 20, 30]
list2 = ['a', 'b', 'c']

3.1.1 列表的拼接

print(list1 + list2)

3.1.2 列表重复

print(list1 * 3)

3.1.3 列表的成员运算:in\not in

print(10 in list1)

3.2 索引

print(list1[0])
print(list1[-1])

3.3 切片

list3 = [10, 20, 30, 40, 50, 60, 70, 80]
print(list3[:])

print(list3[2:5])
print(list3[::2])
print(list3[-1:-7:-1])
print(list3[-1::-1])

3.4 比较运算

'>'not supported between instance of 'int' and 'str'
list1 = [10, 20, 30]
list2 = ['a', 'b', 'c']
print(list1 > list2)

两个列表比较大小,比较的是列表相同索引位置元素的大小
比较大小的两个列表相同索引位置的元素必须是同数据类型

list1 = [10, 20]
list2 = [20, 30]
print(list1 > list2)

3.4 列表的循环遍历

for i in list1:
        print(i)
# 两个循环不要写在一起了
# for i in range(len(list1)):
#         print(i)
#         print(i, list1[i])

3.5 列表的方法

3.5.1 添加元素

list3 = []

3.5.2 append():在列表的尾部添加元素

list3.append(10)
list3.append(10)

3.5.3 复制快捷键:Ctrl + D

list3.append('Python')
print(list3)

3.5.4 insert():在制定的索引位置添加元素

list3.insert(0, 'java')
print(list3)

3.5.5 删除列表中元素:del、pop、remove

# del
# 删除指定的索引位置元素
del list3[0]
print(list3)

# pop():将删除元素存在某个元素中
a = list3.pop(0)
print(list3)
print(a)

# remove():删除列表中具体的某个元素
list3.remove('Python')
print(list3)

3.6 列表中某个元素的位置和出现的次数

3.6.1 位置:index()

list4 = ['abc', 10, 50, 80, 40]
# index()
print(list4.index('abc'))
# # 不在列表中的元素,index()报错
# print(list4.find(10))

3.6.2 次数:count()

# count():没有输出0
print(list4.count(10))
print(list4.count(30))

3.6.3 排序:sort()、reverse()

list5 = [10, 90, 40, 20, 70]
# sort():默认从小到大排序
list5.sort()
print(list5)
# reverse():倒序排列
list5.reverse()
print(list5)

3.7 列表生成式

3.7.1 普通方式

list6 = []
for i in range(1, 11):
        list6.append(i)
print(list6)

3.7.2 使用列表生成式

list7 = [i for i in range(1, 11)]
print(list7)

4 函数

函数是将相对独立的一部分代码封装起来
def是定义函数的关键字、fac函数名、num要传的参数

def fac(num):
    pass

pass保持代码结构的完整性,不参与程序的执行

fac(12)

# 示例,没有执行

4.1 计算1到N的和

def total(num):
    sum = 0
    for i in range(1, num + 1):
        sum += i
    print(sum)
    return sum

total(100)
# return 将函数内部结果返回到外部,不写return则在外部调用函数内数据的结果为空(none)
a = total(1000)
print(a)

5 异常处理

在某些语句正确的情况下,可能会出现错误结果,为了保证程序不会终止运行,引入了异常处理

错误案例:

try……except……finally
num = int(input('请输入一个整数:'))
print(num)
# ValueError: invalid literal for int() with base 10: 'abc'

try案例:

    num = int(input('请输入一个整数:'))
    print(num)
except Exception as error:
    print(error)
    # invalid literal for int() with base 10: 'abc'
    print('出现异常')
finally:
    print('程序结束')
# fianlly下面的代码无论是否出现异常,最终都会被执行

5.1 练习1

list1 = [10, 20, 30, 'abc', 20, 'UFO']
for i in list1:
    try:
        a = i / 10
        print(a)
    except Exception as err:
        print(err)
        continue

6 元组

容器型数据类型
tuple
一元组、二元组、多元组

6.1 定义组元

6.1.1 定义一个一元组

tuple_1 = (25,)
print(type(tuple_1))
# type()获取数据类型的方法

创建一元组不加逗号都不是一元组

tuple_2 = (25)
print(type(tuple_2))
tuple_3 = ('abc')
print(type(tuple_3))

6.1.2 二元组

tuple_2 = (10, 20)

# 获取元组长度len()
print(len(tuple_2))

6.2 拼接

t1 = (20,)
t2 = (30, 10)
print(t1 + t2)

6.3 重复

print(t1 * 3)

6.4 成员运算

print(10 in t2)

6.5 索引

print(t2[0])
print(t2[-1])

6.6 切片

t3 = (10, 20, 30, 40, 50)
print(t3[:])
print(t3[2:4])
print(t3[::2])
print(t3[-1:-6:-1])

6.7 创建空元组

t4 = ()
print(type(t4))
# 元组是不可变类型,一旦创建,不可再更改,即不能进行添加,删除等类似操作

6.8 元组的打包和解包

6.8.1 打包

a = 1, 2, 3
print(a, type(a))

6.8.2 解包

# 等号左边变量数量要和需要打包的元组长度相等
i, j, z = a
print(i, j, z)
# 错误示例1
# ValueError: too many values to unpack (expected 2)
# i, j = a
# print(i, j)
# 错误示例2
# 等号左边变量数量大于元组长度
# i, j, z, h =a
# print(i, j, z, h)
# ValueError: not enough values to unpack (expected 4, got 3)

# 星号表达式:用来解决等号左边变量数量不足
# 优先考虑没有星号的变量,最好考虑有星号的变量
b = (1, 2, 3)
i, *j = b
print(i, j)

c = (1, 2, 3, 4)
i, *j, z = c
print(i, j, z)

i, j, *z = c
print(i, j, z)

6.9 交换两个变量的值

i = 1
j = 2
# C语言版本
z = i
i = j
j = z
print(i, j)

# Python版本
i, j = j, i
print(i, j)

你可能感兴趣的:(Python笔记,python,开发语言)