Python 入门学习 详细知识点+典型例题(一)

(83) 2024-06-21 14:01:01

目录

一.基础知识

二.分支和循环 

 1.条件分支

 2.嵌套语句:

3.循环:

三.列表 

1.列表

2.列表切片

 3. 增      删     改    查

3.1  增

3.2 删

3.3  改 

3.4 查

4.列表的加减乘除

5.深拷贝        deepcopy()

6.列表推导式

 四.元组      (  )

五.元组       "  "

1.大小写字母换来换去

2.左中右对齐

3.查找

4.替换

6.判断

7.截取

 8.拆分&拼接

9.格式化字符串


一.基础知识

1、变量
(1)变量名不能以数字开头
(2)变量名区分大小写
(3)变量名可以用汉字
(4)x,y=y,x可以实现x,y值互换

x=3 y=5 x,y=y,x print(x,y) 5 3

2、字符串
(1)用单引号或者双引号将内容引起
(2)用单还是双取决于字符串中有没有不可避免的单或双引号,以免系统误会
(3)实在不能避免单双引号冲突时,可以用转义字符代替【加上去\即可转义】
示例:\"=" ; \\=\ ; \n=换行 ;
(4)原始字符串:转义字符需要正常使用,不作为转义字符时,可以在前面加上r,表示原始字符串,转义不生效
示例:

print(r"D:\wenjianjiaA\wenjianjiaB\wenjianjiaC") D:\wenjianjiaA\wenjianjiaB\wenjianjiaC 

(5)长字符串:前后用三个单引号或双引号"""   """)/('''   ''''),实现跨行字符串,即不用\n即可做换行。
示例:

porty="""你好呀 我不用\n就可以换行了 怎么样""" print(porty) 你好呀 我不用 就可以换行了 怎么样

(6)字符串相加就是拼接
示例:

520+1314
1834

'520'+'1314'
''

(7)字符串乘以数字就是重复
示例:

print("我每天都学习十次pyhon!!\n"  *10)

我每天都学习十次pyhon!!
我每天都学习十次pyhon!!
我每天都学习十次pyhon!!
我每天都学习十次pyhon!!
我每天都学习十次pyhon!!
我每天都学习十次pyhon!!
我每天都学习十次pyhon!!
我每天都学习十次pyhon!!
我每天都学习十次pyhon!!
我每天都学习十次pyhon!!
 

 3.比较运算符

Python 入门学习 详细知识点+典型例题(一) (https://mushiming.com/)  第1张

 例:设计一个游戏,提示用户输入一个值,正确则结束,不正确则提示大了还是小了

Python 入门学习 详细知识点+典型例题(一) (https://mushiming.com/)  第2张

"""用python设计一个游戏""" import random counts =3 answer=random.randint(1,10) while counts>0: temp = input ("猜一下我想的数字") guess = int(temp) if guess==answer: print("你是我的宝贝吗?") print ("哼,猜中了") break else: if guess<answer: print("猜小了~") else: print("猜大了~") counts=counts-1 print("猜错啦,我想的是8") print("游戏结束,不玩啦") 

 1.获取一个随机数

random.randint(   ,     )

随机获取一个1~100的整数

 import random
random.randint(1,100)

65
random.randint(1,100)
43
random.randint(1,100)
72
random.randint(1,100)
25

2.数字类型

  1. 整型  int
  2. 浮点型

 6/2
3.0

0.1+0.2
0.000004

0.3==0.1+0.2
False

 求精度:例

import decimal a=decimal.Decimal('0.1') b=decimal.Decimal('0.2') print(a+b) 0.3 c=decimal.Decimal ('0.3') a+b==c True 

0.00005等价于5e-05

  3.复数 a+bi

1+2j
(1+2j)

x=1+2j

通过x.real获取实部数值
x.real
1.0

通过x.imag获取虚部数值
x.imag
2.0

 3.数字间的运算

Python 入门学习 详细知识点+典型例题(一) (https://mushiming.com/)  第3张

  1.  //(地板除)

3/2  =1.5
3//2 =1
-3//2 =-2
 取比目标结果小的最大整数

     2.divmod    ( 返回地板除结果和余数)

divmod(3,2)
(1, 1)

   3.abs  (求绝对值,或者复数的模)

x=-520
abs(x)    求绝对值
520

z=1+2j
abs(z)      求复数的模
2.979

4.complex (re,im)   返回一个复数

 complex("1+2j")
(1+2j)

 5.计算x的y次方

pow(2,3)
8

等价于
2**3
8

pow(2,3,5)
3
2**3%5
3
 

 4.布尔类型(Ture   False)

定义为False对象的:None和false

值为0的数字类型:0,0.0 ,0j  ,   decimal(0) ,fraction(0,1)

空的序列和集合: ”,(), [ ]  ,{}  ,set ,  range(0)

0-------False       

5.逻辑运算   and    or    not     

5.1短路逻辑:从左往右,只有当第一个操作数的值无法确定逻辑运算结果时,对第二个操作数进行求值

3 and 4   ——>4                                           0  and 3 ——>3

3 or  4    ——>3                                             0  or  4  ——>4

((not 1)or (0 and 1)or (3 and 4)or (5 and 6 ) or(7 and 8 and 9 )) 4 

5.2运算符优先级        not>>and>>or 

not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9 4

6.画流程图,思维导图

Python 入门学习 详细知识点+典型例题(一) (https://mushiming.com/)  第4张

二.分支和循环 

 1.条件分支

  1.  if 条件
    if 3>5: print("在里面") print("我也在里面") print("我在外面")

    结果为:我在外面               (成立执行里面,不成立执行外面)

  2. if  else

    if "我"=="小姐姐": print("我是小姐姐") else: print ("我不是小姐姐")

    结果为:我不是小姐姐

  3. if .......elif........elif .......

  4. if ......elif .......elif.......else........

  5. 语法:   条件成立时执行的语句  if     condition    else  条件不成立时执行的语句

    例:求小的那个数

    a=3 b=5 if a<b: small=a else: small=b print(small) 

    等价于

    small=a if a<b else b print(small) 3

Python 入门学习 详细知识点+典型例题(一) (https://mushiming.com/)  第5张

 2.嵌套语句:

age=18 ismale=True if age<18: print("抱歉,未成年禁止访问") else: if ismale: print("随便观看") else: print("抱歉,本网站不适合小公主哦") 随便观看 

3.循环:

1.while condition  

                statement(s)

例题:计算1--100的和

i=1 sum=0 while i<100:     sum=sum+i     i=i+1 print(sum)

结果为:4950

死循环的使用

while True: answer=input("主人,我可以退出了吗??") if answer=="可以": break print("哎呀,好累啊!!") 

结果:

主人,我可以退出了吗??不行
哎呀,好累啊!!
主人,我可以退出了吗??继续
哎呀,好累啊!!
主人,我可以退出了吗??可以
 

 当循环条件不在为真时,else语句才被执行

day=1 while day<=7: answer=input("今天有好好学习吗?") if answer !="有": break day=day+1 else : print("非常棒,你已经间坚持学习七天了") 

今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
非常棒,你已经间坚持学习七天了

 2.for 循环

语法: for  变量  in   对象:

                statement(s)

例如:

for each in "python":     print(each)

p
y
t
h
o
n

 range(stop)   —————>从0开始

for  i  in  range(11)            从0开始到10                    

     print(i)

range(start  ,stop) 

for i  in  range(5,11)                        从5到1

        print (i)

range(start, stop,step)        (step 可以为负数)

for i in  range(5,10,2)                从5到9,跨度为2

        print(i)

例1:求0——100的和

sum=0 for i in range(100): sum=sum+i print(sum)

结果为:4950

例2. 打印乘法口诀表

i=1 while i<=9: j=1 while j<=i: print(j,"*",i,"=",j*i, end=" ") j=j+1 print() i=i+1 

1 * 1 = 1  
1 * 2 = 2  2 * 2 = 4  
1 * 3 = 3  2 * 3 = 6  3 * 3 = 9  
1 * 4 = 4  2 * 4 = 8  3 * 4 = 12  4 * 4 = 16  
1 * 5 = 5  2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25  
1 * 6 = 6  2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36  
1 * 7 = 7  2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49  
1 * 8 = 8  2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64  
1 * 9 = 9  2 * 9 = 18  3 * 9 = 27  4 * 9 = 36  5 * 9 = 45  6 * 9 = 54  7 * 9 = 63  8 * 9 = 72  9 * 9 = 81  

例3.求出10以内的素数(除1和本身无法被其他数整除) 

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

2 是一个素数
3 是一个素数
4 = 2 * 2
5 是一个素数
6 = 2 * 3
7 是一个素数
8 = 2 * 4
9 = 3 * 3

三.列表 

1.列表

例:rhyme=[1,2,3,4,5,"上山打老虎"]

元素                   1          2         3         4        5               "上山打老虎"

下标(前到后)  0         1         2         3        4                5

下标(后到前)  -6        -5        -4        -3        -2             -1

2.列表切片

rhyme=[1,2,3,4,5,"上山打老虎"] rhyme[0:3] 等价于 rhyme[:3] 结果: [1, 2, 3]
rhyme[3:] 结果: [4, 5, '上山打老虎'] 
rhyme[:] 结果: [1, 2, 3, 4, 5, '上山打老虎']
rhyme[0:6:2] 2表示为跨度 等价于 rhyme[: : 2] 结果为: [1, 3, 5] 

 倒序输出:

rhyme[: :-1] 结果为: ['上山打老虎', 5, 4, 3, 2, 1]

 3. 增      删     改    查

3.1  增

append(  )                在列表末尾添加一个指定元素

extend  ( [" ,  "] )             必须为可迭代对象,新添加的元素追加到最后一个元素后面

 animal=["小狗狗 ","小猫咪"]

animal=["小狗狗 ","小猫咪"] animal.append("小狮子") animal ['小狗狗 ', '小猫咪', '小狮子']
animal.extend(["小老虎","大象","熊猫"]) animal ['小狗狗 ', '小猫咪', '小狮子', '小老虎', '大象', '熊猫']

加在末尾

s=[1,2,3,4,5] s[len(s):]=[6] s [1, 2, 3, 4, 5, 6]

插入:       insert

s=[1,3,4,5]
s.insert(1,2)                        (位置下标,元素)
s
[1, 2, 3, 4, 5]

s.insert(0,0)        在开头插入

s.insert(len(s),6)              在末尾插入

3.2 删

remove( )                删除某个元素

animal=["小狗狗 ","小猫咪"] animal.remove("小狗狗") animal 

①如果存在多个只会删除第一个

②必须指定要删除的元素

pop( )         删除某个位置元素,括号内为元素下标

s=[1,2,3,4,5,6] s.pop(1) 2 s [1, 3, 4, 5, 6] 

clear( )                清空

s.clear() s []

3.3  改 

替换: animal[下标 ]="目标值"

animal=['小狗狗 ', '小猫咪', '小狮子', '小老虎', '大象', '熊猫'] animal[3]="猪" animal ['小狗狗 ', '小猫咪', '小狮子', '猪', '大象', '熊猫']

替换多个:animal [3 : ]=["","",""]                        3以后的都替换

animal=['小狗狗 ', '小猫咪', '小狮子', '小老虎', '大象', '熊猫'] animal[3:]=["鸡鸡","鸭"] animal ['小狗狗 ', '小猫咪', '小狮子', '鸡鸡', '鸭']

 排序:

从小到大           sort(  )

nums=[2,3,5,1,6,4,3] nums.sort() nums [1, 2, 3, 3, 4, 5, 6]

(倒过来) 大到小             reverse( )

nums.reverse() nums [6, 5, 4, 3, 3, 2, 1] 

直接排倒序        

nums=[2,3,5,1,6,4,3] nums.sort(reverse=True) nums [6, 5, 4, 3, 3, 2, 1]

3.4 查

查个数           count()

查询3的个数 nums=[2,3,5,1,6,4,3] nums.count(3) 2

查索引值  index()

nums=[2,3,5,1,6,4,3] nums.index(5) 2 

 index(x, start, end)

nums=[2,3,5,1,6,4,3] nums.index(3,3,7) 查3,从3到7 6

拷贝:

浅拷贝:copy( )

nums_copy=nums.copy() nums_copy [2, 3, 5, 1, 6, 4, 3]

等价于

nums_copy=nums[:] 切片法 nums_copy [2, 3, 5, 1, 6, 4, 3]

4.列表的加减乘除

1.加法

s=[1,2,3] t=[4,5,6] s+t [1, 2, 3, 4, 5, 6]

2.乘法(重复)

s*3 [1, 2, 3, 1, 2, 3, 1, 2, 3] 

嵌套列表(二维列表)

matrix=[[1,2,3],[4,5,6],[7,8,9]] matrix [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 等价于 matrix=[[1,2,3], [4,5,6], [7,8,9]] 

访问嵌套列表

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

for i in matrix:
            for each in i:
                    print(each,end="  ")
            print()

            
1  2  3  
4  5  6  
7  8  9  

matrix[0]                        取到第一行
[1, 2, 3]

matrix[1][1]                      取到第二行第二列
5

A=[0]*3
A
[0, 0, 0]

for i in range(3):
    A[i]=[0]*3

  A
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

is运算符                判断是否等 

5.深拷贝        deepcopy()

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

6.列表推导式

基本语法       [ expression   for   target   in   iterable  ]

oho=[1,2,3,4,5] oho=[i*2 for i in oho] oho [2, 4, 6, 8, 10]
例:加 x=[i for i in range(10)] x [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] x=[i+1 for i in range(10)] 加一 x [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
乘(重复) y=[c*2 for c in "python"] y ['pp', 'yy', 'tt', 'hh', 'oo', 'nn']

 取单个元素或某一列

matrix=[[1,2,3], [4,5,6], [7,8,9]] col2=[row[1] for row in matrix] 取出第二列的值 col2 [2, 5, 8]
diag=[matrix[i][i] for i in range(len(matrix))] 取对角线的值 diag [1, 5, 9] 

 约束条件

s=[[0]*3 for i in range(3)]
s
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
s[1][1]=1
s
[[0, 0, 0], [0, 1, 0], [0, 0, 0]]

执行顺序:

even=[i for i in range(10) if i%2==0] even [0, 2, 4, 6, 8]

顺序:  ①for语句         ②  if 语句                ③   i

 嵌套列表推导

[x+y for x in "python" for y in "PYTHON"]                笛卡尔积

['pP', 'pY', 'pT', 'pH', 'pO', 'pN', 'yP', 'yY', 'yT', 'yH', 'yO', 'yN', 'tP', 'tY', 'tT', 'tH', 'tO', 'tN', 'hP', 'hY', 'hT', 'hH', 'hO', 'hN', 'oP', 'oY', 'oT', 'oH', 'oO', 'oN', 'nP', 'nY', 'nT', 'nH', 'nO', 'nN']

[[x,y] for x in range(10) if x%2==0 for y in range(10) if y%3==0] [[0, 0], [0, 3], [0, 6], [0, 9], [2, 0], [2, 3], [2, 6], [2, 9], [4, 0], [4, 3], [4, 6], [4, 9], [6, 0], [6, 3], [6, 6], [6, 9], [8, 0], [8, 3], [8, 6], [8, 9]] 等价于 for x in range(10): if x%2==0: for y in range(10): if y%3==0: _.append([x,y]) _

 四.元组      (  )

元组不可变更(修改)

元组只支持 count( )         index( )              +      *      嵌套   列表推导

打包和解包

t=(123,"python",3.14) t (123, 'python', 3.14) x,y,z=t x 123 y 'python' z 3.14
s=[1,2,3] t=[4,5,6] w=(s,t) w ([1, 2, 3], [4, 5, 6]) w[0][0]=0 w ([0, 2, 3], [4, 5, 6])

左右数量一致

五.元组       "  "

x="12321"
"是回文数" if x==x[: :-1] else "不是回文数"
'是回文数'

1.大小写字母换来换去

capitalize()                首字母变为大写,其他为小写

casefold ( )                所有都为小写

title()                        单词首字母变为大写,其他为小写

swapcase()                大小写翻转

upper()                        所有变为大写

lower()                               所有变小写

x="i love Python " x.capitalize () 'I love python ' x.casefold () 'i love python ' x.title() 'I Love Python ' x.swapcase() 'I LOVE pYTHON ' x.upper() 'I LOVE PYTHON ' x.lower () 'i love python ' 

2.左中右对齐

center (width, fillchar="")                居中

ijust (width , fillchar="")               左对齐

rjust (width,  fillchar="")                        右对齐

zfill( width)                                           0填充左侧

s=" 有内鬼,停止交易 " s.center (5) ' 有内鬼,停止交易 ' s.center(15) ' 有内鬼,停止交易 ' s.rjust (5) ' 有内鬼,停止交易 ' s.ifill(15)

3.查找

count (sub [,start[, end]])                次数

find   (sub [,start[, end]])                    查下标,左到右

rfind (sub [,start[, end]])                       查下标,右到左

x="上海人住在海上" x.count("海") 2 x.find("住") 3 x.find("在") 4 x.rfind("在") 4

4.替换

expandtabs([tabsize=8])                空格替换制表符

replace( old, new ,count=-1)                旧换新

translate(table)                                字母替换

str.maketrans(x[,y[,z]])

able=str.maketrans("ABCDEFG","") "I love FootBool".translate(able) 'I love 6oot2ool'

6.判断

startswith (prefix,[,start[,end]])                        是否在起始位置

endswith (prefix,[,start[,end]] )                          是否在结束位置

例: x="他爱python" if x.startswith (("你","我","他")): print("总有人喜欢python") 总有人喜欢python

istitle()                        判断字符串中所有单词开头是否为大写

isupper()                      判断所有单词是否为大写

islower()                        判断所有单词是否为小写

isalpha()                        判断是否只是由字母构成(空格不是)

isspace()                       判断是否为空白

isprintable()                判断是否能打印(转义字符不能)

x="I love Pyyhon" x.istitle () False x.isupper () False x.islower () False x.isalpha () False x.isspace () False x.isprintable () True

判断数字:(123  ,²,罗马数字,大写数字一二三)

isdecimal()                

isdigit()                                        

isnumeric()

isidentifier()                判断是否为标准python符

import  keyword                判断是否为保留标识符

keyword.iskeyword(if)

7.截取

lstrip()                左侧去白

rstrip()                右侧去白

strip()                   去白

x=" 我爱学习 " x.lstrip () '我爱学习 ' x.rstrip () ' 我爱学习' x.strip () '我爱学习'
"www.Ilovepython.com".strip ("wcom.") 'Ilovepython'

 removeprefix("    ")                                        删除前缀(删的是字符串)

removesuffix("     ")                                         删除后缀(删的是字符串)

"www.Ilovepython.com".removeprefix ("www") '.Ilovepython.com' "www.Ilovepython.com".removesuffix (".com") 'www.Ilovepython' 

 8.拆分&拼接

partition(  )                                左到右

rpartition()                                右到左

split()                                按字符分割

"www.Ilovepython.com".partition (".") ('www', '.', 'Ilovepython.com') "www.Ilovepython.com".rpartition (".") ('www.Ilovepython', '.', 'com') "www.Ilovepython.com".split () ['www.Ilovepython.com'] "www.Ilovepython.com".split (".") ['www', 'Ilovepython', 'com'] 

join      拼接

".".join(["www","Ilovepython","com"]) 'www.Ilovepython.com'
"".join(["python","python"]) 'pythonpython'

9.格式化字符串

{ }    .format( ) 

year=1998 "我出生于{}年".format (year) '我出生于1998年'
"1+2={},2的平方是{},3的立方是{}".format(1+2,2*2,3*3*3) '1+2=3,2的平方是4,3的立方是27'

{ :^}.format( )        居中 

"{:^10}".format (250) ' 250 '

{: 010}.format( )                 填充0

"{:010}".format(250) '0000000250'

+ - 号

"{:+}{:-}".format(520,-250) '+520-250'

千位分割符

"{:,}".format(1234) '1,234'
"{:_}".format() '123_456_789'

 限定位数

"{:.2f}".format(3.1415) f限定小数点后有几位 '3.14'
"{:.2g}".format(3.1415) g限定前后共有几位 '3.1'

截取

"{:.6}".format("Ilove python") 截取6位 'Ilove '

以进制形式输出 

Python 入门学习 详细知识点+典型例题(一) (https://mushiming.com/)  第6张

"{:b}".format(80) '' "{:c}".format(80) 'P' "{:d}".format(80) '80' "{:o}".format(80) '120' "{:x}".format(80) '50' "{:X}".format(80) '50' "{:n}".format(80) '80'
"{:#b}".format(80) #作为前缀 '0b'

复数和浮点数

Python 入门学习 详细知识点+典型例题(一) (https://mushiming.com/)  第7张

"{:e}".format (3.1415) '3.e+00' "{:.2%}".format(2.1) '210.00%'

f 字符 (和format一样的功能)

f"我出生于{2002}年" '我出生于2002年'
f"1+2={1+2},2的平方是{2*2},3的立方是{3*3*3}" '1+2=3,2的平方是4,3的立方是27' 

下接:Python 入门学习 详细知识点+典型例题/自学笔记(二)_字母符号数字的博客-CSDN博客

THE END

发表回复