栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python(学习笔记)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python(学习笔记)


1.print()

可以输出数字print(520)

可以输出字符串print('hello word')

含有运算符的表达式print(3+1)#会计算表达式的结果

将数据输出到文件中

fp=open('D:/text.txt','a+')#a+以读写的方式打开文件,a+如果文件不存在就创建,存在就打开继续追加
print('Hello world',file=fp)#要使用file=fp
fp.close()#关闭

不进行换行输出(输出内容在一行当中)

print("hello","world","HFF")

2.转义字符

转义字符就是:反斜杠+想要实现的转义功能首字母

换行n                   回车r                 水平制表符t                    退格b

print("hello nworld")
print("hello tworld")#四个字符一个表格 0_ _ _
print("helloooo tworld")#_ _ _ _ 看\t之前是否占满制表位,占满就重新开一个,没占满接着用

print("hellorworld") #回车,world把hello覆盖掉了
print('hellobworld')#退一个格,把o退掉了

\第一个斜线是反斜线,第二个相当于转义字符但又不是

print("http:\www.baidu.com")

http:www.baidu.com#少了一个斜线

print(http:\\www.baidu.com)

http:\www.baidu.com#两个\会转出一个

print(”老师说:"大家好"")

"表示这不是”不再是字符串的边界而是 字符串中应该输出的内容

原字符,不希望字符串中的转义字符起作用,就是在字符串之前加上r或R

print(r"hellonworld")#最后一个字符不能是反斜杠
print(r"hellonworld\")#两个可以

3.二进制与字符编码

8个位置(bit)为一个字节,1024个字节等于1KB(千),1024KB=1MB(兆),1024MB=1GB(吉)1024GB=1TB(太)

print(chr(0b100111001011000))#乘 0b-二进制
print(ord(乘))#0rd十进制

4.标识符和保留字

严格区分大小写

import keyword
print(keyword.kwlist)#查看保留字

5.变量的定义和使用

变量由三部分组成:

标识:表示对象所存储的内存地址,使用内置函数id(obj)来获取

类型:表示的是对象的数据类型,使用内置函数type(obj)来获取

值:表示对象所存储的具体数据,使用print(obj)可以将值进行打印输出

name='懒羊羊'
print(name)
print('标识',id(name))
print('类型',type(name))
print('值',name)

6.变量的多次赋值

多次赋值以后,变量名会指向新的空间,原来name id指向的空间变成了内存垃圾

name='懒羊羊'
name='灰太狼'
print(name)

7.数据类型

整数类型——>int——>100

浮点数类型——>float——>3.14156

布尔类型——>bool——>True,False

字符串类型——>str——>'朝闻道,夕死可矣'

8.整数类型

十进制——默认进制,取值0-9

二进制——以0b开头,取值0-1

八进制——以0o开头,取值0-7

十六进制——以0x开头,取值0-9和A-F

print('二进制',0b10101111)
9.浮点类型

浮点数存储不精确性

使用浮点数进行计算时,可能会出现小数位数不确定的情况

n1=1.1
n2=2.2
print(n1+n2)

解决方案:导入模块decimal

from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))
10.布尔类型

布尔值可以转化为整数

True——1

False——0

f1=False
print(f1+1)#直接转
11.字符串类型

字符串又称不可变的字符序列

可以使用单引号,双引号,三引号来定义

单引号和双引号定义的字符串必须在一行

三引号定义的字符串可以分布在连续的多行

str1='朝闻道,夕死可矣'
str2="朝闻道,夕死可矣"
str3="""朝闻道,
        夕死可矣"""
12.数据类型转换

将不同数据类型的数据拼接在一起

str()     int()        float()

name='懒羊羊'
age=8
print('我叫'+name+'今年'+str(age)+'岁')

int()      1.文字类和小数类字符串,无法转化成整数   2.浮点数转成整数,抹0取整

float()   1.文字类无法转成浮点型,2.整数转为浮点型,末尾会加.0   3.小数类字符串可以转


13.注释

单行注释:以#开头,直到换行结束

多行注释:并没有单独的多行注释标记,将一对三引号之间的代码称为多行注释,不赋值给任何变量

中文编码声明注释:在文件开头加上中文声明,用于指定源码文件的编码格式

print('hello')

"""
我是懒羊羊,
我爱吃青草蛋糕
"""

python默认的存储编码是utf-8

#coding:gbk

"""
我是懒羊羊,
我爱吃青草蛋糕
"""

用记事本打开,另存为可以看到改为了


14.input函数的使用

作用:接收来自用户的输入·,结果是一个str类型

present=input('懒羊羊想要什么礼物呢?')
print(present)
#从键盘中输入两个整数,计算两个整数的和
a=input('请输入一个加数:')
a=int(a)
b=input('请输入另一个加数:')
b=int(b)
print(a+b)


print('-'*30)

a=int(input('请输入一个加数:'))

b=int(input('请输入另一个加数:'))

print(a+b)

15.运算符——算术运算符

标准算术运算符——加(+),减(-),乘(*),除(/),整除(//)

取余运算符——%

幂运算符——**

print(9//-4)#结果为-3,一正一负整除,向下取整

print(-9%4) # 3  -9-4*(-3)
print(9%-4) #-3   9-(-4)*(-3)

"""
余数=被除数-除数*商
"""

16.赋值运算符

=   执行顺序:从右到左

     支持链式赋值——a=b=c=20    #将20赋给 a,b,c,a=20,b=20.c=20

    支持参数赋值——+=,-=,*=,/=,//=,%=

a=20
a+=30 #相当于a=a+30
print(a) #50

a-=10 #相当于a=a-10
print(a) #40


a*=2 #相当于a=a*2

a/=3 #相当于a=a/2


a//=2 #相当于a=a//2

   支持系列解包赋值——a,b,c=20,30,40   a=20,b=30,c=40#等号左右个数相同都是3个

#交换两个变量的值
a,b=10,20
a,b=b,a

17. 比较运算符

对变量或表达式的结果进行大小,真假等比较;比较运算符的结果为bool类型

>  ,< , >= , <=,  !=

==   “一个等号称为赋值运算符,两个等号称为比较运算符”

        一个变量由三部分组成:标识,类型,值

        == 比较的是值

        比较对象的标识使用  is

a=10
b=10
print(a==b)   #True 说明a与b的值相等
print(a is b)  #True   说明a与b的ID标识相等

lst1 = [11,22,33,44]
lst2 = [11,22,33,44]
print(lst1==lst2)   #true
print(lst1 is lst2) #false

     is not  ID是不相等的


 18.布尔运算符

对于布尔值之间的运算

and         or         not         in        not in

and 两个都是真,结果才为真

or 只要有一个为真,结果就为真

not 取反

f=True
print(not f)

in 在不在当中

s='hello world'
print('w' in s)
print('K' not in s)

 19.位运算符

将数据先转成二进制再进行计算

位与&——>对应位数都是1,结果数位才是1,否则为0

位或|——>对应位数都是0,结果数位才是0,否则为1

 左移位运算符<<    高位溢出舍弃,低位补0

右移位运算符<<    低位溢出舍弃,高位补0

print(4<<1) #向左移动一个位置,相当于乘以2
print(4<<2) #向左移动两个位置

print(4>>1) #向右移动一个位置,相当于除以2

print(4>>2) #向右移动两个位置,相当于除以4


20.运算符的优先级

** 

*,/,//,%                   算术运算符:先算乘除再算加减,有幂最先

+,-


>> ,<<

&                                  位运算

I


> ,< ,>=,<=,==,!=      比较运算符 :结果true或者false


and

or                              布尔运算  


=                               赋值运算



21.顺序结构

程序的组织结构:顺序结构,选择结构,循环结构

顺序结构:程序从上到下顺序的执行代码,中间没有任何的判断和跳转,直到程序的结束


22.对象的布尔值

python一切皆对象,所有的对象都有一个布尔值

  获取对象的布尔值:        使用内置函数bool()

 以下对象的布尔值为false

false        数值0        none        空字符串        空列表        空元组        空字典        空集合

#测试对象的布尔值
print(bool(False)) 
print(bool(0.0))
print(bool(None))  

print(bool([]))   #空列表【】
print(bool(list()))    #空列表list()

print(bool(()))   #空元组()
print(bool(tuple()))   #空元组tuple()


print(bool({}))  #空字典{}
print(bool(dict()))   #空字典dict()


print(bool(set()))   #空集合  

 其他对象的布尔值均为True

age=int(input("请输入你的年龄"))


if age:
    print(age)
else:
    print("年龄为:",age)

23.分支结构

单分支结构

if 条件表达式:

        条件执行体

money=1000 #余额
s=int(input('请输入取款金额')) #取款金额
#判断余额是否充足
if money>=s:
    money=money-s
    print('取款成功,余额为:',money)

双分支结构

if 条件表达式:

        条件执行体1

else:

        条件执行体2

#双分支结构
"""
从键盘录入一个整数,编写程序让计算机去判断是奇数还是偶数
"""
n=int(input("请输入一个整数"))

if n%2==0
    print(n,'这是一个偶数')
else:
    print(n,"这是一个奇数")

多分支结构

if     条件表达式1:

       条件执行体1

elif 条件表达式2:

      条件执行体2

elif 条件表达式N:

     条件执行体N

[else:]

   条件执行体N+1

"""多分支结构,多选一执行

从键盘录入一个整数成绩
90-100 A
80-89  B
70-79  C
60-69  D
0-59   E
大于100或小于0  非法
0
"""
score=int(input("请输入一个成绩:"))
#判断
 if 90<=score<=100        #python中可以这样写
    print('A级')
elif score >=80 and score<=89
    print("B级")
elif score >=70 and score<=79
    print("C级")
elif score >=60 and score<=69
    print("D级")
else 
    print("非法")

嵌套IF

语法结构:

if 条件表达式1:    

        if 内层条件表达式:

                内存条件执行体1

        else

                内存条件执行体2

else:

        条件执行体

answer=input("您是会员吗?y/n")
money=float(input("请输入你的购物金额:"))
if answer=='y' :   #会员
    print("会员")
    if money>=200:
        print("打八折,付款金额为:",money*0.8)
    elif money>=100:
        print("打九折,付款金额为:",money*0.9)
    else:
        print("不打折,付款金额为:",money)
else:              #非会员
    print("非会员")
    if money>=200:
        print("打九五折,付款金额为:",money*0.95)
    else
         print("不打折,付款金额为:",money)
        
        

24.条件表达式

条件表达式是if.....else的简写

语法结构.

x if 判断条件 else y       t条件执行正确,往前运行,错误往后运行

运算规则

如果判断条件的布尔值是True,条件表达式的返回值为x,否则条件表达式的返回值为False

"""
从键盘录入两个整数,比较两个整数的大小
"""
num_a=int(input('请输入第一个整数'))
num_b=int(input('请输入第二个整数'))

#比较大小
if num_a>=num_b:
    print(num_a,"大于等于",num_b)
else:
    print(num_a,'小于',num_b)


print('+'*30)

#使用条件表达式
print(   print(num_a,"大于等于",num_b)  if num_a>=num_b  else   (num_a,'小于',num_b)  )



print( print(str(num_a)+"大于等于"+str(num_b)  if num_a>=num_b  else ....)


25.pass语句

语句什么都不做,只是一个占位符,用在语法上需要语句的地方

什么时候用:先搭建语法结构,还没想好代码怎么写的时候

if语句的条件执行体

for——in语句的循环体

定义函数时的函数体

answer=input("您是会员吗?y/n")
money=float(input("请输入你的购物金额:"))
if answer=='y' :   #会员
    pass
 
else:              #非会员
   pass
 

26.range函数

range(stop):创建一个[ 0,stop)之间的整数序列,步长为1

range(start,stop):创建一个[ start,stop)之间的整数序列,步长为1

range(start,stop,step):创建一个[ start,stop)之间的整数序列,步长为step

返回值是一个迭代器对象

r=range(10)
print(r)  #range(0,10)查看不了

print(list(r)) #用于查看range对象中的整数序列

range的优点:不管range对象表示的整数序列有多长,所有的range对象占用的内存空间都是相同的,因为仅仅需要存储star,stop和step,只有当用到range对象时,才会去计算序列中的相关元素

in 和not in 判断整数序列中是否存在(不存在)指定的整数

r=range(1,10,2)
print(10 in r)

 27.循环结构

while 条件表达式:

        循环体(条件执行体)

当条件表达式的值为False的时候,退出循环

while是判断N+1次,条件为True执行N次

if是判断一次,条件为True执行一次

四布循环法:初始化变量         条件判断         条件执行体(循环体)         改变量

#计算1:10之间的累加和
"""初始化变量"""
a=0
sum=0
"""条件判断"""
while a<11
"""条件执行体"""
    sum+=a
"""改变变量"""
    a+=1
    print("和为:",sum)

 for-in循环

for  自定义的变量 in 可迭代对象:

        循环体

in ——表示从(字符串,序列等)中依次取值,又称遍历

for-in遍历的对象必须是可迭代对象

for item in "Python":   # p y t h o n
    print(item)

 range()产生一个整数序列,也可以是一个迭代对象

for i in range(10):
    print(i)

如果在循环体中不需要使用带自定义变量,可以将自定义变量写为''_''

for _ in range(5):
    print('救命啊,喜羊羊')  #救命啊,喜羊羊将运行五次
"""
输出100到999之间的水仙花数
举例:
153=3*3*3+5*5*5+1*1*1
***

for item in range(100,1000)
    ge=item%10
    shi=item//10%10   #多看看
    bai=item//100
    #print(ge,shi,bai)
    if ge**3+shi**3+bai**3==item
        print(item)

流程控制语句——break

用于结束循环结构,通常与分支结构if 一起使用

""" 从键盘录入密码,最多录入三次,如果正确就结束循环 """

for item in range(3):
    pwd=input("请输入密码")
    if pwd='8888'
        print('密码正确')
        break
    else:
        print('密码不正确')



a=0
while a<3:
    pwd=input("请输入密码:")
    if pwd='8888'
        print('密码正确')
        break
     else:
        print('密码不正确')
    """改变变量"""
    a+=1
    

continue

用于结束当前循环,进入下一次循环,通常与分支if一起使用

""" 要求输出1到50之间的所有5的倍数"""


for item in range(1,51)
    if item%5==0
        print(item)




for item in range(1,51)
    if item%5!=0
        continue
    print(item)
28.else语句

else可以和if,while ,for搭配

for/while.....                                  

        ....                                   

else:                                  

        ...

没有碰到break时执行else

for item in range(3):
    pwd=input("请输入密码:")
    if pwd=='8888'
        print("密码正确")
        break
    else:
        print("密码不正确")

else:
    print ("对不起,三次密码均输入错误")

29.嵌套循环

在循环结构中又嵌套了另外的完整的循环结构,其中内层循环作为外层循环的循环体执行,

外层循环一次,内层循环一轮

"""输出一个三行四列的矩阵 """
for i in range(1,4) :  #行数
    for j in range(1,5):
        print('*',end='t') #不换行输出
    print() #打行
#9*9乘法表,第一行一个,第二行两个

for i in range(1,10):
    for j in range(1,i+1):
        print(i'*'j,'=',i*j,end='t')
    print()
30.二重循环中的break和continue

二重循环中的break和continue用于控制本层循环


""" 流程控制语句break与continue在二重循环中的使用"""
for i in range(5):    #代表外层循环要执行五次
    for j in range(1,11):
        if j%2==0:
            break
        print(j,end="t")



#结果
1
1
1
1
1


31.列表 

变量可以存储一个元素,而列表是一个“大容器”可以存储N多个元素,程序可以方便地对这些数据进行整体操作

变量存储的是一个对象的引用(id)

list=['hello','world',98]

32.列表的创建

列表需要使用中括号【】,元素之间使用英文的逗号进行分隔

        lst = ['l懒羊羊','喜欢','睡觉']

使用内置函数list()

        lst2=list(['helo','world',98])

    列表对象——赋给lst2 =id 987

    ide:987       type:list       value:'helo','world',98

列表的特点:

列表元素按顺序有序排列

索引映射唯一的数据

列表可以存储重复数据

任意数据类型混存

根据需要动态分配和回收内存——不用担心列表不够用

 print(lst2[0],lst2[-3])

列表的查询操作

如果列表中存在N个相同元素,只返回相同元素中的第一个元素的索引

如果查询的元素在列表中不存在,则会抛出ValueError

还可以在指定的start和stop之间进行查找

lst=['hello','world',98,'hello']
print(lst,index('hello'))
print(lst,index('python'))
print(lst,index('hello',1,3))  #在'world',98,没有hello会报错
print(lst,index('hello',1,4))  #3 
33.切片操作——获取列表中的多个元素

列表名[start:stop:step]

切片的结果:原列表片段的拷贝

切片的范围:[start,stop)

step默认为1   start默认是0    stop默认是最后一个元素(包含最后一个)

lst = [10,20,30,40,50,60,70,80]
print(lst[0:7])
print(lst[0::1])



"""
[10, 20, 30, 40, 50, 60, 70]
[10, 20, 30, 40, 50, 60, 70, 80]
"""
lst = [10,20,30,40,50,60,70,80]
print(lst[1:6:1])  #[20 30 40 50 60] 
print(lst[1:])   #[20 30 40 50 60 70 80] 

切出来的是一个新的列表对象,ID不一样

step为负数,逆序

lst = [10,20,30,40,50,60,70,80]
print(lst[::-1])  #[80,70,60,50,40,30,20,10] 
print(lst[7::-1])  #[80,70,60,50,40,30,20,10] 
print(lst[6:0:-2])  #[70,50,30] 

判断指定元素在列表中是否存在

lst=[10,20,'python','hello']

print(10 in lst)

print(10 not in lst)

 列表元素的遍历

lst = [10,20,30,40,50,60,70,80]
for item in lst:
    print(item)

34.列表元素的增加操作

增加操作:

append()    :在列表的末尾添加一个元素

extend()     :在列表的末尾至少添加一个元素

insert()      :在列表的任意位置添加一个元素

切片          :在列表的任意位置添加至少一个元素

lst = [10 ,20 ,30]

lst.append(100)   #[ 10, 20, 30, 40],增加后的列表和原列表标识(ID)相同



lst2=['heelo','world']
lst.extend(lst2)   #[10 ,20 ,30,'heelo','world']


lst=[10 ,20 ,30,'heelo','world']
lst.insert(1,90)    #[10,90,20 ,30,'heelo','world']


lst=[10,90,20 ,30,'heelo','world']     
lst3=[True,False,'hello']   #[10,True,False,'hello']   切掉的部分用一个新的列表替换
lst[1:]=lst3    #从90开始切

35.列表元素的删除操作: 

remove()  :一次删除一个元素    重复元素只删除第一个     元素不存在抛出ValueError

pop()    :删除一个指定索引位置上的元素     指定索引不存在抛出ValueError,不指定索引,删除列表中最后一个元素

切片:一次至少删除一个元素

clear():清空列表

del 删除列表

lst = [10,20,30,40,50,60,30]

lst.remove(30)
print(lst)

lst.remove(3000)
print(lst)



lst = [10,20,30,40,50,60,30]
lst.pop(1)
lst.pop(10000)
lst.pop()


#切片,切片将会产生一个新的列表对象
lst=[10,40,50,60]
new_list=lst[1:3]   #切片后的列表[40,50]


"""切片:不产生新的列表对象,而是删除原列表的内容"""
lst[1:3]=[]
print(new_list)


lst.clear()
print(lst)    #[]   清除列表中的所有元素

'''del语句将列表对象删除'''
del lst
print(lst)    #没有定义




36.列表元素的修改

为指定索引的元素赋予一个新值

为指定的切片赋予一个新值

lst=[10,20,30,40]
lst[2]=100  #[10,20,100,40]



lst[1:3]=[300,400,500,600] #[10,300,400,500,600,40]
37.列表元素的排序操作

sort()    :默认从小到大的顺序进行排序,也可以指定reverse=True,进行降序排序,排序是在原列表上进行的

sorted() :可以指定reverse=True,进行降序排序,原列表没有产生变化,而是产生了一个新的列表

lst=[20,40,50,10,98,5]
print("排序前的列表",lst,id(lst))

#开始排序
lst.sort()       #等同  lst.sort(reverse==False)
print('排序后的列表',lst,id(lst))    #id没变,排序是在原列表上进行的


#指定关键字参数,进行降序排序

lst.sort(reverse==True)
print('排序后的列表',lst,id(lst))    #id没变,排序是在原列表上进行的



#使用内置函数sorted()对列表进行排序,将产生一个新的列表

lst=[20,40,50,10,98,5]
new_list=sorted(lst)
print(lst)          #原列表没有产生变化,而是产生了一个新的列表
print(new_list)



#降序排列
desc_list=sorted(lst,reverse=True)

38.列表生成式

列表生成式简称:“生成列表的公式”

语法格式:

[ i *i  for i in range(1,10)]

i*i:列表元素的表达式,列表中真正包含元素的值

lst=[i for i in range (1,10) ]

lst=[i*i for i in range (1,10) ]

lst=[i*2 for i in range (1,6) ]
39.字典

字典与列表一样是一个可变序列【可以增删改】

以键值对的方式存储数据,字典是一个无序的序列     键:值

列表【】   字典{  }

第一个放入字典中的,不一定在字典中处于第一个位置,所以说它无序

hash(key)——>,把键放到hash(哈希函数)中进行计算得到的位置,放到字典中的键必须是不可变序列,不可变序列作为键的时候不管怎么动哈希值计算出来都是相同的。

整数序列和字符串序列都是不可变序列

字典的实现原理:与查字典类似,查字典是先根据部首或拼音查找相应的页码,python中的字典是根据key查找value所在位置

hash(key)——>value所在的位置

40.字典的创建

最常用的方式:使用花括号

scores={'懒羊羊':0 , '喜羊羊':100}

使用内置函数dict()

dict(name='jack',age=20)

dict(name='懒羊羊',age=8)     #等号左侧是键,等号右侧是值

空字典d={}

41.字典的增删改

key的判断  in:指定的key在字典中存在返回True

               not in:指定的key在字典中不存在存在返回True

"""
键的判断
"""
scores={"懒羊羊":0,'喜羊羊':100}

print("懒羊羊" in scores)

字典元素的删除

"""
字典元素的删除
"""
del scores=['喜羊羊']

scores['美羊羊']=80    #新增元素

scores['美羊羊']=90    #修改元素

scores.clear()   #清空字典的元素

42.字典的视图操作

keys():获取字典中所有key

values():获取字典中所有Value

items():获取字典所有key,value对

keys=scores.keys()  #字典键类型
print(list(keys))#将所有的key组成的视图转化为列表


values=scores.values() #字典值类型
print(list(values))


items=scores.items() 

print(list(items))#列表中的每一个元素都是一个元组(‘懒羊羊’,100)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/342118.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号