20分钟学完一遍python基础
Tancy166
2024年09月26日 20:07

Python中有三种注释,分别是单行注释、多行注释和字符串注释

声明变量命名规则:只能包含字母、下划线和数字,不能以数字开头

基本数据类型:整型 浮点型 字符型 布尔值

复合数据类型:列表 集合 元组 字典

print中使用单双引号均可

print("hello world") 输出一段话

a=12

print(a) 输出一个变量值

print(f"hello{a}") 字符串中包含变量值 注意f不能省略

另一种方式

print("hello %d" % a) 字符串中包含变量值

print("我是人\t 你是狗") \t代表长空格

print("我是人\n 你是狗") \n代表换行

print("我是人你是狗",end="") 末尾不换行

a=input() 程序运行时停在此处等待输入

a=input("请输入:") 等待输入时的提示

输入的类型默认是字符串形式

a=int(input("请输入:")) 转换为int

类型转换

a=15

b=str(a)

c=float(b)

随机数

import random

a=random.randint(1,100) 范围在1-100的一个随机数整数,包括1和100

b=random.uniform(1,100) 范围在1-100的一个随机数浮点数,包括1和100

c=random.random() 0-1之间的一个浮点数

布尔类型

a=False

b = not a

c= a or b

d= a and c

字符串

s1="O"

s2="H"

oh=s1+s2

hh=s2*2 在字符串中 *乘以就是复制的操作

ohh =s1+s2*3

python中有加减乘除取余(%)开方(**)等

条件和循环

缩进使用一个tab键或者4个空格 IDE会将tab转换为4个空格

# 判断

a=11

b=a%2

c=b==0

if c:

  print("偶数")

else:

  print("不是偶数")

   

#多分支

a=int(input("请输入一个数值:"))

if a<0 or a>100:

  print("分数不合法")

elif a<60:

  print("不合格")

elif a<80:

  print("合格")

else:

  print("优秀")

python中有while循环和for循环

a=0

while a<10:

  a+=1

  print(a)

  if a==5:

    break

print("end")

#死循环

while True:

  print()

for循环

# range代表他后面括号中一个左闭右开的整数区间

for i in range(10):

  print(i)

print("end")

#如果写两个数就是指明开始位置从-1到9

for i in range(-1,10):

  print(i)

print("end")

for i in [0,1,2,3,4,5,6,7,8,9]:

  print(i)

#int后面需要是一个列表 字符串 元素 集合都可以

string ="ABCDEFGHIJKLMNO"

for i in string:

  print(i)

   

#对于python中的循环而言 可以在循环后写一个else: 代表循环正常结束

for i in range(10):

  print(i)

else:

  print("循环执行完了")

字符串

a ="my name is xxx"

#切片从字符串下标1到下标5 不包括5

a=a[1:5]

print(a) #结果为y na

#不写开始的数字默认从0开始

b ="my name is xxx"

b=b[:5]

print(b) #结果为my na

#不写结束的数字默认截取到末尾

c ="my name is xxx"

c=c[3:]

print(c) #结果为name is xxx

#可以写3个数 第3个数代表步长 间隔几个截取 1为不间隔,连续的 2为间隔1个 3为间隔两个 ...

d ="my name is xxx"

d=d[1:5:3]

print(d) #结果为ya

#前面两个什么都不写,后面写-1 代表翻转字符串

e="my name is xxx"

e=e[::-1]

print(e) # 结果为xxx si eman ym

#从倒数第5截取到倒数第1 不包括倒数第1 不包括倒数第一 不翻转字符串

f="my name is xxx"

f=f[-5:-1]

print(f) #结果为s xx

g="you are a xxx"

#替换字符串内容

g=g.replace("xxx","pig")

print(g) #you are a pig

#使用split根据参数中的内容分割字符串,参数可以是字符串符号空格等

h="my name is nendie"

arr =h.split(" ") #获得一个列表

for i in arr:

  print(i)

else:

  print("循环结束")

#把字符串列表在拼接为一个字符串

string ="-".join(arr)

print(string) #结果为my-name-is-nendie

#转换大小写

a="hello".capitalize() #将字符串第一个字符转换为大写

print(a) #Hello

a="hello_world".title() #将字符串每个单词首字符转换为大写 空格下划线等

print(a) #Hello_World

a="heLLO".lower() #将字符串中大写转换为小写

print(a) #hello

a="heLLO".upper() #将字符串中小写转换为大写

print(a) #HELLO

#删除空白字符串

b="  hello".lstrip() #删除左边空格

print(b)

b="hello  ".rstrip() #删除右边空格

print(b)

b="  hello  ".strip() #删除两侧空格

print(b)

#字符串和列表都可以通过下标来获取指定元素

string="app"

s=string[0]

print(s) #a

arr=[1,2,3,4]

a=arr[0]

print(a) #1

列表

#列表可以嵌套

#二维列表的定义与获取元素

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

a=array[1][2]

print(a) # 6

#三维列表的定义与获取

array=[

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

  [[3,2,5],[4,5,8],[7,8,9]],

  [[1,2,3],[4,5,8],[7,0,9]]

]

a=array[2][1][0]

print(a) #4

#遍历多维列表

print("开始遍历")

for a in array:

  for b in a:

    for c in b:

      print(c)

else:

  print("遍历完成")

#python的列表中可以同时定义多种数据类型

b=12

a =[1,False,"happy",b,[1,2,3]]

#判断列表中是否存在 可以用 in 或者 not in

if 1 not in a:

  print("不在")

else:

  print("在呢")

#列表是有顺序的

#在列表的末尾添加一个元素

a.append("abc")

#在指定位置插入一个元素

a.insert(1,"t") #在下标1元素前插入一个元素

#列表可以直接输出

print(a) #[1, 't', False, 'happy', 12, [1, 2, 3], 'abc']

#删除指定元素的两种方式

a.pop(0) #根据下标删除指定元素

a.remove("happy") #根据内容删除指定元素

#清空整个列表

a.clear()

print(f"删除列表{a}") #输出结果为 删除列表[]

#通过下标修改列表中指定元素的值

#列表可以这样,字符串不可以,字符串是不可变类型

arr=[1,2,3,4,6]

arr[0]=666

print(arr) #[666, 2, 3, 4, 6]

#复制列表 这种拷贝是完全的拷贝 会在内存中复制一份 修改b不会影响arr

b=arr.copy()

b[0]=123

print(arr)

print(b)

# 下面这种直接赋值的方式 一方改变另一方也会改变 不要使用

b=a

#列表排序的两种方式

#sort 直接修改原列表

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

a.sort()

print(a) #[1, 2, 3, 4, 5]

#sorted内置函数,修改结果返回成一个新列表

b=[3,2,5,1,0]

b=sorted(b)

print(b) #[0, 1, 2, 3, 5]

元组

小括号定义的就是元组 元组不同于列表,元组中的元素不能被修改

a=(1,2) #定义一个元组

print(a[0]) #可以使用下标获取元组中的元素

a[0]=1 #运行会报错 TypeError: 'tuple' object does not support item assignment 元组(tuple)是一种不可变的序列类型,意味着你不能更改元组中的元素

字符串 元组 列表 都可以使用for循环遍历

a='123456123' #定义字符串

b= [1,2,3,"123",68] #定义列表

c=(1,2,"333") #定义元组

#遍历字符串

for i in a:

  print(i)

else:

  print("字符串遍历完成")

#遍历列表

for i in b:

  print(i)

else:

  print("列表遍历完成")

#遍历元组

for i in c:

  print(i)

else:

  print("元组遍历完成")

   

   

#字符串 列表 元组 也可以使用下面这种方式遍历range

for i in range(len(c)):

  print(c[i])

集合

大括号定义 无序 不重复

#集合使用大括号定义

s={5,3,3,4}

print(s) #输出 {3, 4, 5} 重复的被去掉了 顺序改变了

#集合的两个特性: 无序 不重复

#集合有一系列增删改查的方法

字典

#字典

# 字典也是用大括号 内部用:定义键值对

#键和值都可以是任意的数据类型

d={'name':'pig','age':18}

ks = d.keys() # 获取字典中所有的键

print(ks) #dict_keys(['name', 'age'])

vs=d.values() #获取字典中所有的值

print(vs) #dict_values(['pig', 18])

kv=d.items() #获取键值对组成的元组 的列表 ,键值对是元组 包含键值对的是列表

print(kv) #dict_items([('name', 'pig'), ('age', 18)])

#遍历字典

for K,V in d.items():

  print(K)

  print(V)

#由于字典和集合都是用大括号来表示 一个空的{}表示的是一个空字典

d={} #空字典

f=set() #空集合

m={"name":"pig","age":18}

print(m["name"]) #pig 获取键对应的值

m["name"]="小明" #修改字典指定键的值

print(m["name"]) #小明

del m["age"] #删除字典指定的键值对

print(m) #{'name': '小明'}

m.clear() #清空字典

print(m) #{}

del m #删除字典

函数

#方法的定义

def day():

  print("方法被调用了")

#方法的调用

for i in range(4):

  day()

#带参数和返回值的函数定义

def is_double(n):

  if n%2==0:

    return True

  else:

    return False

#测试带参函数

num=15

if is_double(num):

  print(f"{num}是偶数")

else:

  print(f"{num}不是偶数") #15不是偶数

# 如果一个方法调用了一个全局变量,就需要在函数内部最开始的地方使用global修饰 这是将全局变量引入到方法中 否则报错如下

# UnboundLocalError: local variable 'DAY' referenced before assignment

DAY=0

def day():

  global DAY #说明DAY是一个外部变量 是一个全局变量

  DAY+=1

day()

#定义函数时 可以指定形参的类型,起到提示的作用 语法 形参后冒号后写类型

#方法注释写在方法内,调用方法时鼠标放上去会有提示

def color(color:tuple,x:int,y:int,w:int,h:int):

  '''

  :param color:

  :param x: 参数x

  :param y: 参数y

  :param w:

  :param h:

  :return:

  '''

  return "test"

#调用

#color() #​鼠标放到调用这里的()中能看到提示

#函数有多个返回值

def g():

  return 1,2

p=g()

print(p) #返回一个元组 (1, 2)

#也可以对元组拆包 两个变量接收一个返回两个参数的方法

#字典 集合 元组 列表 都可以拆包

a,b=g()

print(a,b) # 1 2

不定长参数

*号代表可以有无穷多参数

普通参数要写在不定长参数的前面

不定长参数可以用*星号 或者**两个星号

一个星号叫包裹位置参数

两个型号叫包裹关键字参数

如果是两个星号则需要在调用方法传参时 写参数名等于值

可以写无穷多个

如果一个方法的形参有 普通参数 默认参数 包裹位置参数 包裹关键字参数 那么这四种需要按照以下顺序书写