python基础

1.字符串输入:使用input()函数

1
2
3
4
5
6
7
8
x=input()
y=input()
print(x+y)
#输入:5 4
输出:54("+"对于字符串进行拼接)

name=input("请输入姓名:")#input()中添加文本对所要输入的信息进行提示
print(name)

2.列表(list)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
List=['A','B','C']
print(List)
print(len(List))#获取列表的长度
print(List[-1])#获取列表表尾的元素
print(List[-2])#获取列表倒数第二个元素

#列表的插入
List.append('D')#列表尾部插入
List.insert(2,'F')#列表指定位置插入
List.pop()#列表尾部元素删除
List.pop(2)#删除列表指定索引处的元素
print(List)
List.remove('A')#一次remove()只删除一个,若有多个,要多次使用remove()函数
print(List)

3.元组(tuple)

tuple一旦初始化就不能修改

1
2
3
4
5
tuple=(2,3,4)#定义元组并初始化
print(tuple)
tuple2=(2,)#定义单元组
tuple3=(2)#由于出现歧义,tuple3为2这个数
print(tuple2,tuple3)

4.for ….in….循环:可以用于遍历元组或列表

1
2
3
4
5
6
7
8
9
List=['A','B','C']
for i in List:#遍历列表
print(i)
print(list(range(5)))#range(5)生成一个从0开始小于5的整数序列
#list()将这个整数序列转换成列表
sum=0
for i in range(101):#计算从0加到100的值
sum+=i
print(sum)

5.字典(dict)

使用键-值(key-value)存储,具有极快的查找速度

字典的创建
1
2
3
4
5
6
Dict={'A':1,'B':2,'C':3}#创建字典
Dict['A']=4#修改key对应的值
print('D' in Dict)#判断字典key是否存在
Dict.pop('A')#按key删除 或可用:del Dict['A']
print(Dict)#注:字典中的key是不可变的对象
Dict['D']=4#向字典中添加键值对
字典的遍历
1
2
3
4
5
6
7
8
9
10
for key,val in Dict.items():#以键值对的形式遍历字典
print(key,val)
for key in Dict.keys():#遍历字典的键,其中.keys()可省略
print(key)
for val in Dict.values():#遍历字典中的值
print(val)
for key in sorted(Dict.keys()):#在遍历前对字典的键的列表排序
print(key)
for val in set(Dict.values()):#在遍历前对字典的值的列表去重
print(val)

dictionary.get(key, default)

  • dictionary 是要获取值的字典对象。
  • key 是要查找的键。
  • default 是一个可选参数,表示如果键在字典中不存在时,返回的默认值。如果不提供 default 参数,默认值为 None
1
2
3
4
5
6
7
8
9
10
11
12
13
fruits = {'apple': 3, 'banana': 2, 'orange': 5}

# 获取键 'apple' 对应的值
print(fruits.get('apple')) # 输出: 3

# 获取键 'grape' 对应的值,由于 'grape' 不在字典中,返回默认值 0
print(fruits.get('grape', 0)) # 输出: 0

# 不提供默认值,'grape' 不在字典中,返回 None
print(fruits.get('grape')) # 输出: None

# 可以省略默认值参数,将返回 None
print(fruits.get('kiwi')) # 输出: None

6.集合(set)

重复的元素在set中会被自动过滤

1
2
3
4
5
6
7
8
s=set([1,2,2,3,3])#创建一个set,使用list作为输入集合
print(s)#输出{1, 2, 3},相同的元素被过滤
s.add(4)#向集合中添加元素
s.remove(1)
print(s)#输出{2,3,4}
s2=set([1,2,3])
print(s&s2)#集合取交集
print(s|s2)#集合取并集

7.字符串(str)

str是不可变对象

1
2
3
a='abc'
print(a.replace('a','A'))#输出Abc
print(a)#输出abc,不可变对象本身永远是不可变的

8.函数的默认参数

1
2
3
4
5
6
7
8
9
def enroll(name, gender, age=6, city='Beijing'):#把年龄和城市设为默认参数
print('name:', name)
print('gender:', gender)
print('age:', age)
print('city:', city)

#只有与默认参数不符的学生才需要提供额外的信息
enroll('Bob', 'M', 7)
enroll('Adam', 'M', city='Tianjin')#不按顺序提供部分默认参数时,需要把参数名写上

9.函数的可变参数

可变参数就是函数传入的参数个数是可变的

注:可变参数通过创建一个元组将传入的参数封装到元组中,即使函数只收到一个值也是如此。

1
2
3
4
5
6
7
8
9
def calc(*numbers):#计算:a*a+b*b+c*c+……
sum = 0
for n in numbers:#numbers是元组
sum = sum + n * n
return sum

print(calc(1, 2))
nums = [1, 2, 3]
print(calc(*nums))#在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去

10.函数upper()、title()、lower()

upper():全字母大写

title():首字母大写

lower():全字母小写

注:以上方法是非永久性改变,不会改变变量的值

1
2
3
4
5
6
cars=['audi','bmw','subaru','toyota']
for car in cars:
if car=='bmw':
print(car.upper())#car为bmw时以大写输出
else:
print(car.title())

11.函数的列表参数

列表作为参数传给函数,函数可以对列表做出永久性修改

1
2
3
4
5
6
7
8
def fun(List):
i=0
for x in List:
List[i]=x.lower()
i+=1
List=['A','B','C']
fun(List)
print(List)#输出['a', 'b', 'c']

传入列表的副本,原始列表不做修改

1
2
3
4
5
6
7
8
def fun(List):
i=0
for x in List:
List[i]=x.lower()
i+=1
List=['A','B','C']
fun(List[:])#切片表示法创建副本
print(List)#输出['A', 'B', 'C']

12.列表生成式

1
2
3
4
5
6
7
8
print([x * x for x in range(1, 11) if x % 2 == 0]) #筛选出仅偶数的平方

print([m + n for m in 'ABC' for n in 'XYZ'])#使用两层循环,可以生成全排列

import os
print([d for d in os.listdir('.')])#列出当前目录下的所有文件和目录名

print([x if x % 2 == 0 else -x for x in range(1, 5)])#生成表达式的if……else……,输出[-1, 2, -3, 4]

13.split()函数

split():通过指定分隔符对字符串进行切片,将字符串切片后的结果存放在列表中。

str.split(str=””, num=string.count(str))

  • str — 分隔符,默认为空白格。
  • num — 分割次数。
1
2
3
4
5
6
7
8
9
10
11
12
str = "Line1-abcdef,\nLine2-abc,\nLine4-abcd"
str.split(',')
out:
['Line1-abcdef', '\nLine2-abc', '\nLine4-abcd']

str = "Line1-abcdef \nLine2-abc \nLine4-abcd"
str.split( )
str.split(' ', 1 )#分割次数为1次
out:
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']#以空白格分割,自动去除回车
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']

rstrip(): 删除字符串末尾的指定字符,默认为空白符

1
2
3
4
5
6
7
#分割字符串列表
str=['1,a\n','2,b\n','3,c\n']
tokens=[l.rstrip().split(',') for l in str]
tokens

out:
[['1', 'a'], ['2', 'b'], ['3', 'c']]

14.文件操作函数

os.makedirs(): 这是一个用于递归创建目录的函数。它接受一个路径作为输入,并创建路径中所有缺失的目录

exist_ok=True: 这是os.makedirs()函数的一个可选参数。当设置为True时,如果目标目录已经存在,函数不会引发错误,而是默默地继续执行。

1
os.makedirs(os.path.join('..', 'data'), exist_ok=True)#创建一个名为"data"的目录,该目录位于当前工作目录的父目录中

shutil.copy():用于将源文件的内容复制到目标文件或目录

1
shutil.copy(filename, target_dir)#将filename文件复制到target_dir目录中。