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:
        break
    i+=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]) # nerouggnohzihsow

list1 = [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'))  -1

print(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 Sjk

print(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))  #  hello

print(str1.rjust(10,'.'))  # .....hello/

print(str1.center(10,'.')) # ..hello...

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

str1 = 'hello'

print(str1.startswith('j'))  # False

print(str1.startswith('h')) # true

print(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) # True

print('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 10

def fn3(a,b):
    return a + b

fn3(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 = 10

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

fn()

print(a) # 20

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

def fn():
    return 1,2

print(fn())  # (1,2)

44 函数的参数 :

def fn(a,b,c=20):  # c=20 为默认参数
    return a + b + c

fn1 = 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 = c

print(a,b) # 20 10

a ,b = 1,2

a,b = b,a

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

a = 10
b = a

print(id(a))# 140735238118104
print(id(b))# 140735238118104

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

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

a = [1,2,3,4,5,6]
b = a

print(id(a)) #  2230564016512
print(id(b))  #  2230564016512

b[2] = 10
print(id(a))  #  2230564016512
print(id(b))  #  2230564016512

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

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

49 可变和不可变类型:

可变类型:  列表 字典 集合 

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

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

def fn(num):
    if num ==1:
        return 1
    return 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)) # 3

fn3 = 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*2

result = 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+b

result = 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)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值