python学习笔记

条件和循环

一.if

(1)简单

if "小甲鱼"=="小姐姐":
    print("小甲鱼是小姐姐")
else:
​
    print("小甲鱼不是小姐姐")

(2)else if

score=input("请输入分数")
score=int(score)
if 0<=score<60:
    print("D")
elif 60<=score<80:
    print("C")
else:
    print("A")

二.while

三.break(跳出循环体)

四.continue(跳出单次循环)

五.嵌套

#99乘法表
i=1 
while i<=9:
    j=1
    while j<=i:
        print(j,"*",i,"=",j*i,end=" ")
        j+=1
    else:
        print() #默认换行
        i+=1

六.for循环(迭代器)

for each in "fish": #正确
    print(each)
    
for each in 10000: #错误
    print(each)

1.对象必须可迭代

(1)range 整数数列

range(stop)---【0到stop)

for each in range(11):
    print(each)

range(start,stop)

for each in range(5,10):
    print(each)

range(start,stop,step) step为跨度

for each in range(5,10,2):
    print(each,end=" ")
for each in range(5,10,-2):
    print(each,end=" ")

(2)小应用---------找出10以内所有素数

for n in range(2,11):
    for x in range(2,n):
        if n%x==0:
            break
    else:
        print(n,"是一个素数")#for else
      

列表

(1)创建

a=[1,2,3,4,5,"上山打老虎"]

(2) 遍历

for each in a:
​
    print(each)

(3)访问

a[0] a[1] a[2]

(4)切片

1.

a[0:3]#------[1,2,3] 
a[:3]#---------[1,2,3]
a[3:]#-------------[4,5,"上山打老虎"]
a[:]#-------------[1,2,3,4,5,"上山打老虎"]
a[0:6:2]#-------------[1.3.5]
a[::2]#--------------[1,3,5]
b=a[::-2]#----------------[5,3,1]

切片并非原地翻转而是导出一个新对象

2.

a[-6] a[-5] a[-4] a[-3] a[-2] a[-1]

(5)增

1. str1.append()

heros=["钢铁侠","绿巨人"]
​
heros.append("黑寡妇")       #一次加一个

2.extend()

heros.extend(["鹰眼","灭霸","雷神"])#一次加多个

3.用切片的方式

s=[1,2,3,4,5]
​
s[len(s):]=[6,7,8,9]
​
print(s) #结果 [1,2,3,4,5,6,7,8,9]

4.插入 s.insert(pos,item)

s=[1,2,3,4,5]
​
s.insert(len(s),6)
​
s.insert(0,0)
print(s)

(6)删

1.remove

heros=["钢铁侠","绿巨人","鹰眼","灭霸","雷神"]
​
heros.remove("灭霸")#有相同元素时,只会删去下标最小的那一个
​
print(heros)

2.pop()

heros=["钢铁侠","绿巨人","鹰眼","灭霸","雷神"]
​
print(heros.pop(2))#----鹰眼
 
  

3.clear()

heros=["钢铁侠","绿巨人","鹰眼","灭霸","雷神"]
​
print(heros.clear())

(7)改

1.下标直接改

heros=["钢铁侠","绿巨人","鹰眼","灭霸","雷神"]
​
heros[4]="钢铁侠"

2.切片

heros=["钢铁侠","绿巨人","鹰眼","灭霸","雷神"]
​
heros[3:]=["武松","林冲"]

(8)排序

1.升序

nums=[3,1,9,6,8,3,5,3]
nums.sort()
print(nums)

2.降序

nums=[3,1,9,6,8,3,5,3]
nums.sort()
nums.reverse()
print(nums)

(9)查

1.a.count(item)#item出现次数

2.a.index(item,start,end)#返回item下标,相同时,默认下标最小的那一个

nums=[3,1,9,6,8,3,5,3]
​
print(nums.count(3))#查找3出现次数
​
heros=["钢铁侠","绿巨人","鹰眼","灭霸","雷神"]
​
print(heros.index("绿巨人"))
​
heros[heros.index("绿巨人")]="神奇女侠"
​
print(heros)

(10)拷贝

1.str1.copy()

nums=[3,1,9,6,8,3,5,3]
​
nums_1=nums.copy()  #直接赋值两个列表会相互影响 nums_1=nums引用
​
print(nums_1)

2.切片

nums=[3,1,9,6,8,3,5,3]
​
nums_2=nums[:]
​
print(nums_2)

3.嵌套拷贝

浅拷贝

x=[[1,2,3],[4,5,6],[7,8,9]]
​
y=x.copy()  # y=x

浅拷贝(用模块)

import copy
x=[[1,2,3],[4,5,6],[7,8,9]]
y=copy.copy(x)
x[1][1]=0
print(x)
print(y)
​
#[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
#[[1, 2, 3], [4, 0, 6], [7, 8, 9]]

深拷贝(用模块)

import copy
x=[[1,2,3],[4,5,6],[7,8,9]]
y=copy.deepcopy(x)
x[1][1]=0
print(x)
print(y)
​
#[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
#[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

(11)拼接

s=[1,2,3]
​
t=[4,5,6]
​
print(s+t)

(12)嵌套列表

a[[1,2,3],[4,5,6][7,8,9]

(13)列表推导式

s=[[0]*3 for i in range(3)]#列表里面放什么元素
print(s)
#[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
s=[i for i in range(10) if i%2==0]
print(s)
words=["great","fishc","brilliant","excellent","fantastic"]
f_word=[i for i in words if i[0]=='f']
print(f_word)
#['fishc', 'fantastic']
#嵌套的列表推导式
max=[[1,2,3],[4.5.6],[7,8,9]]
s=[col for row in max for col in row]

元组

不支持修改(不绝对)

a(1,2,3,4,5)

(1)查

1.a.count(item)#item出现次数

2.a.index(item,start,end)#返回item下标,相同时,默认下标最小的那一个

(2)解包 和 打包---生成元组

t=(123,"fishc",3.14)
x,y,z=t
print(x)
print(y)
print(z)
#123
#fishc
#3.14

同时也适用于任何序列类型

列表

t=[123,"fishc",3.14]
x,y,z=t
print(x)
print(y)
print(z)
#123
#fishc
#3.14

字符串

a,b,c,d,e="fishc"
print(a)
print(b)
print(c)
print(d)
print(e)
#f
#i
#s
#h
#c

字符串

案例---判断字符串是否是回文数

分析:字符串也是序列,用切片的方式让其反转,判断与原来的是否相等

x="12321"
y=x[::-1]
print("是回文数") if x==y else print("不是回文数")

(1)count()---元素出现次数

x="上海自来水来自上海"
print(x.count("海"),0,5)

(2)find()----从左往右寻找

rfind()-----从右往左寻找

(3)a.index(item,start,end)#返回item下标,相同时,默认下标最小的那一个

lstrip()

rstrip()

strip()

拼接

(1)+

(2)join()

print("".join(("f","ish","c")))

格式化字符串

year=2010
print("鱼c工作室成立于{}年".format(year))
print("{1}看到{0}就很激动".format("小甲鱼","漂亮的小姐姐"))
#漂亮的小姐姐看到小甲鱼就很激动

序列(列表,元组,字符串)

1.都可以以索引

2.拼接

判断同一性

x is y#---true(同一个对象)
x=[[1,2,3],[4,5,6],[7,8,9]]
​
y=x
​
print(x is not y)#---false

3.in / not in (序列中是否包含某个元素)

print("鱼"in"鱼c")--true

4.删除

x=[1,2,3,4,5]
del x[1:4]#[1,5]
x=[1,2,3,4,5]
x[1:4]=[]#[1:5]

5.min() / max()

print(max([1,2,3,4,5]))
print(min("fishc"))

6.sum()

s=[1,0,0,8,6]
sum(s)#15

7.d=sorted(s)#生成一个全新的列表

s=[1,2,3,4,5,6]
d=sorted(s.reverse=True)
print(d)#[6, 5, 4, 3, 2, 1]

        s.sort()#原地翻转

8.

print(list(reversed("fishc")))#必须reverse可迭代对象

9.迭代器

vx=[1,2,3,4,5]
y=iter(x)
for eact in x:
    print(next(y,"没了"),end=" ")

函数

def myfunc(name):
    for i in range(3):
        print(f"i love {name}")
myfunc("python")           
#i love python
#i love python
#i love python

注:f"...... "=".......".format()

参数

def myfunc(a,b,c):
    return "".join((a,b,c))
print(myfunc("小甲鱼","打了","我"))

关键字参数(位置参数必须在关键字参数之前)优先放在右边

def myfunc(a,b,c):
    return "".join((a,b,c))
print(myfunc(c="小甲鱼",b="打了",a="我"))

默认参数

def myfune(a,b="苹果",c="小甲鱼")
    return "".join((c,a,b))
print(myfune("拱了"))
#小甲鱼拱了苹果

元组作为实参

#打包
def myfune(*arges):
    print(f"有{len(arges)}个参数")
    print("第2个参数是{}".format(arges[1]))
print(myfune("小甲鱼是","笨蛋"))
#解包
arges=(1,2,3,4)
def myfune(a,b,c,d)
    print(a,b,c,d)
myfune(*arges)

你可能感兴趣的:(python)