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

目录

一.基础知识

二.分支和循环 

 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'
'5201314'


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

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

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

 3.比较运算符

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

"""用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.30000000000000004


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.数字间的运算

  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.23606797749979

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.画流程图,思维导图

二.分支和循环 

 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

 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","1234567")
"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(123456789)
'123_456_789'

 限定位数

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

截取

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

以进制形式输出 

"{:b}".format(80)
'1010000'
"{: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)            #作为前缀
'0b1010000'

复数和浮点数

"{:e}".format (3.1415)
'3.141500e+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博客

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

字母符号数字

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值