您现在的位置是:首页 > 正文

Python编程基础

2024-02-01 00:36:06阅读 1

在这里插入图片描述 

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

学习日记

        Python语言是一个语法简洁、跨平台和可扩展的开源通用脚本语言,具有结构简单、语法清晰的特点。Python为网站搭建、科学计算和图形用户界面等各方面提供了完善的开发框架。此外,在科学计算与数据分析方面,Python的Numpy、SciPy、Pandas、Matplotlib、Scikit-learn等框架也很成熟,这使得Python成为一款非常适用于数据科学的流行工具。

        Python是一个结合了解释性、编译性、互动性和面向对象的高级程序设计语言,结构简单,语法定义清晰。Python最具特色的就是使用缩进来表示代码块,不需要使用大括号{}。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。 

        Python3 中有六个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)。其中,不可变数据类型有:Number、String、Tuple;可变数据类型有:List、Dictionary、Set。

        Python3支持的数字类型有int(整数)、float(浮点数)、bool(布尔型)、complex(复数)四种类型

        Python 中的变量是不需要声明数据类型的,变量的“类型”是所指的内存中被赋值对象的类型。 同一变量可以反复赋值,而且可以是不同类型的变量,这也是Python语言称之为动态语言的原因。 并且,Python也允许同时为多个变量赋值。

brower = 'Google'  #字符串类型
brower = 100  #整数类型
brower = 123.45  #浮点数类型
brower = 2 + 3j  #复数类型
brower, count, addsum = 'Google', 100, 123.45
print(brower, count, addsum)

同一变量可以反复赋值,而且可以是不同类型的变量,这也是Python语言称之为动态语言的原因 

         运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。Python语言支持算术运算符、关系运算符和逻辑运算符。下表中显示了各种操作符及其描述。

操作符

描述

+,-,*,/,%,//,**

算术运算:加、减、乘、除、取模、整除、幂

<,<=,>,>=,!=,==

关系运算符

and, or, not,

逻辑运算符

        各类运算符之间的优先级顺序为:逻辑运算符  < 关系运算符 < 算术运算符。

        算术运算符及用法

运算符

符号

范例

结果

-

求反

-5

-5

*

乘法

8.5*3.5

29.75

/

除法

11/3

3

%

余数

8.5%3.5

1.5

+

加法

11+3

14

-

减法

5-19

-14

**

乘方()

2**5

3

        字符串被定义为引号之间的字符集合,在Python中,字符串用单引号('), 双引号("), 三引号(''')括起来,且必须配对使用。当Python字符串中有一个反斜杠时表示一个转义序列的开始,称反斜杠为转义符。 

        Python允许用 r+“  ” 的方式表示“  ”内部的字符串默认不转义。

转义序列

说明

\n

换行

\\

反斜杠

\”

双引号

\t

制表符

        字符串子串可以用分离操作符([]或者[:])选取,Python特有的  索引规则为:第一个字符的索引是0,后续字符索引依次递增,或者从右向左编号,最后一个字符的索引号为-1,前面的字符依次减1。 

运算符

符号

范例

结果

“+”

连接操作

str1 = 'Python'

str2 = ', program!'

str1 + str2

'python, program!'

*

重复操作

str = 'Python'

str*2

'PythonPython'

[]

索引

str = 'Python'

str[2]

str2[-1]

't'

'n'

[:]

切片

str = 'Python'

str[2: 5]

str[-4: -1]

'tho'

'tho'

字符串的常见方法属性 

方法/函数

作用

str.capitalize() 

返回字符串的副本,其首字符大写,其余字符小写

str.count(sub [,start [,end ] ]) 

返回[ start,end ]范围内sub的非重叠出现次数,start和end可选

str.endswith(sub[,start[,end] ])

返回布尔值,表示字符串是否以指定的sub结束,同类方法str.startswith()

str.find(sub [,start [,end] ])

返回字符串中首次出现子串sub的索引位置,start和end可选,若未找到sub,返回-1,类似方法str.index()

str.split(sep =None)

使用sep作为分隔符拆分字符串,返回字符串中单词的列表,分隔空字符串

str.strip([chars])

删除字符串前端和尾部chars指定的字符集,如果省略或None,则删除空白字符

        在Python中,最基本的数据结构是序列。序列中的成员有序排列,都可以通过下标偏移量访问到它的一个或几个成员。除了前面已经介绍过的字符串,最常见的序列是列表和元组。

        列表是Python中最具灵活性的有序集合对象类型。和字符串不同的是,列表具有可变长度、异构以及任意嵌套列表的特点。

        列表是可变对象,支持在原处修改。 

列表的常用方法 

1)L.append(v) :把元素v添加到列表L的结尾,相当于a[len(a)] = [v]

2)L.insert(i,v):将值v插入到列表L的索引i处

3)L.index(x):返回列表中第一个值为x的元素的索引

4)L.remove(v):从列表L中移除第一次找到的值v

5)L.pop([i]):从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。

6)L.reverse():倒排列表中的元素

7)L.count(x):返回x在列表中出现的次数

8)L.sort(key=None, reverse=False):对链表中的元素进行适当的排序。

        元组有很多用途,例如:坐标(x, y),数据库中的员工记录等等。元组和字符串一样,不可改变,即不能给元组的一个独立的元素赋值。元组和列表看起来不同的一点是:元组用的是圆括号(),而列表用的是方括号[]。 

tup = tuple('bar')  #创建元组

print('输出元组tup:',tup)  #输出元组

nested_tup = (4,5,6),(7,8)

print('输出元组tup:',nested_tup)  #输出元素是元组的元组

print('元组的连接',tup+tuple('wwy'))

a,b,c = tup  #元组的拆分

print(a,b,c)

print(tup.count(a)) # 统计某个数值在元组中出现的次数

输出元组tup: ('b', 'a', 'r')

输出元组tup: ((4, 5, 6), (7, 8))

元组的连接 ('b', 'a', 'r', 'w', 'w', 'y')

b a r

1

        字典,也称映射,是一个由键/值对组成的非排序可变集合体。键值对在字典中以下面的方式标记dict = {key1 : value1, key2 : value2 } 键/值对用冒号分割,而各个元素之间用逗号分割,所有元素都包括在花括号中。值得注意的是,字典中的键必须是唯一的,只能使用不可变的对象(比如字符串)来作为字典的键,字典中的键/值对是没有顺序的。

 

        字典的常用方法描述

方法

描述

dict.get(key, default = None)

返回指定键的值,若值不在字典中则返回default

dict.items()

以列表返回可遍历的(键,值) 元组数组

dict.keys()

以列表返回一个字典所有的键

dict.values()

以列表返回字典中的所有值

        集合是一个由唯一元素组成的非排序集合体。也就是说,集合中的元素没有特定顺序,集合中没有重复项。可以使用大括号{ }或者set()函数创建集合,但是,创建一个空集合必须用 set(),因为{ }是用来创建一个空字典。 

set1 = set([0,1,2,3,4])

set2 = set([1,3,5,7,9])

print(set1.issubset(set2))

print(set1.union(set2))

print(set2.difference(set1))

print(set1.issubset(set2))

False

{0, 1, 2, 3, 4, 5, 7, 9}

{9, 5, 7}

False

        函数是对程序逻辑进行过程化和结构化的一种方法,函数最大的优点是增强了代码的重用性和可读性。Python不但能灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用。 

        lambda函数

        Python使用lambda来创建匿名函数,准确地说,lambda只是一个表达式,函数体比def定义的函数简单的多,在lambda表达式中只能封装有限的逻辑。除此之外,lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

        

        【例2-25】假如要编写函数实现计算多项式1+2*x+y2+z*y的值,可以简单的定义一个lambda函数来完成这个功能。

polynominal = lambda x,y,z: 1+2*x+y**2+z*y

polynominal(1,2,3)

13

文件操作

一般的文件处理过程为:

1. 打开文件:open()函数;

2. 读取/写入文件:read()、readline()、readlines()、write()等;

3. 对读取到的数据进行处理;

4. 关闭文件:close()。

 

文件读取方法描述

read([size])

读取文件所有内容,返回字符串类型,参数size 表示读取的数量,以byte为单位,可以省略

readline([size])

读取文件一行的内容,以字符串形式返回,若定义了size,则读出一行的一部分

readlines([size])

读取所有的行到列表里面[line1,line2,...lineN],(文件每一行是list的一个成员),参数size表示读取内容的总长)

        CSV (Comma Separated Values),即逗号分隔值,也称为字符分隔值,因为分隔符除了逗号,还可以是制表符,是一种常用的文本格式,用以存储表格数据,包括数字或者字符。

CSV文件具有如下特点:

1. 纯文本,使用某个字符集,比如ASCII、Unicode或GB2312;

2. 以行为单位读取数据,每行一条记录;

3. 每条记录被分隔符分隔为字段;

4. 每条记录都有同样的字段序列。 

read([size])

读取文件所有内容,返回字符串类型,参数size 表示读取的数量,以byte为单位,可以省略

readline([size])

读取文件一行的内容,以字符串形式返回,若定义了size,则读出一行的一部分

readlines([size])

读取所有的行到列表里面[line1,line2,...lineN],(文件每一行是list的一个成员),参数size表示读取内容的总长)

文件的写入

        write() 函数用于向文件中写入指定字符串,同时需要将open函数中文件打开的参数设置为 mode = w。 其中,write() 是逐次写入,writelines() 可将一个列表中的所有数据一次性写入文件。 如果有换行需要,则要在每条数据后增加换行符,同时用“字符串 .join() ”的方法将每个变量数据联合成一个字符串,并增加间隔符 “\t”。

网站文章

  • git如何回滚到历史某个版本

    git如何回滚到历史某个版本

    问题:比如某员工误操作提交到了公司比较重要的develop分支,如何恢复到之前的某一个版本呢,git如何回滚到历史某个版本 方法一:idea里面git操作版本 1、 2、选中某一个版本,右键copy版本号 3、如何指针再指向本地的head版本号 4、提交到远程。push,会报错。应该加上-f 属性,推送ch成功。push的时候有一个小按钮 推送成功。 参考链接:https...

    2024-02-01 00:36:00
  • NOIP(CSP-J)信息学奥赛_普及组第十三课--嵌套循环-循环中的循环

    目录NOIP(CSP-J)信息学奥赛_普及组第十二课--嵌套循环-循环中的循环????先看一个案例二、 请写出如下程序的输出结果,深入理解嵌套循环三、嵌套循环的基本结构:四、嵌套循环图形题五、常见的数...

    2024-02-01 00:35:53
  • 蓝桥杯2019 第十届 c/c++ c组 编程大题 第四题 第2019个质数

    题目:结果填空,找质数,3是第一个质数 5是第二个质数,7是第三个质数,呢么第2019个质数是多少在绝望中水博客,这题我看成了2019以内的质数有多少个,估计也就我会看叉成这样吧,祝大家拿省一喽,心痛。代码:#include <iostream>#include <math.h>using namespace std;int main(){ int num...

    2024-02-01 00:35:16
  • 作业3F

    Problem F: 成绩的等级 Time Limit: 1 Sec Memory Limit: 2 MB Submit: 18628 Solved: 7766 [Submit][Status][We...

    2024-02-01 00:34:57
  • ios app拉起小程序

    ios app拉起小程序

    之前公司要求写一个sdk,里面封装好微信拉起小程序让集成方不用再集成具体实现:1、 创建类 WXApiManager2、 集成微信SDK 如图3、添加需要的库文件 如图4、 在WXApiManage...

    2024-02-01 00:34:50
  • 逆波兰计算器

    Java实现逆波兰计算器

    2024-02-01 00:34:20
  • asp.net mvc Controller Factory

    asp.net mvc Controller Factory

    此文摘要小妞之路,记录一下,方便自己查看学习Controller Factory控制器工厂:一般在实际项目中的用法:使用内置的Controller Factory,叫DefaultControllerFactory。当DefaultControllerFactory 类接收到一个 controller 实例的请求时,在DefaultControllerFactory 类...

    2024-02-01 00:34:13
  • 有1,2,....一直到n的无序数组,求排序算法,要求时间复杂度为O(n),空间复杂度O(1)

    1、有1,2,....一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂度O(1),使用交换,而且一次只能交换两个数。 #include void sort(int *a,int len) { int temp; for(int i = 0; i &lt; len; ) { temp = a[a[i] - 1]; a[a[i] - 1] = a[i]; a[i]

    2024-02-01 00:34:06
  • 基于javaweb的it设备固定资产管理系统(java+ssm+jsp+mysql)

    基于javaweb的it设备固定资产管理系统(java+ssm+jsp+mysql)

    基于javaweb的it设备固定资产管理系统(java+ssm+jsp+mysql)运行环境Java≥8、MySQL≥5.7、Tomcat≥8开发工具eclipse/idea/myeclipse/sts等均可配置运行适用课程设计,大作业,毕业设计,项目练习,学习演示等功能说明

    2024-02-01 00:33:59
  • 本地数仓项目(四)—— 即席查询

    本地数仓项目(四)—— 即席查询

    即席查询引擎介Druid/Impala/Presto绍分析

    2024-02-01 00:33:30