您的位置:首页 > 汽车 > 新车 > python基础

python基础

2024/7/6 19:49:05 来源:https://blog.csdn.net/h960822/article/details/139608354  浏览:    关键词:python基础

1 注释:

# 用来标识单行注释   “”“  用来标识多行注释 ”“”

2 变量:

存储数据的时候给当前数据所在的内存地址起个名字。

3 定义变量:  不能以数字开头,不能是关键字

myName = 'haotaotao'

print(myName) // haotaotao 

4 数据类型:

a = 10  #  int

b = 10.0 # float

c = '123' # str

d = True # bool

e = [1,2,3,4] # list

f = (1,2,3,4,5) # tuple

g = {1,2,3,4,5} # set

h = {'name':'zs'} # dict

5 格式化输出:

%s : 字符串     %d :十进制整数     %f :浮点数

name = 'zs'  print('我的名字是%s', % name)

age = 12 print('我的年龄是%d',% age)    print('补全三位数%03d',%age) # 012

height = 164.3445  print('我的身高是%.2f', %height)  代表保留两位

print('我的名字是%s,年龄是%d,身高是%f',% (name,age,height))

f 格式化字符串: python3.6新增的语法

print(f'我是{name},年龄是{age},身高是{height}')

6 转义字符:

\n 换行     \t 4个空格的距离  

print(‘Hello\nWord’)

print('hello', end = '\n')  print语句中默认自带一个\n的换行符  如果把 end='\t'或者是end='...', 那么他

们就是根据 空格 或者是 ... 来进行链接了。

7 输入的语法

input('提示信息 输出的是字符串') #  str 类型的

8 数据类型的转化

int('111') # 转换后 类型 int

float(10)# 10         float('10') # 10

str(10)  #  '10'            tuple([1,2,3,4]) # (1,2,3,4)

list((1,2,4,5))  #  [1,2,4,5]

eval('1') # 1                eval('1.1') # 1.1         eval('[1,2,3,4]')  # [1,2,3,4]

9 运算符:

+    -   *   /    //   %  **    ()

1+1=2   2-1=1  3*3=9   10/2=5   10//3=3  10%3=1   2**4=16

10 赋值运算符:

=

num ,num 1 = 1 ,2

num = 1 

a = b = 100  # a = 100  b=100   

11 复合赋值运算符

+=    -=    *=     /=     //=    %=    **=

如果存在:   a = 10  a+=10+2  这个时候是先算10+2  然后再算 a+=12 

12 比较运算符:

>    <   >=   <=   !=    and(都真才真)  or(有一个是真就为真)   not(取反)  

数字使用and or    0and1 输出0   1and2输出2   2and3输出3   0or1输出1   1or2输出1 

13  条件语句:  3>5and5<6  可以简写为   3>5<6

if 3>5:

        print('条件成立')

elif 3>5:

        print('条件成立')
else:

        print('条件不成立')

14 三目运算符: 

a = 10  b = 20 

c = a if a > b else b   # 执行的过程 如果a>b 那么c=a  否则 c = b 

15 while循环语句: 如果遇到break 則後面的else代碼就不會輸出了,否则就会正常输出

i = 0

while i < 5:

        print('循环')

        i+=1

while i<10:print(i)if i==5:breaki+=1
else:print('woshuchulema')

16 循环语句:正常结束之后else语句也会输出 如果入到break则else不会输出了

for i in range(0,10):print(i)
else:print('我会输出吗')

17:切片的使用:第一个参数开始的索引,第二个参数结束的索引,第三个参数步长,默认是1

str1 = 'woshizhongguoren'
print(str1[0:6])  # woshiz
print(str1[0:6:2]) # wsi
print(str1[::-1]) # nerouggnohzihsowlist1 = [1,2,3,4]
print(list1[0:2])tuple1 = (1,2,3,4)
print(tuple1[0:2])

不支持 集合和字典 

18 常见的查找方法:find只适用于字符串 找到返回对应的索引,找不到返回-1; index也是用于查找如果找不到对应的就会报错。

str1 = '12345678'print(str1.find('2')) 1
print(str1.find('0'))  -1print(str1.index('8'))  7
print(str1.index('0'))  报错

19  count用于查找字符串列表 元组 中某个元素出现的次数, 集合和字典不能使用:

str1 = '12345678111'
list1 = [1,2,3,2,1,2,3,4,32,1]
tuple1 = (1,2,1,2,3,2,1,2)
set1 = {1,1,2,3,3,4}print(str1.count('1'))
print(list1.count(1))
print(tuple1.count(1))

20  replace字符串的替换操作,只存在字符串:

str1 = '12345678111'         print(str1.replace('1','0'))

21  字符串的分割成列表

str1 = '1-2-3-4-5-6-7-8-1-1-1'print(str1.split('-'))  # ['1', '2', '3', '4', '5', '6', '7', '8', '1', '1', '1']

22  capitalize()将字符串第一个字母转化为大写 , title()将字符串的每个字母的第一个大写

str2 = 'abc jsdb sjk'print(str2.title()) # Abc Jsdb Sjkprint(str2.capitalize()) # Abc jsdb sjk

23 lower()字符串大写转小写     upper()小写转大写

 str3 = 'asdlsdsdsa'

 print(str3.lower()) # asdlsdsdsa

 print(str3.upper()) # ASDLSDSDSA


24  strip()  lstrip()  rstrip()  去掉空白:

str1 = '  21  32  43212   '、print(str1.lstrip()) print(str1.rstrip())print(str1.strip())

25  ljust()   rjust()  center()  填充字符串

str1 = 'hello'print(str1.ljust(10))  #  helloprint(str1.rjust(10,'.'))  # .....hello/print(str1.center(10,'.')) # ..hello...

26 startwith() endwith()判断是否以什么开始或结束

str1 = 'hello'print(str1.startswith('j'))  # Falseprint(str1.startswith('h')) # trueprint(str1.endswith('o')) # True

27  isalpha() 字符串至少有一个字符是字母,并且其他字符也都是字母才返回true

      isdigit()字符串都是数字 返回True 否则返回false

      isspace()只包含空字符串返回True

28 len访问长度,所有类型的数据都可以访问

str1 = '1-2-3-4-5-6-7-8-1-1-1' list1 = [1,2,3,2,1,2,3,4,32,1]  tuple1 = (1,2,1,2,3,2,1,2)  set1 = {1,1,2,3,3,4} dict1 = {'name':'zs','age':12}print(len(dict1)) print(len(str1)) print(len(list1))print(len(list1))    print(len(set1))

29 in 用来判断是否存在某个元素 , 适用于所有类型的数据, not in  判断不存在 

print('1' in str1) # True  print('1' in list) # True  print('1' in tuple) # Trueprint('name' in dict1) # True

30 列表的方法:追加 append , 合并extend , 插入 insert(), 删除最后一个 pop () 

del()删除指定的元素  remove()删除指定的元素   清空所有的元素 clear()

翻转数组 reverse()   排序 sort()  复制 copy()

list1.append('aa') print(list1) list1.extend(['b','c']) print(list1) list1.pop() print(list1) list1.remove('aa')

print(list1) del list1[0] print(list1)

31  元组:不能被修改的数据 成为元组,元组常见操作

print(tuple1[0])获取元组元素    print(tuple1.index(1)) 获取元素的索引  print(tuple1[10].name = 'ls')  可以修改元组中列表或字典的元素   

32 字典的操作:  增加 修改  获取值 获取所有的key  获取所有的value 

dict1 = {'name':'zs','age':12}dict1['sex'] = 'nan'dict1['name'] = 'ls'print(dict1['name'])print(dict1.get('age'))print(dict1.keys())print(dict1.values())

33  字典的items属性 获取到的是列表的元组格式[(),()]

dict1 = {'name':'zs','age':12}print(dict1.items())   #  dict_items([('name', 'zs'), ('age', 12)])for i,v in dict1.items():  #  dict_items([('name', 'zs'), ('age', 12)])print(i)print(v) 

34 集合 创建空集合只能使用set()如果用{} 则是字典,增加单个元素add ()增加多个update()
     discard() 删除指定的元素   pop()删除某个元素

set1 = {1,1,2,3,3,4}set1.add(5) ,  set1.update({7,8,9}), set1.discard(8)   set1.pop()

35 目标运算符:  

+  拼接  字符串  类别 元组         * 复制 字符串 列表 元组     in 适用所有       not in适用于所有

36 range()生成序列 ,
      如果只有一个参数那就是默认从0开始不包含最后一个,如果是两个参数包前不包后 如果是三
     个最后一个就是步长值

37 enumerate() 将列表转化为元组列表的方法

list1 = [1,2,3,2,1,2,3,4,32,1]a  = enumerate(list1)for i in a:print(i)  #  (0, 1)  (1, 2) (2, 3)

38 容器类型转化:

tuple()可以将任意类型的数据转化为元组 但是字典只是将key转化为了元组

set() 不能转化tuple的类型 但是字典只是将key转化为了元组

list()可以转化任何类型的 但是字典只是将key转化为了元组

39  推导式:

列表推导式: list1 = [ i  for i in range(10)]  看for循环就行 前面的i是返回值也就是[]需要的返回值

带if推导式:list2=[i for i in range(10) i % 2 == 0]  符合i%2=0 的返回 

多个for循环:list3 = [(i,j) for i in range(3 for j in range(6))]  [(1,0),(1,1),(1,2)...]

创建字典:dict1 = {i:i**3  for i in range(10)} {1:1,2:8,...}

两个列表合并为一个字典  dict1 = {list[i]:list2[i]  for i in len(list) }

40  定义函数 :

def fn1():print('woshifun')def fn2():return 10def fn3(a,b):return a + bfn3(10,30)def fn4():a = fn3(10,20)fn2()return a

41 变量的作用域

a = 10  # 全局变量  函数内外都能访问 print(a) # 10 def fn():print(a)fn()  # 10
def fn():a = 10   # 函数内部的变量只能函数自身访问 print(a)fn()
print(a)

42 函数如何修改全局变量的值呢? 通过关键之 global

a = 10def fn():global aa = 20print(a) # 20fn()print(a) # 20

43 函数一次性返回多个数据的类型是元组:

def fn():return 1,2print(fn())  # (1,2)

44 函数的参数 :

def fn(a,b,c=20):  # c=20 为默认参数return a + b + cfn1 = fn(10,10)
print(fn1)
def fn(*args):   # *args元素的集合 print(args) # (1,2,3,4,5,6)fn1 = fn(1,2,3,4,5,6)
print(fn1)
def fn(**kwargs): # 参数是字典的类型print(kwargs) # {'name': 'zs', 'age': 12}fn1 = fn(name='zs',age=12)print(fn1)

45 变量之间的替换:

a = 10
b = 20
c = None
c = b
b = a
a = cprint(a,b) # 20 10

a ,b = 1,2

a,b = b,a

46 了解引用: 基本数据类型 只要值发生改变 id就会变化不一致 

a = 10
b = aprint(id(a))# 140735238118104
print(id(b))# 140735238118104b = 20
print((id(a)))# 140735238118104
print(id(b))# 140735238118424

47 元组 列表 等 都用用的同一个id地址

a = [1,2,3,4,5,6]
b = aprint(id(a)) #  2230564016512
print(id(b))  #  2230564016512b[2] = 10
print(id(a))  #  2230564016512
print(id(b))  #  2230564016512

48  如果是元组 列表重新赋值的话 id地址就不同了 

 a = [1,2,3,4,5,6]b = aprint(id(a)) 2199992914304print(id(b)) 2199992914304b = [1,54,32,65]print(id(a)) 2199992914304print(id(b))  2199992916160

49 可变和不可变类型:

可变类型:  列表 字典 集合 

不可变类型: 整数型 浮点数 字符串 元组

50 递归函数 求三以内的累加和。

def fn(num):if num ==1:return 1return num + fn(num-1)print(fn(3)) # 6

执行过程相当于  rentun num + ladbml 2 : 2 + ladbml 1 : 1 + ladnl  1: 1 等

51 lamdba的参数形式

# 没有参数
fn1 = lambda : 20
print(fn1()) # 20# 有多个参数
fn2 = lambda a,b:a+b
print(fn2(1,2)) # 3fn3 = lambda *args:args
print(fn3(1,2,3,4,5)) # (1, 2, 3, 4, 5)fn4 = lambda **kwargs:kwargs
print(fn4(name='zs',age=12)) # {'name': 'zs', 'age': 12}
fn5 = lambda a,b: a if a >b else b
print(fn5(10,20)) # 如果a>b返回a  否则返回b 

52 字典的排序 

obj = [{'name':'zs','age':12},{'name':'ls','age':11},{'name':'zs','age':14}]
obj.sort(key= lambda key:key['name'])
print(obj)
[{'name': 'ls', 'age': 11}, {'name': 'zs', 'age': 12}, {'name': 'zs', 'age': 14}]
obj.sort(key= lambda key:key['name'],reverse=True)
print(obj) 
[{'name': 'zs', 'age': 12}, {'name': 'zs', 'age': 14}, {'name': 'ls', 'age': 11}]

53 高阶函数:函数的参数是一个函数

def fn(a,b,c):return c(a)+c(b)def fn1(a):return abs(a)result = fn(-10,20,fn1)
print(result)  # 30

54 内置的高阶函数 map reduce  filter 

list1 = [1,2,3,4,5]
def fn(a):return a*2result = map(fn,list1)
print(result) # <map object at 0x000002151179B6A0>
print(list(result)) #  [2, 4, 6, 8, 10] result = map(lambda x:x*2,list1)
print(list(result))  #  [2, 4, 6, 8, 10]
list1 = [1,2,3,4,5]
import functools
def fn(a,b):return a+bresult = functools.reduce(fn,list1)
print(result) # 15 result = functools.reduce(lambda x,b:x+b,list1)
print(result)
list1 = [1,2,3,4,5]
result = filter(lambda x:x<3,list1)
print(list(result)) # [1,2]

55 文件的操作:读  写  追加 

打开文件 open(文件路径,模式)

读文件 :r   如果文件不存在就报错 

f = open('test.txt','r')         print(type(f)) # <class '_io.TextIOWrapper'>           f.close()

写文件:w, 如果文件不存在就创建文件,写入的内容会替换之前的内容

f = open('test1.txt','w',encoding='UTF-8')

f.write('离离原上草') f.write('一岁一孔融')

f.close()

追加文件内容:a  如果文件不存在就创建文件 向内容末尾追加内容 

f = open('test1.txt','a',encoding='UTF-8')f.write('野火烧不尽。春风吹又生')f.close()56 读取文件的内容  read(num)  readline   readlines f = open('test.txt','r',encoding='UTF-8')c = f.read()  # 读取所有内容print(c)f.close()
f = open('test.txt','r',encoding='UTF-8')c = f.readline() # 读取一行内容print(c)f.close()
f = open('test.txt','r',encoding='UTF-8')c = f.readlines() # 读取所有容 ['123435\n', '124332\n', '353443\n', '456544\n']print(c)f.close()

57 seek 移动文件的指针 文件对象.seek(偏移量,起始位置)起始位置包括:(0,1,2) 0 从头 1 当前 2 最后 f为0 a为2

f = open('test.txt','r')

f.seek(2,0)

c = f.read()

print(c)  # 读取的文件 不再是从头开始了 而是从索引为2的开始 

f.close()

58  文件备份  : 获取文件名称 判断格式是否正确 读文件 创建备份文件名 读取文件内容 写入到备份文件

file_name = input('亲 请输入你要备份的文件')# 获取文件的后缀
f = file_name.rfind('.')# 进行判断
if f>0:f1 = file_name[f:]# 获取之前的文件名 + [备份] + 后缀f0 = file_name[:f]# 创建新的文件名new_File_name = f0 + '[备份]' + f1# 读取源文件内容f_c = open(file_name,'r')n_c = open(new_File_name,'a')f_s = f_c.readlines()for i in f_s:n_c.write(i)
else:print('你输入文件错误')

59 文件的重命名 以及操作文件夹


import os

os.rename('test.txt','txt.txt') # 给文件重新命名

os.remove('txt.txt') # 删除文件

os.mkdir('aaa') # 创建文件夹 
os.mkdir('aaa/bbb') # 创建文件夹
os.chdir('aaa')  # 进入到某某文件夹中print(os.getcwd()) # 获取当前文件存在的绝对路径  D:\pythonFile\pythonProject
print(os.listdir()) # 获取当前文件下的所有其他文件包含自己 是一个列表 ['aaa', 'demo.py', 'echarts.py', 'my_package', test[备份].txt', 'webSocket.py', '__pycache__', '基础柱状图.html']

60  批量操作修改所有文件的文件名称:

import os

file_list = os.listdir()

for i in file_list:
        os.rename(i,'python_'+i)

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com