当前位置: 首页 > news >正文

Python-基础语法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 1. Python的安装
  • 2. 安装PyCharm
  • 3. 创建项目
  • 4.基础语法
    • 4.1 常量和表达式
    • 4.2 变量
    • 4.3 创建变量
    • 4.4 变量类型
    • 4.5 动态类型
    • 4.6 注释
    • 4.7 输出到控制台
    • 4.8 从控制台输入
    • 4.9 算术运算符
    • 4.9 关系运算符
    • 4.10 逻辑运算符
    • 4.11 赋值运算符
    • 4.12 条件语句
    • 4.13 缩进和代码块
    • 4.14 空语句
    • 4.15 while循环语句
    • 4.16 for循环
    • 4.17 break,continue
    • 4.18 其他方法
    • 4.19 函数定义
    • 4.20 函数参数默认值
    • 4.21 关键字参数
    • 4.22 列表和元组
    • 4.23 列表切片
    • 4.24 列表遍历
    • 4.25 列表插入新增
    • 4.26 下标查找删除
    • 4.27 列表链接
    • 4.28 元组操作
    • 4.29 字典创建
    • 4.30 字典查找key
    • 4.31 字典的新增修改删除
    • 4.32 字典遍历
    • 4.33 key的类型
    • 4.34 打开文件
    • 4.35 关闭文件
    • 4.36 写文件
    • 4.36 读文件
    • 4.37 上下文管理器
  • 总结


前言

1. Python的安装

运行环境Python
开发环境PyCharm
官网

https://www.python.org/downloads/windows/
这个是下载Windows版本的

在这里插入图片描述
下载这个就可以了

在这里插入图片描述
勾选add,选择install

python --version

2. 安装PyCharm

官网

3. 创建项目

在这里插入图片描述
在这里插入图片描述

print('hello')

在这里插入图片描述
文件以py为后缀,或者不加后缀

4.基础语法

4.1 常量和表达式

在这里插入图片描述

Python中整数除以整数不会舍弃小数了
而且编程中没有四舍五入,所以最后为665,这是微小的误差

4.2 变量

avg = (1+2+3)/3
avg = avg**2
print(avg)
**2表示二次方,**3表示三次方

在这里插入图片描述

4.3 创建变量

a = 10

在这里插入图片描述

在这里插入图片描述

4.4 变量类型

变量类型由初始化值的类型决定

a = 10
print(type(a))

在这里插入图片描述
而且在python中int表示的数据范围是无穷
所以python里面没有long没有short

a = 0.5
print(type(a))

在这里插入图片描述
这个是浮点数,python中float是双精度,但是java中是单精度,所以我们不需要其他浮点数了

a = 'hello'
print(type(a))

字符串类型的话,可以使用单引号,也可以是双引号
在这里插入图片描述

a = "hello 'ck' "
print(a)
print(type(a))

可以用两个引号的目的是,这样就可以在字符串里面使用双引号或者单引号了

在这里插入图片描述
表示字符串还可以使用三引号,就是三个单引号或者双引号

a = ''' "hello 'ck' " '''
print(a)
print(type(a))

在这里插入图片描述

b = 'aaaa'
print(len(b))

len是求长度

b = 'aaaa'
print(len(b))
print(b+'ss')

这个是字符串拼接
在这里插入图片描述
对原来的没有影响
但是不能像java一样,字符串和int拼接

c = True
a = False
print(c)

True和False第一个字母是大写的
在这里插入图片描述

4.5 动态类型

就是在程序运行过程中类型可以改变
python中是动态类型

d = 10
print(type(d))
d = 'aa'
print(type(d))

在这里插入图片描述
java和c++中就是静态类型

d:int = 10
print(type(d))
d = 'aa'
print(type(d))

在这里插入图片描述
python中可以声明类型,但是还是动态类型

4.6 注释

就是一个#

"""
aaa
"""

这个是文档字符串(三个单引号也可以),和注释是一样的效果—》可以被识别。而#不能被识别

4.7 输出到控制台

a = 10
print(f"a={a}")

在这里插入图片描述

这个意思是格式化字符串
f就是format的意思
加了f的话,就可以用{}在字符串里面嵌入变量了

a = 10
print(f"a={a+10}")

4.8 从控制台输入

num  = input('请输入一个整数:')
print(f"num={num}")

在这里插入图片描述
input就是会等待用户输入,输入的值用num接收

num  = input('请输入一个整数:')
print(type(num))
print(f"num={num}")

在这里插入图片描述
但是input的类型为str

num  = input('请输入一个整数:')
num = int(num)
print(type(num))
print(f"num={num}")

在这里插入图片描述

这样前面加上()就可以转化类型了

还有str(),float()

4.9 算术运算符

%是求余数

7%2=1

**就是进行乘方运算

print(4**2)
print(4**0.5)

在这里插入图片描述

没有三个*的说法

print(7//2)

在这里插入图片描述
这个表示取整

print(7//2)
print(-7//2)

在这里插入图片描述

这个表示是向下取整,就是往小的方向取整

4.9 关系运算符

在这里插入图片描述
不仅可以比较整数,还可以比较字符串

print('abc'>='abd')

在这里插入图片描述
在这里插入图片描述
比较中文是没有意义的

python用==和!=可以比较字符串的内容是否相同

浮点数用==来比较困难会有误差

print(0.1+0.2)
print(0.1+0.2==0.3)

在这里插入图片描述

print(-0.000001<(0.1+0.2)-0.3<0.000001)

在这里插入图片描述
python中是可以连续比较的

4.10 逻辑运算符

and , or , not

print(1<2 and 2<3)

在这里插入图片描述

print(1<2 <3)

都是一样的效果

注意and也是一样的,就是and左边错误了,右边就不用求值了

4.11 赋值运算符

就是=

左边必须是变量

变量之间可以连续赋值

a = b = 10
a,b = 10,20

就是a=10,b=20
这个是顺序赋值

a,b = b,a

这样就可以把a和b交换值了

a+=1

就是a=a+1
但是这样的话a肯定要提前定义过的

python中不能a++语法

++a

python要看做两个+号,值不变

后置的++会直接报错的

4.12 条件语句

在这里插入图片描述
在这里插入图片描述

a = input()
if(a == '1'):print(1)print(111)
elif(a == '2'):print(2)
else:print(3)
print(44)

在这里插入图片描述

4.13 缩进和代码块

在这里插入图片描述
if后面没有缩进的话,直接就报错了
在这里插入图片描述
缩进不合法也是错误的
缩进就是四个空格

if a=='1':if a=='2':print(2)print(1)
print(3)

可以没有括号
在这里插入图片描述

4.14 空语句

if a=='1':pass
else:print(2)

在这里插入图片描述

空语句就是pass

4.15 while循环语句

b=1
while b<10:print(b)b+=1

在这里插入图片描述

4.16 for循环

在这里插入图片描述

for i in range(1,11):print(i)

在这里插入图片描述
在这里插入图片描述
前闭后开
默认步长是1,这个是可以修改的

for i in range(2,12,2):`在这里插入代码片`print(i)

在这里插入图片描述
第三个参数就是步长

for i in range(10,0,-1):print(i)

在这里插入图片描述

步长也可以为负数
注意有个内建函数就是sum所以变量名不要用sum

4.17 break,continue

for i in range(10,0,-1):if i==10:continueelif i==5:breakprint(i)

在这里插入图片描述

i =1
while True:print(i)i = i + 1if i == 3:break

在这里插入图片描述

continue退出的是循环,不是if

4.18 其他方法

b = random.randint(1,6)
print(b)

这个是生成随机数
左闭右闭
在这里插入图片描述

import random

random这是一个模块,会自动导入的,pycharm

sys.exit(0)

这个是退出程序

4.19 函数定义

def theSum(a,b):return a+bprint(theSum(2,3))

在这里插入图片描述
def就是定义函数了
在这里插入图片描述
在这里插入图片描述

def the_sum(a,b):return a+bprint(the_sum(2,3))

函数名尽量小写
或者可以忽略错误
在这里插入图片描述
只是警告而已
形参和实参的个数应该相同
但是类型没有要求

在这里插入图片描述
但是还是不能int和str相加哈

def theSum(a,b):return a,bc,d = theSum(1,2)
print(c)
print(d)

这个就是多元赋值
在这里插入图片描述
直接return多个值

def theSum(a,b):return a,bc,_ = theSum(1,2)
print(c)

下划线来表示占位
在这里插入图片描述
外面定义的是全局变量,函数里面的是局部变量,函数里面可以访问全局变量,如果自己没有定义变量的话
只有函数定义得到变量才是局部变量,if,while定义的变量都是全局的

def theSum(a,b):global xx=20return a,btheSum(1,1)
print(x)

global 表示声明一个全局变量,但是必须调用函数了才可以声明

for i in range(1,11):pass
print(i)

在这里插入图片描述
python中只有函数会影响作用域

只有函数有局部变量

python函数也是可以递归的

4.20 函数参数默认值

def theSum(a,b=10):return a,b
print(theSum(1))

在这里插入图片描述

def theSum(a,b=10):return a+b
print(theSum(1))

在这里插入图片描述
默认值只能在后面,java不支持默认值的语法

4.21 关键字参数

def theSum(a,b):return a+b
print(theSum(b=20,a=10))

就是指定谁给谁参数赋值,顺序可以改变了

在这里插入图片描述

4.22 列表和元组

a=[]
b=list()
print(type(a))
print(type(b))

在这里插入图片描述

a=[1,2,3,4]
print(a)

在这里插入图片描述

a=[1,2,3,'hello',True]
print(a)

在这里插入图片描述

a=[1,2,3,'hello',True]
print(a[1])

在这里插入图片描述

a=[1,2,3,'hello',True]
print(len(a))

在这里插入图片描述

a=[1,2,3,'hello',True]
print(a[-1])

在这里插入图片描述
-1其实就是最后一个元素,就是length-1
-2就是倒数第二个

4.23 列表切片

a=[1,2,3,'hello',True]
print(a[1:3])

在这里插入图片描述
表示获取区间,前闭后开
下标1~3

a=[1,2,3,'hello',True]
print(a[1:])

在这里插入图片描述
下标1到末尾

a=[1,2,3,'hello',True]
print(a[:])

在这里插入图片描述
当然也可以写-1,-2

a=[1,2,3,4,5,6,7,8,9]
print(a[::1])

在这里插入图片描述
1表示步长,表示每隔一个元素取数据

a=[1,2,3,4,5,6,7,8,9]
print(a[::2])

在这里插入图片描述

a=[1,2,3,4,5,6,7,8,9]
print(a[::-1])

在这里插入图片描述
步长为负数,表示倒着取数据

a=[1,2,3,4,5,6,7,8,9]
print(a[:100])

在这里插入图片描述
切片可以大于len
但是a[]不能超过len

4.24 列表遍历

a=[1,2,3,4,5,6,7,8,9]
for element in a:print(element)

在这里插入图片描述
element就是列表中的每个元素
a其实就是一个可迭代对象

for i in range(0,len(a)):print(a[i])

也可以这样变量
这样可以修改列表的值
element不是列表中的值,只是赋值了

4.25 列表插入新增

a=[1,2,3,4,5,6,7,8,9]
a.append(10)
print(a)

在这里插入图片描述
就是尾差

a=[1,2,3,4,5,6,7,8,9]
a.insert(1,10)
print(a)

在这里插入图片描述
就是在下标为1位置插入数据

a=[1,2,3,4,5,6,7,8,9]
a.insert(100,10)
print(a)

在这里插入图片描述
下标太大就是插入末尾了

4.26 下标查找删除

a=[1,2,3,4,5,6,7,8,9]
print(1 in a)

这个是判断1是否在a里面
在这里插入图片描述

a=[1,2,3,4,5,6,7,8,9]
print(1 not in a)

在这里插入图片描述
判断是不是不存在

a=[1,2,3,4,5,6,7,8,9]
print(a.index(2))

在这里插入图片描述
这个就是返回2的下标

a=[1,2,3,4,5,6,7,8,9]
print(a.index(10))

在这里插入图片描述
直接就抛出异常了

a=[1,2,3,4,5,6,7,8,9]
print(a.pop())
print(a)

在这里插入图片描述
这个就是直接删除最后一个元素

a=[1,2,3,4,5,6,7,8,9]
print(a.pop(1))
print(a)

在这里插入图片描述
这个就是直接对应下标删除

a=[1,2,3,4,5,6,7,8,9]
print(a.remove(1))
print(a)

在这里插入图片描述
这个是删除值1

4.27 列表链接

a=[1,2,3,4,5,6,7,8,9]
b=[10,20,30,40,50,60,70,80,90]
c= a+b
print(c)

在这里插入图片描述
直接加号就可以了

这个不会修改a和b

a=[1,2,3,4,5,6,7,8,9]
b=[10,20,30,40,50,60,70,80,90]
c=a.extend(b)
print(a)
print(c)

在这里插入图片描述
extend就是在原数组上添加
None就是啥也不是

a=[1,2,3,4,5,6,7,8,9]
b=[10,20,30,40,50,60,70,80,90]
a+=b
print(a)

在这里插入图片描述

4.28 元组操作

元组也是数组,只不过元组是在创建元组的时候就设定好了元素,不能修改

a=()
b=tuple()
print(type(a))
print(type(b))

在这里插入图片描述

a=(1,2,3)
print(a)

在这里插入图片描述
也可以a[1],len(a),a[-1]
a[100]就会报错了
也可以切片
a[1:3]
元组和列表是一样的访问方式,但是元组不能修改元素
元组和元组之间也是可以拼接的
元组不能增加和修改,删除数据
不能a[0]=100这种操作

其实函数在return x,y的时候就是返回了一个元组

4.29 字典创建

就是一个存储键值对的结构

a={}
b = dict()
print(type(a))
print(type(b))

在这里插入图片描述
key和value的类型不一定都是一样的

a={'id':1,'name':'zhangsan'}
print(a)

在这里插入图片描述

a={'id':1,'name':'zhangsan'
}

4.30 字典查找key

a={'id':1,'name':'zhangsan'
}
print('id' in a)

在这里插入图片描述
就是判断某个key在不在字典中
不能判断value的
也可以not in

a={'id':1,'name':'zhangsan'
}
print(a['name'])

在这里插入图片描述
注意key可以为整数

a={'id':1,'name':'zhangsan',100:'list'
}
print(a[100])

在这里插入图片描述

4.31 字典的新增修改删除

a={'id':1,'name':'zhangsan',
}
a[100]='list'print(a)

这个就是新增了

在这里插入图片描述

a={'id':1,'name':'zhangsan',
}
a[100]='list'
a[100]='list2'
print(a)

在这里插入图片描述
这样就可以修改了

a={'id':1,'name':'zhangsan',
}
a.pop('name')
print(a)

在这里插入图片描述
这样就可以删除了,操作都是针对key来的

4.32 字典遍历

a={'id':1,'name':'zhangsan',
}
for key in a:print(a[key])

在这里插入图片描述

字典的for拿到的是key
在这里插入图片描述

a={'id':1,'name':'zhangsan',
}
print(a.keys())
print(a.values())

在这里插入图片描述
dict_keys可以直接当做列表使用

a={'id':1,'name':'zhangsan',
}
print(a.keys())
print(a.values())
print(a.items())

在这里插入图片描述
这是一个列表,列表每个元素是元组

a={'id':1,'name':'zhangsan',
}
for key,value in a.items():print(key,value)

在这里插入图片描述

4.33 key的类型

print(hash(0))

这个是计算hash值

print(hash('hello'))

在这里插入图片描述
不能对列表进行hash,可以对元组进行hash
不能对字典进行hash

不可变的对象是可以hash的,列表字典是不可hash的

4.34 打开文件

在这里插入图片描述
在这里插入图片描述

f = open('D:/PythonProject/a.txt','r')

第一个是打开文件路径,第二个表示什么方式打开,有r,w,a,,,a是追加写

print(f)
print(type(f))

在这里插入图片描述
f就是一个文件对象,就是句柄

4.35 关闭文件

f.close()

这样就可以关闭了
文件打开完一定要关闭–》关闭系统资源
在这里插入图片描述

4.36 写文件

f = open('D:/PythonProject/a.txt','w')
f.write('hello world')
f.close()

在这里插入图片描述

r方式打开时不能write的

f = open('D:/PythonProject/a.txt','w')
f.close()

在这里插入图片描述

直接w方式打开,会把原来的内容清空

f = open('D:/PythonProject/a.txt','a')
f.write('hello world')
f.close()

在这里插入图片描述

a方式打开就不会情况原来的内容了
\n就可以换行了

已经关闭的文件不能写

4.36 读文件

f = open('D:/PythonProject/a.txt','r')
res = f.read(2)
print(res)
f.close()

在这里插入图片描述
在这里插入图片描述

这个表示读取前面两个字符,但是读的不一样,这个是因为编码问题

f = open('D:/PythonProject/a.txt','r',encoding='utf-8')
res = f.read(2)
print(res)
f.close()

在这里插入图片描述
encoding='utf-8’是关键字参数,默认是gpk
指定encoding为utf8
一个汉字就是一个字符
记得a.txt也必须是utf8

f = open('D:/PythonProject/a.txt','r',encoding='utf-8')
for line in f:print(line)
f.close()

在这里插入图片描述

这个是按照行来读取了
但是有多的一行是因为print自带换行

f = open('D:/PythonProject/a.txt','r',encoding='utf-8')
for line in f:print(line,end='')
f.close()

在这里插入图片描述

end表示末尾啥都不加,默认为换行

f = open('D:/PythonProject/a.txt','r',encoding='utf-8')
lines  = f.readlines()
print(lines)
f.close()

在这里插入图片描述

readlines就是一起读完了,然后放在列表中

4.37 上下文管理器

—》自动关闭的东西
自动close
在这里插入图片描述
就怕忘记关闭

with open('D:/PythonProject/a.txt','r',encoding='utf-8') as f:print(f.read(2))

这个with就是自动关闭的,就是跳出了with就会自动关闭了,而且open赋值给变量f

总结


文章转载自:

http://9HGH2DhF.rqckh.cn
http://ADvTlPau.rqckh.cn
http://V1r6mXkW.rqckh.cn
http://rM4epJnu.rqckh.cn
http://0vHIFerm.rqckh.cn
http://6bJmJ5BL.rqckh.cn
http://CGIVlHSN.rqckh.cn
http://t4tvhoO4.rqckh.cn
http://QfQpTRoz.rqckh.cn
http://89gTKXgY.rqckh.cn
http://2cAEET6c.rqckh.cn
http://UBKO5FY2.rqckh.cn
http://6D8bugyp.rqckh.cn
http://MkUK9uIx.rqckh.cn
http://QmqdYjPy.rqckh.cn
http://AS2Fod9M.rqckh.cn
http://Su9JNXGn.rqckh.cn
http://B9LN8qnx.rqckh.cn
http://V7jSH72n.rqckh.cn
http://balbb6Pl.rqckh.cn
http://JWJlrazD.rqckh.cn
http://14vwA5JY.rqckh.cn
http://zC8IUA6A.rqckh.cn
http://3Y14HorN.rqckh.cn
http://ts34hJx0.rqckh.cn
http://SlBDQ4LK.rqckh.cn
http://6VJMnvDu.rqckh.cn
http://Rrbn2isz.rqckh.cn
http://8dfQHQih.rqckh.cn
http://J8RZuJyY.rqckh.cn
http://www.dtcms.com/a/372471.html

相关文章:

  • FastApi框架
  • 单片机的bin、exe、elf、hex文件差异
  • 基于ResNet50的智能垃圾分类系统
  • 大模型推理参数讲解
  • Linux 性能调优之 OOM Killer 的认知与观测
  • Linux->日志的实现
  • 西门子 S7-200 SMART PLC :3 台电机顺启逆停控制(上篇)
  • SAP系统两种部署方式:公有云VS私有云 企业如何选择?
  • 用博图FB类比c#中sdk的api
  • 8.渗透-.虚拟机安装
  • Redis基础(含常用命令等以快速入门)
  • 做T投资学:从入门到精通
  • 特征平台学习总结
  • 每天五分钟深度学习:前向算损失,反向算梯度,梯度下降更新参数
  • 淘宝商品详情高级版(item_get_pro)调用详解
  • python进程,线程与协程
  • [特殊字符] 基于Qwen Coder的上下文工程编程框架,为AI辅助开发提供标准化流程
  • 升级PyCharm后,解释器配置正确、模块安装正确,但脚本就是找不到
  • 实现自己的AI视频监控系统-第四章-基于langchain的AI大模型与智能体应用1
  • 155. 最小栈
  • 【开题答辩全过程】以 基于微信小程序校园综合服务平台的设计与实现为例,包含答辩的问题和答案
  • 001-Pandas的数据结构
  • QProxyStyle类中的drawPrimitive函数的作用
  • LangChain4j RAG流程全解析
  • 【应用案例】AI 给医用过滤器 “找茬”:3 大难点 + 全流程解决方案
  • VBA之Word应用第四章第二节:段落集合Paragraphs对象(二)
  • Git 工作流与分支管理实战:rebase vs merge 对比、冲突解决、规范 Commit Message 与主干稳定性最佳实践
  • 《沈南鹏传 - 做最擅长的事》(上篇)天才的成长之路-读书笔记
  • C++笔记之同步信号量、互斥信号量与PV操作再探(含软考题目)
  • C语言运算符