Python基础系列教程3-python笔记

本人在基础阶段的python学习笔记,秉持互联网分享精神为各位同僚特供参考。在记录过程中也参考了很多大佬和机构的笔记。仅供个人学习,尊重劳动成果。


字符串定义

带引号(单,双,三引号都可)的内容就是字符串.

如果字符串本身包含单引号,使用双引号定义; 如果字符串包含双引号可以使用单引号定义; 或者统一使用三引号定义

print('Happy Programmers\' Day to everyone!')
print('*'*3)
***
'*'*3
'***'

字符串的输出和输出

输入 input()
input() 函数得到的内容就是字符串

输出 print() 函数 %s 或者f-string

下标

my_str[num]
python中正数下标从 0 开始
负数下标从-1开始,表示最后一个字符
len()函数
字符串长度
print(len(my_str))

切片

切片语法:
变量[start:end:step],会得到一个新的字符串
start 开始位置的下标
end 结束位置的下标,不包含end 对应的下标
step 步长,下标之间的间隔,默认是1

my_str[:] 得到和原来一样的字符串
my_str[::-1] 字符串的逆置

查找方法

find() & rfind()

find()在字符串中查找是否存在某个字符中
my_str.find(sub_str,start,end)
sub_str:要在字符串中查找的内容,类型str
start:开始位置,从哪里开始查找,默认是0
end:结束的位置,查找到哪里结束,不包含end 对应的下标,默认是Len()
返回值:即方法执行的结果是什么,如果找到 sub_str,返回的sub_str 在my str 中的位置的正数下标
如果没有找到返回-1

rfind即right find,从右查找,返回正数下标

index & rindex()

同find,没有找到报错

扫描二维码关注公众号,回复: 15861362 查看本文章

count()

count(sub_str,start,end)统计出现的次数

检测字母、数字、空格

s=input()
print(s.isalpha())
print(s.isdigit())
print(s.isspace())

set()

a = set(input().split())  
print(sorted(a))  
#本题考试set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

替换方法 replace

my_str.replace(old_str,new_str,count)
count:替换的次数,默认是全部替换
返回值:得到一个新的字符串,不会改变原来的字符串

s=input()
print(s.replace('a*','ab'))

字符串分隔 split()

my_str.split(sub_str, count))
将my_str字符串按照sub_str进行切割
sub_str:按照什么内容切割字符串, 默认是空白字符, 空格, tab键
count:切割几次,默认是全部切割
返回值:列表[]

字符串连接 join()

my_str.join(可选代对象)
可选代对象, str
列表(需要列表中的每一个数据都是字符串类型)
将my_str这个字符串添加到可选代对象的两个元素之间
返回值:一个新的字符串,不会改变原字符串的值

i=1
list=[]
while i:
    s=input()
    if s=='0':
        i=0
    else:
        list.append(s)
l=' '
print(l.join(list))

列表list

求列表中数据元素的个数,即列表的长度
num=len(my_list 2)
print(num)

下标列表和字符串不同的是:字符串不能使用下标修改其中的数据,但是列表可以

List=input().split()
name=input()
print(name in List)

前言

list的常见内置函数

my conclusion:
list.function()直接修改list
fuction(list),返回新的list

  • len() :求列表元素个数
  • max() :求列表最大值
  • min() :求列表最小值
  • sum() :求列表的和
  • sorted() :求排序后的列表序列
  • list() :将其他数据结构转换成列表
my_list = list(range(0, 19, 2))
print(my_list)

print(list('ddd'))
#['d', 'd', 'd']
  • any() :只要列表里有一个True就会返回True
  • all():表里的所有元素都是True才会返回True
  • enumerate() :可以配合for loop使用提取列表元素的位置信息
  • 输出列表首尾
num_list=[]
for i in range(10,51):
	num_list.append(i) 
print(num_list) 
print(num_list[0],num_list[-1])
my_list = list('Python')

计数count()

list=input().split()
print(list.count('0'))

查找index()

list=input().split()
print(list.index('NiuNiu'))

list的推导式

list=[推导语句 for i in list] ,可以省略append和创建空list这两个步骤。

list=input().split()
name=input()
list.pop(list.index(name))
#list= [i for i in list if i!=name]
#list.remove(name)
print(list)


my_list = [i for i in range(1,51) if i %5 ==0]
for i in my_list:
    print(i)

遍历

my_list = ['郭德纲', '于']
for i in my_list:
	print(i)

print('*'* 30)
   
j=0
while j < len(my_list):
	print(my_list[j])
	j += 1

enumerate 函数

enemerate 将可迭代序列中元素所在的下标和具体元素数据组合在一块,变成元组

my_list = ['a', 'b', 'c', 'd', 'e']

# for i in my_list:
#     print(i)

for i in my_list:
    print(my_list.index(i), i)  # 下标, 数据值


# enemerate 将可迭代序列中元素所在的下标和具体元素数据组合在一块,变成元组
for j in enumerate(my_list):
    print(j)

split()

![[Day03 容器#字符串分隔 split]]

向列表中添加数据

append

append() 方法用于在列表的末尾追加元素,该方法的语法格式如下:
listname.append(obj)
其中,listname 表示要添加元素的列表;obj 表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。

name = ["Niumei", "YOLO", "Niu Ke Le", "Mona"]
friends = []
friends.append(name)
food = ["pizza", "fish", "potato", "beef"]
friends.append(food)
number = [3, 6, 0, 3]
friends.append(number)
print(friends)

extend

extend() 和 append() 的不同之处在于:extend() 不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中。
extend() 方法的语法格式如下:
listname.extend(obj)
其中,listname 指的是要添加元素的列表;obj 表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等,但不能是单个的数字。

insert

insert() 的语法格式如下:
listname.insert(index , obj)
其中,index 表示指定位置的索引值。insert() 会将 obj 插入到 listname 列表第 index 个元素的位置。
当插入列表或者元祖时,insert() 也会将它们视为一个整体,作为一个元素插入到列表中,这一点和 append() 是一样的。

1.  l = ['Python', 'C++', 'Java']
2.  #插入元素
3.  l.insert(1, 'C')
4.  print(l)

6.  #插入元组,整个元祖被当成一个元素
7.  t = ('C#', 'Go')
8.  l.insert(2, t)
9.  print(l)

11.  #插入列表,整个列表被当成一个元素
12.  l.insert(3, ['Ruby', 'SQL'])
13.  print(l)

15.  #插入字符串,整个字符串被当成一个元素
16.  l.insert(0, "http://c.biancheng.net")
17.  print(l)

输出结果为:
[‘Python’, ‘C’, ‘C++’, ‘Java’]
[‘Python’, ‘C’, (‘C#’, ‘Go’), ‘C++’, ‘Java’]
[‘Python’, ‘C’, (‘C#’, ‘Go’), [‘Ruby’, ‘SQL’], ‘C++’, ‘Java’]
[‘http://c.biancheng.net’, ‘Python’, ‘C’, (‘C#’, ‘Go’), [‘Ruby’, ‘SQL’], ‘C++’, ‘Java’]

列表中的删除操作

del:根据索引值删除元素

del 可以删除列表中的单个元素,格式为:
del listname[index]
其中,listname 表示列表名称,index 表示元素的索引值。

del 也可以删除中间一段连续的元素,格式为:
del listname[start : end]
其中,start 表示起始索引,end 表示结束索引。del 会删除从索引 start 到 end 之间的元素,不包括 end 位置的元素。

pop():根据索引值删除元素

Python pop() 方法用来删除列表中指定索引处的元素,具体格式如下:
listname.pop(index)
其中,listname 表示列表名称,index 表示索引值。如果不写 index 参数,默认会删除列表中的最后一个元素

num = eval(input())
stack = [1, 2, 3, 4, 5]
for _ in range(2):
    stack.pop()
    print(stack)
stack.append(num)
print(stack)

remove():根据元素值进行删除

根据元素本身的值来进行删除操作。
需要注意的是,remove() 方法只会删除第一个和指定值相同的元素,而且必须保证该元素是存在的,否则会引发 ValueError 错误。

str1=input()
list1=str1.split()
str2=input()
list2=str2.split()
for i in list2:
    list1.remove(i)
print(list1)

clear():删除列表所有元素

列表排序和逆置

sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list;reverse() 函数没有返回值,但是会对列表的元素进行反向排序。

sort排序

sort()函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。默认是正向排序。
reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。

list = [2, 3, 4, 5, 1]
list.sort()
print(list)
 #[1, 2, 3, 4, 5]

sorted排序

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
sorted 语法:
sorted(iterable[, cmp[, key[, reverse]]])
参数说明:

  • iterable – 可迭代对象。
  • cmp – 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)
my_list = ["P", "y", "t", "h", "o", "n"]
print(sorted(my_list))
print(my_list)
my_list.sort(reverse=True)
print(my_list)

reverse反转排序

reverse() 函数没有返回值,但是会对列表的元素进行反向排序。

list = [2, 1, 3, 5, 4]
list.reverse()
print(list)#[4, 5, 3, 1, 2]

列表中字典排序

![[Day06 函数与文件#列表中字典排序]]

列表嵌套

school_names=[['北京大学''清华大学']['南开大学''天津大学''天津师范大学门']['山东大学''中国海洋大学']]
print(school._names[I]#['南开大学','天津大学','天津师范大学']
print(school_names[1][1]#天津大学
print(school_names[1][1][1]#津

for schools in school names:
#print(schools)#列表
	for name in schools:
		print(name)

列表推导式

列表推导式, 为了快速的生成一个列表

# 1. 变量 = [生成数据的规则 for 临时变量 in xxx]
# 每循环一次,就会创建一个数据
my_list = [i for i in range(5)]
print(my_list)  # [0, 1, 2, 3, 4]

my_list1 = ['hello' for i in range(5)]
print(my_list1)

my_list2 = [f'num:{
      
      i}' for i in my_list]
print(my_list2)
my_list3 = [i+i for i in range(5)]
print(my_list3)

# 2. 变量 = [生成数据的规则 for 临时变量 in xxx if xxx]
# 每循环一次,并且if条件为True,生成一个数据
my_list = [i for i in range(5) if i % 2 == 0]
print(my_list)  # [0, 2, 4]

# 3. 变量 = [生成数据的规则 for 临时变量 in xxx  for j in xxx]
# 第二个for 循环 循环一次,生成一个数据
my_list4 = [(i,j) for i in range(3) for j in range(3)]
print(my_list4)

[0, 1, 2, 3, 4]
['hello', 'hello', 'hello', 'hello', 'hello']
['num:0', 'num:1', 'num:2', 'num:3', 'num:4']
[0, 2, 4, 6, 8]
[0, 2, 4]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

案例: 分配办公室

import random
schools=[[],[],[]]
teachers=['a','b','c','d','e','f','g','h']
for teacher in teachers:
    num=random.randint(0,2)
    schools[num].append(teacher)
print(schools)
for office in schools:
    print(f'该办公室有{
      
      len(office)}个教师,分别是:')
    for teacher in office:
        print(teacher,end='')
    print()

元组tuple

元组和列表(list)的不同之处在于:

  • 列表的元素是可以更改的,包括修改元素值,删除和插入元素,所以列表是可变序列;
  • 而元组一旦被创建,它的元素就不可更改了,所以元组是不可变序列。

从形式上看,元组的所有元素都放在一对小括号( )中,相邻元素之间用逗号,分隔,如下所示:
(element1, element2, … , elementn)

当创建的元组中只有一个字符串类型的元素时,该元素后面必须要加一个逗号,,否则 Python 解释器会将它视为字符串。(数据元素同)

元组支持下标和切片

tuple()将列表转为元组

a=input()
b=input()
c=a,b
#单个变量赋值时,自动将右边多个变量值打包成元组
print(c)


# print(tuple([input(),input()]))
# print((input(),input()))
t = input(),input()
print(t)
# 可以将列表转换成tuple,也可以直接()创建tuple,或者将多个变量赋值给一个值会自动转换成tuple

try- except代码块

entry_form=('Niuniu','Niumei')
print(entry_form)
try:
    entry_form[1]='Niukele'
except:
    print("The entry form cannot be modified!")
x=tuple(input().split())  
print(x[0:3])

c=tuple('abcdefg')
print(c)
# ('a', 'b', 'c', 'd', 'e', 'f', 'g')
t = tuple(['Tom', 'Tony', 'Allen', 'Cydin', 'Lucy', 'Anna'])
print(t,'Congratulations!' if input() in t else 'What a pity!',sep='\n')
a=tuple(list(range(1,6)))
print(a,len(a),sep="\n")
b=tuple(list(range(6,11)))
print(a+b,len(a+b),sep="\n")

猜你喜欢

转载自blog.csdn.net/qq_44029998/article/details/129218887