python语法入门


前言

介绍python相关语法,及部分库函数的使用,有待完善


一、Python开发环境搭建

1.1 安装Python解释器

https://download.csdn.net/download/weixin_44567668/86399417

1.2 运行方法

print("Hello World")

①在IDLE输入代码,按F5运行
②在命令提示符里输入Python进入Python环境,输入代码按回车即可运行,最后输入exit()退出安装Python环境
③用记事本或者notepad++写代码,保存为 .py格式文件,然后用命令提示符或者IDLE运行文件

1.3 Python第三方库安装

1.3.1 pip工具安装(在命令行里运行)

pip -h #列出pip子命令
pip install pygame #安装pygame库
pip install -U pip #更新已安装库的版本,这里用pip更新本身
pip uninstall pygame #卸载pygame库
pip list #列出当前系统已安装的第三方库
pip show pip#列出某个已经安装库的信息
pip download Pyqt5  #下载Pyqt5
pip search installer #联网搜索installer库名或者关键字

1.3.2 文件安装
登录http://www.lfd.uci.edu/~gohlke/pythonlibs/
找到对应的文件下载到本地,然后用pip命令指定地址安装

二、python语法元素

2.1 程序格式框架

Python采用缩进(可以用Tab或者4个空格)来表明格式框架
# 符号为python语言注释符
单层缩进代码属于之前最邻近的一行非缩进的代码
多层缩进代码根据缩进关系决定所属范围

#e2.1TempConvert.py
TempStr = input("请输入带有符号的温度值: ")
while TempStr[-1] not in ['N','n']:
    if TempStr[-1] in ['F','f']:
        C = (eval(TempStr[0:-1]) - 32)/1.8
        print("转换后的温度是{:.2f}C".format(C))
    elif TempStr[-1] in ['C','c']:
        F = 1.8*eval(TempStr[0:-1]) + 32
        print("转换后的温度是{:.2f}F".format(F))
    else:
        print("输入格式错误")
    TempStr = input("请输入带有符号的温度值: ")

2.2 命名与保留字

保留字也称关键字,指被编程语言内部定义并保留使用的标识符,程序员不能定义与保留字相同的标识符,python3有33个保留字

FalsedefifraiseNone
delimportreturnTrueelif
intryandelseis
whileasexceptlambdawith
assertfinallynonlocalyieldbreak
fornotclassfromor
continueglobalpass

2.3 字符串

字符串包含两种序号体系:正向从0递增序号;反向从-1递减序号

也可以采用[N:M]格式进行区间访问,从N到M访问(不包括M)的字符串

TempStr = "110C"
print(TempStr[-1])
print(TempStr[0:-1])

输出如下:
C
110

2.4 赋值语句

t = x
x,y = y,x

2.5 input()函数

用户在控制台输入什么内容,input()函数都以字符串类型返还结果

TempStr = input("请输入带有符号的温度值: ")

2.6 eval()函数

将输入的字符串转化为Python语句,即变成数字或字符,输入如果直接输入带引号的,将会将其解释成变量,如果没有声明则会报错

#输出2
x = 1
eval(''x+1')
#输出102
TempStr = "102C"
eval(TempStr[0:-1])
#输出hello
eval("'hello'")

2.7 print()函数

配合format()将输出变量整理成期望输出的格式

C = (eval(ValueStr[0:-1]) - 32)/1.8
print("转换后的温度是{:.2f}C".format(C))

三、基本数据类型

3.1 数字类型

3.1.1整数类型

进制类型引导符号描述
十进制如102,-142
二进制0b或0B0b101
八进制0o或0O0o711
十六进制0x或0X0xABC

3.1.2浮点数类型

用字母e或者E作幂的符号,以10为基数

3.1.3复数类型

复数的虚数通过后缀“J”或者“j”来表示

3.2 数字类型的操作

3.2.1数值运算操作符

操作符描述
x+yx和y之和
x-yx与y之差
x*yx与y之积
x/yx与y之商
x // yx与y的整数商
x % yx对y取余
-xx的负值
x ** yx的y次幂

3.2.2数值运算函数

函数描述
abs(x)x的绝对值
divmod(x,y)(x//y,x%y),输出为二元组形式
pow(x,y[,z])(x**y)%z
round(x[,ndigits])对x四舍五入,保留ndigits位小数
max(x1,x2,…)求最大值
min(x1,x2…)求最小值

3.2.3数字类型转换函数

函数描述
int(x)将x转化为整数,x可以是浮点数或字符串
float(x)返回浮点数x或字符串x对应的整数类型
complex(re[,im])生成一个复数,实部为re可以为字符串,虚部为im不可以为字符串

3.3 字符串类型表示

3种表示方法:
单引号字符串:可以使用双引号作为字符串的一部分
双引号字符串:可以使用单引号作为字符串的一部分
三引号字符串:出了可以表示使用双引号和单引号,也可以换行
字符串以Unicode编码存储,因此字符串英文和中文都算作1个字符,其中\表示转义

特殊的格式化控制字符:

字符含义
\a蜂鸣,铃声
\b回退
\f换页
\n换行
\r回车
\t水平制表
\v垂直制表
\0NULL

3.4 基本字符串操作符

操作符描述
x+y链接两个字符串x与y
x * n复制n次字符串x
x in s如果x是s的子串,返回True,否则返回False
str[i]索引,返回第i个字符
str[N:M]切片,返回索引第N到M的子串,其中不包含M

3.5 内置字符串处理函数

函数作用
len(x)返回字符串x的长度
str(x)返回任意类型x所对应的字符串形式
chr(x)返回Unicode编码x对应的单字符
ord(x)返回单字符表示的Unicode编码
hex(x)返回整数x对应十六进制的小写形式字符串
oct(x)返回整数x对应八进制的小写形式字符串

3.6 内置字符串处理方法

方法描述
str.lower()返回字符串str的副本,全部字符小写
str.upper()返回字符串str的副本,全部字符大写
str.islower()当str所有字符都是小写时,返回True,否则返回False
str.isprintable()当str所有字符都是可打印时,返回True,否则返回False
str.isnumeric()当str所有字符都是数字时,返回True,否则返回False
str.isspace()当str所有字符都是空格时,返回True,否则返回False
str.endswith(suffix[,start[,end]])str[start:end]以suffix结尾返回True,否则返回False
str.startswith(prefix[,start[,end]])str[start:end]以prefix[结尾返回True,否则返回False
str.split(sep=None,maxsplit=-1)返回一个列表,由str根据sep被分配的部分构成
str.count(sub[,start[,end]])返回str[start:end]中sub子串出现的次数
str.replace(old,new[,count])返回字符串str的副本,所有old子函数被替换成new,如果count给出,则前count次old出现被替换
str.center(width[,fillchar])字符串居中函数
str.strip([chars])返回字符串str的副本,在其左侧和右侧去掉chars中列出的字符
str.zfill(width)返回字符串str的副本,长度位width,不足部分在右侧添0
str.format()返回字符串str的一种排版格式
str.join(iterable)返回一个新字符串,由组合数据类型iterable变量的每个元素组成,元素间用str分割

3.7 字符串格式化

3.7.1 format()方法的基本使用

<模板字符串>.format(<逗号分隔函数>)

如果大括号内没有序号,则按出现顺序替换
如果大括号指定了序号,按照序号对应的参数替换

"圆周率{{{1}{2}}}是{0}".format("无理数",3.1415,"...")
#输出:圆周率{3.1415...}是无理数

3.7.2 format()方法的格式控制

<填充><对齐><宽度><,><.精度><类型>
引导符号用于填充的单个字符<左对齐>右对齐^居中对齐槽的设定输出宽度数字的千位分隔符小数精度或字符串长度整数类型或浮点数类型

四、程序控制结构

4.1 分支结构

单分支结构:if语句
二分支结构:if-else语句
多分支结构:if-elif-else语句

Python关系操作符:

操作符含义
<小于
<=小于或等于
>=大于或等于
大于
==等于
!=不等于
PM = eval(input("请输入PM2.5数值: "))
if 0<= PM < 35:
    print("空气优质,快去户外运动!")
elif 35 <= PM <75:
    print("空气良好,适度户外活动!")
else:
    print("空气污染,请小心!")

4.2 循环结构

4.2.1 遍历循环:for循环

for <循环变量> in <遍历结构>:
	<语句块>
else:
	<语句块>

4.2.2 无限循环语句

While <条件>:
	<语句块>
else:
	<语句块>

4.2.3 循环保留字:

break:用来跳出最内层for或while循环
continue:结束当前当次循环,继续下一次循环

for s in "PYTHON"
	if s=="T":
		break
	print(s,end="")

4.3 程序的异常处理

可以用来发生错误时,抛出错误信息

try:
	<语句块1>
except: <异常类型1>:
	<语句块2>
else:
	<语句块3>
finally:
	<语句块4>

示例代码:

try:
    alp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    idx = eval(input("请输入一个整数: "))
    print(alp[idx])
except NameError:
    print("输入错误,请输入一个整数!")  
except:
    print("其他错误")

五、函数与代码复用

5.1 函数的定义

语法形式如下:

def <函数名> (<参数列表>):
	<函数体>
	return <返回值列表>

示例代码:

def happy():
    print("Happy birthday to you!")
def happyB(name):
    happy()
    print("Happy birthday, dear {}!".format(name))
    happy()
happyB("Mike")
print()
happyB("Lily")

5.2 lambda函数——匿名函数

匿名函数并非没有名字,而是将函数名作为函数结果返回,语法格式如下:

<函数名> = lambda <参数列表> : <表达式>

等价于:

def <函数名> (参数列表):
	return <表达式>
f = lambda x,y : x+y
f(10,12)

5.3 函数参数传递

5.3.1 可选参数和可变数量参数

当函数被调用的时候,没有对应的参数值,则使用函数定义的默认值代替,可选参数必须定义在非可选参数的后面

def dup(str,time = 2):
	print(str*times)
dup("knock~")
dup("knock~",4)

在参数前加上*即可变成可变数量参数,可变数量参数只能在参数列表后面

def vfun(a,*b):
	for n in b:
		a += n
	return a
vfun(1,2,3,4)

5.3.2 参数位置和名称的传递

Python提供了按照形参名称输入的方式

示例代码:

func(x1,x2)
	return
result = func(x2=1,x1=4)

5.2.3 函数的返回值

return可以将函数运算结果返回给函数被调用的参数。函数退出后,局部变量被释放,全局变量的值没有改变

5.4 库的引用

使用import引用函数库有以下两种方式:
方式一,调用库名中所有函数:

import <库名>
#使用库函数格式
<库名>.<函数名> (<函数参数>)

示例代码如下:

import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()

方式二,使用函数时不需要写库名:

from <库名> import <函数名,函数名,.....>
from <库名> import * # *是通配符,表示所有函数
#调用方式如下
<函数名> (<函数参数>)

示例代码如下:

from turtle import *
setup(650, 350, 200, 200)

六、组合数据类型

组合序列类型可以分成3类:序列类型、集合类型和映射类型

6.1 序列类型

序列类型是元素向量,元素之间存在先后关系,通过序号访问。Python中很多数据类型是序列类型,其中比较重要的有str(字符串)、tuple(元组)和list(列表)。

  • 6.1.1序列类型操作符和函数如下:
操作符描述
x in s如果x是s的元素,返回True,否则返回False
x not in s如果x不是s的元素,返回True,否则返回False
s + t连接s和t
s * n将序列s复制n次
s[i]索引,返回序列第i个元素
s[i:j]分片,返回包含序列s第i到j个元素的子序列(不包含第j个元素)
s[i:j:k]步骤分片,返回包含序列s第i到j个元素以k为步数的子序列
len(s)序列s的元素个数
min(s)序列s的最小元素
max(s)s的最大元素
s.index(x[,i[,j]])序列s从i开始到j位置中第一次出现x的位置
s.count(x)序列s中出现x的总次数
  • 6.1.2 列表类型和操作

列表用中括号[]表示,也可以通过list()函数将元组或字符串转化成列表

列表类型的操作:

函数或方法描述
ls[i] = x替换列表ls第i数据项为x
ls[i:j]=lt用列表lt替换列表ls第i到第j项数据(不含第j项)
ls[i:j:k]=lt用列表lt替换列表ls第i到第j项以k为步数数据
del ls[i:j]删除列表ls第i到第j项数据
del ls[i:j:k]删除列表ls第i到第j项以k为步数的数据
ls+=lt 或ls.extend(lt)将列表lt元素添加到ls中
ls *= n更新列表ls,其元素重复n次
ls.append(x)在列表ls最后添加一个元素x
ls.clear()删除ls所有元素
ls.copy()生成一个新列表,复制ls中的所有元素
ls.insert(i,x)在列表ls的第i位置增加元素x
ls.pop(i)将列表ls中的第i项元素取出并删除该元素
ls.remove(x)将列表中出现的第一个元素x删除
ls.reverse()列表ls中元素反转
  • 6.1.3 元组

元组采用逗号和圆括号来表示,元组一旦建立就不能被修改。元组除了用于表达固定数据项,还可以用于以下3种情况:函数多返回值、多变量同步赋值、循环遍历

#元组的创建
creature = "cat","dog","tiger" 
color = ("red",0x0011,creature)
#函数多返回值
def func(x):
	return x,x**3
#多变量同步赋值
a,b = 'dog','tiger'
a,b = (b,a)
#循环遍历
for x,x in ((1,0),(2,5),(3,8)):
	print(math.hypot(x,y))

6.2 集合类型

集合类型是元素集合,元素之间无序。集合中元素不可重复,元素类型只能是固定类型。

集合用大括号{}表示:

S = {425,"BIT",(10,"CS")}

集合类型操作符如下所示:

操作符描述
S-T或S.difference(T)返回一个新集合,在集合S中但不在T中的元素
S-=T 或 S.difference_update(T)更新集合S,包括在集合S中但不在集合T中的元素
S & T 或 S.intersection(T)返回一个新集合,包括同时在集合S和T中的元素
S &=T 或 S.intersection_update(T)更新集合S,包括同时在集合S和T中的元素
S^T 或 S.symmetric_difference(T)返回一个新集合,包括集合S和T中的元素,但不包括同时在其中的元素
S^=T 或 S.symmetric_difference_update(T)更新集合S,包括集合S和T中的元素,但不包括同时在其中的元素
S|T 或 S.union(T)返回一个新集合,包括集合S和T中的所有元素
S|= T 或 S.update(T)更新集合S,包括集合S和T中的所有元素
S<=T 或 S.issubset(T)如果S与T相同或S是T的子集,返回True,否则返回False,可以用S<T判断S是否是T的真子集
S>=T 或 S.issuperset(T)如果S与T相同或S是T的超集,返回True,否则返回False,可以用S>T判断S是否是T的真超集

集合类型的操作函数或方法:

操作函数描述
S.add(x)如果数据项x不子啊集合S中,将x增加带s
S.clear()移除S中的所有数据项
S.copy()返回集合S的一个副本
S.pop()随机返回集合S中的一个元素,如果S为空,产生KeyError异常
S.discard(x)如果x在集合S中,移除该元素;
S.remove(x)如果x在集合S中,移除该元素;如果不在则产生KeyError异常
S.isdisjoint(T)如果集合S与T没有相同元素,返回True
len(S)返回集合S的元素个数
x in S如果x是S的元素,返回True,否则返回False
x not in S如果x不是S的元素,返回True,否则返回False

6.3 映射类型

映射类型是“键-值”数据项的组合,键(key)表示一个属性,值(value)是属性的内容。Python语言通过字典实现映射,字典可以用{}建立:

示例代码如下:

Doc = {"中国":"北京","美国":"华盛顿"}

字典类型的函数与方法:

函数和方法描述
< d >.keys()返回所有的键信息
< d >.values()返回所有的值信息
< d >.items()返回所有的键值对
< d >.get(,)键存在则返回相应值,否则返回默认值
< d >.pop(,)键存在则返回相应值,同时删除键值对,否则返回默认值
< d >.popitem()随机从字典中取出一个键值对以元组(key,value)形式返回
< d >.clear()删除所有键值对
del < d >[< key >]删除字典中某个键值对
< key > in < d >如果键在字典中则返回True,否则返回False

七、文件和数据格式化

7.1文件的打开与关闭

#open()函数格式如下
<变量名> = open(<文件名>,<打开方式>)
#close()关闭文件
<变量名>.close()

文件打开方式:

打开模式含义
‘r’只读模式,如果文件不存在,返回异常FileNotFoundErroe,默认值
‘w’覆盖写模式,文件不存在则创建,存在则覆盖
‘x’创建写模式。文件不存在则创建,存在则返回异常FileExistsError
‘a’创加写模式,文件不存在则创建,存在则在文件最后追加内容
‘b’二进制文件模式
‘t’文本文件模式
‘+’与r/w/x/a一同使用,在原功能基础上增加同时读写功能
textFile = open("7.1.txt","rt") #t 表示文本文件方式
print(textFile.readline())
textFile.close()
binFile = open("7-1.txt","rb") #r 表示二进制文件方式
print(binFile.readline())
binFile.close()

7.2 文件的读写

  • 7.2.1 文件内容读取方法
操作方法含义
< file >.readall()读入整个文件内容,返回一个字符串或字节流*
< file >.read(size=-1)从文件中读入整个文件内容,如果给出参数,读入该行前size长度的字符串和字节流
< file >.readline(size=-1)从文件中读入一行内容,如果给出参数,读入该行前size长度的字符串和字节流
< file >.readline(hint=-1)从文件中读入所有行,以每行为元素形成一个列表,如果给出参数,读入hint行
  • 7.2.2 文件内容写入方法
操作方法含义
< file>,write(s)向文件写入一个字符串或字节流
< file>,writelines(lines)将一个元素全为字符串的列表写入文件
< file>,seek(offset)改变当前文件操作指针的位置,offset的值:0-文件开头;1-当前位置;2-文件结尾

7.3 二维数组的格式化和处理

国际通用的二维数据存储格式:CSV格式,扩展名为.csv。CSV的每一行是一维数据,每行最后一个元素后面包含一个换行符(\n),可以使用Python列表类型表示

  • 7.3.1 CSV文件格式
[
	['passedemissions','mpg','cylinders\n']
	['FALSE','18','8\n']
]
fo = open("price2016.csv", "r")
ls = []
for line in fo:
    line = line.replace("\n","")
    ls.append(line.split(","))
print(ls)
fo.close()

7.4 高维数据格式化

万维网(WWW)通过HTML方式链接并展示不同类型的数据内容,采用XML或JSON格式表达键值对。XML和JSON都可以表达高维数据,但XML对key值要存储两次(< key> < /key>),而JSON只需要存储一次

附录

一、C++语法基础

关于C++语法的学习,见以下文章
https://blog.csdn.net/weixin_44567668/article/details/126098388

二、turtle库语法元素(图形绘制函数库)

  1. 绘制坐标系
    turtle.setup(width,height,startx,starty)
  2. 画笔控制函数
    1)turtle.penup()
    别名:turtle.pu(),turtle.up()
    作用:抬起画笔之后移动画笔不绘制形状
    2)turtle.pendown()
    别名:turtle.pd(),turtle.down()
    作用:落下画笔,之后移动画笔将绘制形状
    3)turtle.pensize(width)
    别名:turtle.width()
    作用:设置画笔宽度,当无参数输入时返回当前画笔宽度。
    Width:设置画笔线条宽度,如果为None或者为空,则函数返回当前画笔宽度
    4)turtle.pencolor(colorstring)或turtle.pencolor((r,g,b))
    作用:设置画笔颜色,当无参数输入时返回当前画笔颜色
  3. 形状绘制函数
    1)turtle.fd(distance)
    别名:turtle.forward(distance)
    作用:向小海龟当前行进方向前进distance距离
    2)turtle.seth(to_angle)
    别名:turtle.setheading(to_angle)
    作用:设置小海龟当前行进方向to_angle,该角度时绝对方向角度值
    3)turtle.circle(radius,extent=None)
    作用:根据半径radius绘制extent角度的弧形
    4)函数的封装:通过def定义一个函数,将上面需要的参数封装起来
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

别问,问就是全会

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

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

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

打赏作者

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

抵扣说明:

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

余额充值