python基础语法--python语言及其应用

python基础语法

python引言

python

  • python语言是一种高级动态、完全面向对象的语言。
  • python中函数、模块、数字、字符串都是对象。
  • python完全支持继承、重载、派生、多继承。

python程序
运行方式1:交互式运行python语句
运行方式2:保存源文件运行程序
交互式运行python语句

  • 打开IDLE–科学计算器
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020092819524773.png#pic_r

  • 第一行程序代码编写
    在这里插入图片描述

IDLE里编程步骤
1."File->New File"打开文件编译器窗口。
2.输入代码。
3.“File ->Save”保存文件。
4.“Run->Run Module”运行,查看结果。
在这里插入图片描述

pycharm

  • 语法高亮、代码检查、智能补全
  • 快速修复、project管理、单元测试、导航功能
  • Tools->Python Console 调出命令行界面来执行单条语句。

简单IDLE联系

  • 注意对齐与缩进
  • 注意字母大小写、空格
  • 注意左右括号的配对

上机练习 1.0

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

python语言介绍

python语言风格

  • 优雅、明确、简单。
  • 代码强制缩进。
  • 程序是写给人读的,编程规范。
  • python 哲学 import this

python数据的对象以及组织
数据:是信息的表现形式和载体。对现实世界实体和概念的抽象。
大数据:Volume、Velocity、Variety、Value、Veracity

python数据类型归纳
1.简单数据类型:int、float、complex(复数)、bool、str
2.容器类型用来组织这些值:list、tuple、set、dict
注:数据类型之间几乎都是可以转换的。

python组织方式
1.无组织、标签式组织数据、队列、图、栈、树等。
2.对大量的数据进行处理的时候、需要建立各种各样的数据组织,以便提高计算效率。

python计算和控制流

1.计算:计算是对现实世界处理和过程的抽象。
2.数据对象:各种类型的数据对象,可以通过各种运算组织成复杂的表达式。
3.运算语句:将表达式赋值给变量进行引用;赋值语句用来实现处理与暂存。
4.控制流语句:控制流语句用来组织语句描述过程。(顺序结构、条件分支、循环)。
5.定义语句:定义语句也用来组织语句,把一系列运算语句集合起来给一个名字。描述一个包含一系列处理过程的计算单元,主要为了源代码的各种复用。python可以定义函数、类等代码对象。调用函数或类也可以得到数据对象,python里所有可调用的事物称为callable。

python基本类型-数值型

1.整数:int-最大特点是不限制大小(python3)
2.计算:.+、-、*、/、//(整数取余)、%(求余数)、m**n(m的n次方)、abs(m)(求绝对值)、divmod(m,n)(会得到两个整数,一个是m//n,一个是m%n)。
3.判断:==、>=、<=、<、>(比较判断真或假)
4.数的进制:十进制、二进制、八进制、十六进制 例:常用的十进制是0-9,十个不同的符号,逢十进一。
5.十进制:xxx 二进制:0bxxx 八进制:0oxxx 十六进制:0xxxx
6.float浮点数类型:受到17位有效数字的限制。(避免相等判断)
7.复数类型(a+bj):.imag显示虚部,.real显示实部。复数不可以做大小比较。复数取模-abs。
在这里插入图片描述
8.数学函数模块:math函数-计算整数和浮点数。
在这里插入图片描述
9.数据函数模块:cmath函数-计算复数-平面直角坐标与极坐标转换。
在这里插入图片描述

python基本类型-逻辑值

1.逻辑类型(bool):仅包括真True或假False两个。
2.计算:与and(双目-同真为真)、或or(双目-有真为真)、非not(单目-真为假、假为真)
3.优先级:not>and>or(尽量使用小括号表示优先级)
4.None:None=无意义、不知道、假、空值。

python基本类型-字符串

1.字符串:字符串就是把一个个文字的字符“串起来”的数据。
2.文字字符:文字字符包含拉丁字母、数字、标点符号、特殊符号,以及各种语言文字字符。
3.表示方法:用双引号或者单引号都可以表示字符串,但必须成对,多行字符串用三个连续单引号或多引号表示。
4.特殊字符:用转义符号“\”表示。

转义字符 描述
(在行尾时) 续行符
\ 反斜杠符号
单引号
" 双引号
\a 响铃
\b 退格
\e 转义
\000
\n 换行
\v 纵向制表
\t 横向制表
\r 回车
\f 换页
\oyy 八进制数yy代表的字符
\xyy 十进制yy代表的字符
\other 其它字符以普通格式输出

5.字符的编号:0(第一个).1.2…正向或-1(最后一个).-2.-3…负向,用这种整数编号可以从字符串中抽取任何一个字符。
6.字符串是数据本身。名字是数据的标签。名字和字符串是“名”和“值”之间的关系。字符串数值只能是字符串类型,名字则可以关联任意类型的数值。
7.常见的字符串操作

  • 获取字符串的长度:len函数
  • 切片操作(slice):s[start: end :step]–左闭右开即包含start不包含end。
  • 加法(+):将两个字符串进行连接,得到新的字符串。
  • 乘法(*):将字符串重复若干次,生成新的字符串。
  • 判断字符串内容是否相同(==)。
  • 判断字符串是否包含某个字符串(in)。
  • 删除空格:
    str.strip:去掉字符串前后的所有空格,内部的空格不受影响。
    str.lstrip:去掉字符串前部(左部)的所有空格。 str.rstrip:去掉字符串后部(右部)的所有空格。 判断字母数字:
    str.isalpha:判断字符串是否全部由字母构成。 str.isdigit:判断字符串是否全部由数字构成。
    str.isalnum:判断字符串是否仅包含字母和数字。而不包含特殊字符。
  • 字符串的高级操作: split:分割 、 join:合并upper/lower/swapcase:大小写相关、Ijust/center/rjust/:排版左中右对齐、replace:替换子串。

8.序列(sequence):能够按照整数顺序排列的数据。
9.序列的内部结构:可以通过0开始的连续整数来索引单个对象。可以执行切片,获取序列的一部分。可以通过len函数来获取序列中包含多少元素。可以用加法“+”来连接为更长的序列。可以用乘法“*”来重复多次,成为更长的序列。可以用“in”来判断某个元素是否在序列中存在。

变量与应用

1.给数据命名:命名语法:<名字> = <数据> 命名规则 :字母和数字组合而成,下划线“_”算字母,字母区分大小写。不带特殊字符(如空格、标点、运算符等)。名字的第一个字符必须是字母,而不能是数字。在python3开始文字的命名规则中,汉字算字母。
2.名字:名字就像一个标签一样,通过赋值来“贴”在某个数据数值上。名字与数值的关联,称为引用。关联数值后的名字,就拥有了数据的值和类型。一个数值可以和多个名字关联。
3.变量:与数值关联的名字也称作变量,表示名字的值和类型可以随时变化。变量可以随时指向任何一个数据对象,变量的类型随着指向的数据对象类型改变而改变。
4.赋值:名字与数据对象关联的过程,称为给变量的赋值。“==”(相等关系)是对数值的相等性进行判断。“=”(赋值号)则是计算等号右边式子的值,赋值给等号左边的变量。
5.赋值语句:通过赋值号将变量和表达式左右相连的语句。
6.赋值语句多种形式:<名字>=<数据>、a=b=c=1、a,b,c=7,8,9、price +=1(自运算)、price /=3+4

上机练习2.0

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

列表

1.数据收纳盒:用来收纳数据对象的数据类型,以一种规则的下标索引方式(收纳盒名字+数据序号)访问到每个数据。这种收纳盒师是一种序列。
2.列表可以删除、添加、替换、重排序列中的元素(可变类型)。
3.创建列表:方括号法[]、指明类型法list()。
4.列表的操作

  • 增长列表:append操作-在列表末尾加上一个数据对象 。insert操作-在列表中间指定位置插入一个数据对象。 extend操作-把两个列表中一个列表接在另一个列表后面。
  • 缩减列表:pop操作-在列表中间指定位置提取并移除,无参数的pop默认移走最后一个。remove操作-根据列表中指定对象的值进行移除。clear操作-整个列表变成一个空列表。
  • 列表是一种可变容器,可随意增减。但兵说不定所有的数据容器都能像列表这样可以继续添加新元素。
  • 重新组织:reverse操作-把列表中的数据元素头尾反转重新排列。sort操作-把列表中的数据元素按照大小重新排列。reversed/sorted操作:得到对应重新排列的列表,而不影响原来的列表。

在这里插入图片描述

方法名称 使用例子 说明
append alist.append(item) 列表末尾添加元素
insert alist.insert(i,item) 列表中i位置插入元素
pop alist.pop() 删除最后一个元素,并返回其值
pop alist.pop(i) 删除第i个袁术,并返回其值
sort alist.sor() 将表中元素排序
reverse alist.reverse() 将表中元素反向排序
del del alist[i] 删除第i个元素
index alist.index(item) 找到item的首次出现位置
count alist.count(item) 返回item在列表中出现的次数
remove alist.remove(item) 将item的首次出现删除

元组

1.元组是不能再更新(不可变)序列。元组在保留列表大多数功能的同时,去掉了一些灵活性以换取更高的处理性能。
2.创建元组:圆括号法()、指明类型法tuple().
3.列表或元组中保存的各个数据称作元素,类型没有限制。

  • 合并:加法运算(+)-连接两个列表/元组。乘法运算(*)-复制n次,生成新列表/元组。
  • 列表/元组大小 len():列表/元组中元素的个数。
  • 索引:alist[n]或atupie[n]-求编号为n的元素。可以用赋值语句给列表中的任何一个位置重新赋值。但元组属于不可变类型,索引只能获取对应位置中的数据值,不可重新赋值。
  • 切片: alist[start: end :step] atuple[start: end :step] (左闭右开)
  • 查找:in操作-判断某个元素是否存在于列表/元组中。index操作-指定的数据在列表/元组的哪个位置。count操作:指定的数据在列表/元组中出现过几次。
  • 计算:sum函数-将列表中所有的数据元素累加。min/max函数-返回列表中最小/最大的数据元素。

字典

1.标签收纳盒:给数据贴上标签,就可以通过具有 特定含义的名字或者别的记号来获取数据。
2.通过标签(或者关键字)来索引数据,区别于列表或元组通过连续的整数来索引。
3.字典容器中保存着一些连的key-value对。通过键key来索引元素value。字典中的元素value没有任何顺序,可以是任意类型,甚至也可以是字典。字典的键值key可以是任意不可变类型(数值/字符串/元组)。
4.创建一个字典:花括号法和指明类型法
5.在字典中的每一项称为数据项,字典中保存的各个标签-数据值(key-value)。标签与数据值之间用冒号“:”连接。
6.批量添加数据项:例:student = dict.fromkeys((“name”,“age”))
7.字典是可变类型,可添加、删除、替换元素。

  • 合并字典:updata方法。
  • 增长字典:“关联”操作、updata操作-以key=value的形式批量添加数据项。
  • 缩减字典:del操作-删除指定标签的数据项。 pop操作-删除指定的数据项并返回数据项。 popitem操作-删除并返回任意一个数据项。 clear操作-清空字典

8.字典大小:len函数
9.标签索引:dict[key] 获取字典中指定标签的数据值。更新指定标签的数据项。get操作不是变量,不能更改。
10.获取字典的标签、数据值和数据项:keys函数-返回字典中所有标签。 values函数-返回字典中的所有数据值。 items函数-将每个数据项表示为二元元组,返回所有数据项。
11.在字典中查找:in操作-判断字典是否存在某个标签。in操作和values函数的组合-判断字典中是否存在某个数据值。

集合

1.标签带:通过改造字典类型,去掉关联数据值,只留下标签的新容器类型。
2.集合是不重复元素的集合。
3.创建一个集合:{}或者set() 用set()创建空集、用set()从其他序列转换生成集合。
4.集合会自动忽略重复数据,集合中不能加入可变类型数据。
5.增长集合:add-添加一个数据。 update-批量添加数据。
6.缩减集合:remove/discard-删除指定数据。pop-删除任意数据并返回值。clear-清空集合。
7.集合大小:len函数
8.访问集合中的元素:in-判断元素是否属于集合。 pop-删除数据元素的同时,返回它的值取遍所有元素之后,集合成为一个空集。可以用copy操作先给集合做一个替身。
9.集合运算

运算 运算符 新集合方法 更新原集合方法
alb union update
a&b intersection intersection_update
a-b difference difference_update
对称差 a^b symmetric_difference symmetric_difference_update

10.交集:isdisjoint():两集合交集是否为空。适用于快速去除重复的数据项。适用于判断元素是否在一组数据中,如果这些数据的次序不重要,使用集合可以获得比列表更好的性能。

可变类型和不可变类型

1.列表:可以接长、拆短的积木式收纳盒。 元组:固定长短的收纳盒。
2.不可变类型:一旦创建就无法修改数据值的数据类型。(整数、浮点数、复数、逻辑值、元组、字符串)
3.可变类型:可以随时改变的数据类型。(列表、字典、集合)
4.灵活性强会花费一些计算或者存储的代价去维护这些强大的功能。
5. 变量引用特征:可变类型的变量操作需要注意,多个变量通过赋值引用同一个可变类型变量时,通过其中任何一个变量改变了可变类型对象,其它变量也随之改变。
建立复杂的数据结构
1.用方括号[]创建的列表、用圆括号()创建元组、用花括号{}创建字典、每种类型中,都可以通过方括号[]对单个元素进行访问。
2.对于列表和元组,方括号里都是整型的偏移量。对于字典,方括号里是键。都能返回元素值。
3.将这些内置数据结构自由的组织成更大、更复杂的结构。创建自定义数据结构的过程中,唯一的限制来自于这些内置数据类型本身。

输入和输出

1.input函数:input(prompt)-显示提示信息prompt,由用户输入内容,input()返回值是字符串,通过int()函数将字符串类型强制转换为整型。
在这里插入图片描述
2.print函数:print([object,…][,sep=’’][,end=’\n’][,file=sys.stdout])-打印各变量值的输出。sep-表示变量之间用什么字符串隔开,缺省是空格。end-表示以这个字符串结尾,缺省为换行。file-指定了文本将要发送到的文件、标准流或其它类似的文件的对象,默认是sys.stdout(标准输出/终端输出)。
3.print函数-格式化字符串:print函数默认把对象打印到stdout流,并且添加了一些自动的格式化(可以自定义分隔符和行末符)。
在这里插入图片描述

上机练习3.0

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

计算和控制流

1.“冯.诺伊曼结构”计算机:冯.诺伊曼-计算机之父。
2. 计算机硬件五大部件

  • 运算器:进行算术和逻辑运算。
  • 控制器:控制计算机持续协调运行。
  • 存储器:存储数据和逻辑。
  • 输入设备:从计算机外部获取数据。
  • 输出设备:将计算结果反馈给外界。

3.计算机内部运行过程-基本步骤
(1)控制器从存储器中取出程序语句和额外数据。
(2)数据齐全的语句交给运算器进行算术或者逻辑运算。
(3)运算结果再存回存储器。
(4)控制器确定下一条程序语句,回到步骤1继续。
例:赋值语句<变量>=<表达式>
python语言的赋值语句很好地对应了“运算”和“存储”。
赋值语句的执行语句语义为:计算表达式的值,存储起来,贴上变量标签以便将来引用。与计算机运行过程中的“计算”和“存储”相对应。
“控制器确定下一条程序语句”即对应“控制”。

控制流程

1.控制流程:在计算机运行过程中,“下一条语句”决定了计算机是能够自动调整、自动反复操作,还是只能像计算器那样一步接着一步计算。这种决定“下一条语句”的机制,在程序设计语言中称作“控制流程”。
2.python语句中的控制流程

  • 顺序结构:按照语句队列前后顺序来确定下一条将要执行的语句。
  • 条件分支结构:根据当前情况选择下一条语句发位置。
  • 循环结构:周而复始地执行一系列语句。

3.简单类型与容器类型

  • 简单类型和容器类型之间的关系,就像玻璃珠与盒子、苹果与口袋
  • 简单类型是实体对象。
  • 容器类型是结构,将实体对象进行各种组织和编排。
类别 对象实体 容器
数据 数值类型、逻辑类型、字符串类型 列表、元组、字典、集合、子集
计算 赋值语句 顺序结构、条件分支结构、循环结构

4.计算语句和结构语句:就像简单类型和容器类型之间的关系。用顺序、条件分支和循环结构,来对各个赋值语句进行编排,最终成为解决问题的程序。
控制流-条件分支结构
1.条件分支:让程序有了判断力,根据计算机内部的情况(如变量值),来决定下一步做什么,这样的控制流程,就称为条件分支。根据预设条件来控制下一步该运行哪段语句。
2.基本要素:预设的判断条件、达成条件后执行的语句。
3.扩展要素:当体哦阿健不满足执行的语句、多条件时那个满足执行那个条件。

条件语句

1.条件语句

if<逻辑表达式>:
    <语句块1>
    ......
  else:
     <语句块2>  
  • if和else都是“保留字”
  • “逻辑表达式”是指所有运算的结果为逻辑类型(True或False)的表达式。
  • “语句块”就是条件满足后执行的一组语句
  • 冒号表示语句层次。
  • 各种数据类型中某些值会自动转换为False,其它值则是True

2.多种情况的条件语句

  • 用else子语句进行判定
  • 使用elif语句进行判定
if <逻辑表达式1>:
  <语句块1>
elif <逻辑表达式2>:
  <语句块2>
elif <逻辑表达式3>:
......
else:
    <语句块n>

条件循环

1.循环结构:让计算机执行冗长单调的重复性任务。根据需要对一系列操作进行设定次数或者设定条件的重复,这样的控制流程,就称作循环结构。作用-能持续对大量数据进行处理,在长时间里对一些未知的状况进行连续监测循环结构。
2.循环结构的基本要素

  • 循环前提和执行语句-在执行这组语句之前,计算机会检查循环前提是否存在,只要存在,就会反复执行这组语句,直到循环前提消失。
  • 循环前提的类型:(1)从某个容器或者潜在的数据集中逐一获取数据项,什么时候取不到数据项了,循环的前提就消失。(2)只要逻辑表达式计算结果为真(True),循环的前提就存在,什么时候逻辑表达式计算结果为假(False),循环的前提就消失了。

3.与条件分支结构的区别:循环结构会多次检查循环前提。
4.扩展要素:当循环前提消失,停止执行这组语句的时候,执行一次另一组语句。
5.while循环语法

while<逻辑表达式>:
<语句块>
break #强制跳出循环,不会执行else。
continue #略过余下循环语句
<代码块>
else#条件不满足退出循环,则执行
<语句块>
  • while、else:保留字
  • 逻辑表达式:指所有运算的结果为逻辑类型(True或False)的表达式。
  • 语句块:一组语句。

6.循环嵌套:双重或多重嵌套

  • 中断程序运行:CTRL+C
  • 通过修改程序中range函数的参数,还可以验证其它范围内的连续整数。

迭代循环

1.迭代循环

  • python语句中for语句实现了循环结构的第一种循环前提。
for<循环变量>in<可迭代循环><语句块1>
break #跳出循环
continue #略过余下循环语句
else#迭代完毕,则执行
<语句块2>

(1)for、in和else都是“保留字”
(2)可迭代对象表示从这个数据对象中可以逐个取出数据项赋值给“循环变量”。
(3)可迭代对象有很多 类型,如字符串、列表、元组、字典、集合等,也可以有后面提到的生成器、迭代器等。
2.range函数
(1)range(<终点>)
返回一个从0开始到终点的数列
(2)range(<起点>,<终点>)
从0以外的任务整数开始构造数列
(3)range(<起点>,<终点>,<步长>)
修改数列的步长,通过将步长设置为负数能够实现反向数列。
range构建的数列,包含起点整数,而不包含终点整数。
(4)range类型的对象
直接当作序列或转换为list或者tuple等容器类型。在这里插入图片描述在这里插入图片描述
在这里插入图片描述
嵌套循环中的跳出和继续

  • 都只能在循环内部使用。
  • 均作用于离它们最近的一层循环。
  • break是跳出当前循环并结束本层循环。
  • continue是略过余下循环语句并接着下一次循环。

上机实验4.0

1.给定n,计算1+2!+3!+…+n!的值。

def factorial(n):
    j = 1
    for i in range(1,n+1):
        j *= i
    return j
n = int(input('n:'))
s = 1
for k in range(2,n+1):
    s += factorial(k)
print(s)  

在这里插入图片描述
2.给定y和m,计算y年m月有几天?-——注意闰年

date = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值