Python基础知识

Python基础知识

1.首先明白python是一门什么语言?

面向对象的解释型编程语言。

编译型语言:编译型语言一般是不能跨平台的,也就是不能在不同的操作系统之间随意切换。

解释型语言:相比于编译型语言,解释型语言几乎都能跨平台

(类 同声传译)

2.python的优点

语法简单、开源、免费的、高级语言、解释型语言,能跨平台、面向对象的编程语言、功能强大(模块众多)、可扩展性强

3.Python的缺点:

运行速度慢、代码加密困难

4.在IDLE环境下的一些简单操作

快捷键

功能说明

Alt+p

浏览历史命令(上一条)

Alt+n

浏览历史命令(下一条)

Ctrl+F6

重启Shell,之前定义的对象和导入的模块全部失效

F1

打开Python帮助文档

Alt+/

自动补全前面曾经出现过的单词,如果之前有多个单词具有相同前缀,则在多个单词中循环选择

Ctrl+]

缩进代码块

Ctrl+[

取消代码块缩进

Alt+3

注释代码块

Alt+4

取消代码块注释。

Tab

补全单词

5.python的对象模型

对象类型

类型名称

示例

简要说明

数字

int,float,complex

1234,3.14,1.3e5, 3+4j

数字大小没有限制,内置支持复数及其运算

字符串

str

'swfu', "I'm student", '''Python ''', r'abc',

使用单引号、双引号、三引号作为定界符,以字母r或R引导的表示原始字符串

列表

list

[1, 2, 3],['a', 'b', ['c', 2]]

所有元素放在一对方括号中,元素之间使用逗号分隔,其中的元素可以是任意类型

字典

dict

{1:'food',2:'taste',3:'import'}

所有元素放在一对大括号中,元素之间使用逗号分隔,元素形式为“键:值”

元组

tuple

(2, -5, 6), (3,)

所有元素放在一对圆括号中,元素之间使用逗号分隔,如果元组中只有一个元素的话,后面的逗号不能省略

布尔型

bool

True, False

逻辑值,关系运算符、成员测试运算符、同一性测试运算符组成的表达式的值一般为True或False

6.python中的变量

1).在Python中,不需要事先声明变量名及其类型,直接赋值即可创建各种类型的对象变量。(C语言中的变量就需要先声明否则无法使用)

例如语句

>>> x = 2

创建了整型变量x,并赋值为2,再例如语句

>>> x = 'Hello world.'

创建了字符串变量x,并赋值为'Hello world.'。

2).如果变量出现在赋值运算符或复合赋值运算符(例如+=、*=等等)的左边则表示创建变量或修改变量的值,否则表示引用该变量的值,这一点同样适用于使用下标来访问列表、字典等可变序列以及其他自定义对象中元素的情况。

>>> x = 3       #创建整型变量

>>> print(x**2)

9

>>> x += 6      #修改变量值

>>> print(x)    #读取变量值并输出显示

9

3).字符串和元组属于不可变序列,不能通过下标的方式来修改其中的元素值,试图修改元组中元素的值时会抛出异常。

>>> x = (1,2,3)

>>> print(x)

(1, 2, 3)

>>> x[1] = 5

Traceback (most recent call last):

   File "<pyshell#7>", line 1, in <module>

    x[1] = 5

TypeError: 'tuple' object does not support item assignment

4).在Python中,允许多个变量指向同一个值,

例如:

>>> x = 3

>>> id(x)

1786684560

>>> y = x

>>> id(y)

1786684560

5).当为其中一个变量修改值以后,其内存地址将会变化,但这并不影响另一个变量,例如接着上面的代码再继续执行下面的代码:

>>> x += 6

>>> id(x)

1786684752

>>> y

3

>>> id(y)

1786684560

6).Python采用的是基于值的内存管理方式,如果为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一块内存地址。

>>> x = 3

>>> id(x)

10417624

>>> y = 3

>>> id(y)

10417624

>>> x = [1, 1, 1, 1]

>>> id(x[0]) == id(x[1])

True

7).python中变量名的定义与其他语言相差无异;

7.Python中的数字​​​​​​​

1).Python中的整数类型可以分为:

十进制整数如,0、-1、9、123

十六进制整数,需要16个数字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f来表示整数,必须以0x开头,如0x10、0xfa、0xabcdef

八进制整数,只需要8个数字0、1、2、3、4、5、6、7来表示整数,必须以0o开头,如0o35、0o11

二进制整数,只需要2个数字0、1来表示整数,必须以0b开头如,0b101、0b100

2).浮点数又称小数

15.0、0.37、-11.2、1.2e2、314.15e-2

3).Python内置支持复数类型。

>>> a = 3+4j

>>> b = 5+6j

>>> c = a+b

>>> c

(8+10j)

>>> c.real        #查看复数实部

8.0

>>> c.imag        #查看复数虚部

10.0

>>> a.conjugate() #返回共轭复数

(3-4j)

>>> a*b           #复数乘法

(-9+38j)

>>> a/b           #复数除法

(0.6393442622950819+0.03278688524590165j)

8.python中的字符串

1).用单引号、双引号或三引号括起来的符号系列称为字符串

2).单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串

如:'abc'、'123'、'中国'、"Python"、'''Tom said, "Let's go"'''

3).字符串属于不可变序列

4).空串表示为''或 ""

5).三引号'''或"""表示的字符串可以换行,支持排版较为复杂的字符串;三引号还可以在程序中表示较长的注释。

6).字符串合并

>>> a = 'abc' + '123'     #生成新对象

7).字符串格式化

>>> a = 3.6674

>>> '%7.3f' % a

'  3.667'

>>> "%d:%c"%(65,65)

'65:A'

>>> """My name is %s, and my age is %d""" % (‘Yzzy',21)

'My name is Yzzy, and my age is 21'

8).常用转义字符

转义字符

含义

转义字符

含义

\b

退格,把光标移动到前一列位置

\\

一个斜线\

\f

换页符

\’

单引号’

\n

换行符

\”

双引号”

\r

回车

\ooo

3位八进制数对应的字符

\t

水平制表符

\xhh

2位十六进制数对应的字符

\v

垂直制表符

\uhhhh

4位十六进制数表示的Unicode字符

9).字符串界定符前面加字母r表示原始字符串,其中的特殊字符不进行转义,但字符串的最后一个字符不能是\。

>>> path = 'C:\Windows\noteYzzy.exe'

>>> print(path)                     #字符\n被转义为换行符

C:\Windows

oteYzzy.exe

>>> path = r'C:\Windows\noteYzzy.exe'  #原始字符串,任何字符都不转义

>>> print(path)

C:\Windows\noteYzzy.exe

9.运算符和表达式

1).

运算符

功能说明

+

算术加法,列表、元组、字符串合并与连接,正号

-

算术减法,集合差集,相反数

*

算术乘法,序列重复

/

真除法

//

求整商,但如果操作数中有实数的话,结果为实数形式的整数

%

求余数,字符串格式化

**

幂运算

<、<=、>、>=、==、!=

(值)大小比较,集合的包含关系比较

or

逻辑或

and

逻辑与

not

逻辑非

in

成员测试

is

对象同一性测试,即测试是否为同一个对象或内存地址是否相同

|、^、&、<<、>>、~

位或、位异或、位与、左移位、右移位、位求反

&、|、^

集合交集、并集、对称差集

@

矩阵相乘运算符

2).Python运算符与功能

(1)+运算符除了用于算术加法以外,还可以用于列表、元组、字符串的连接(仅限于相同类型之间)

>>> [1, 2, 3] + [4, 5, 6]          #连接两个列表

[1, 2, 3, 4, 5, 6]

>>> (1, 2, 3) + (4,)                #连接两个元组

(1, 2, 3, 4)

>>> 'abcd' + '1234'               #连接两个字符串

'abcd1234'

(2).*运算符不仅可以用于数值乘法,还可以用于列表、字符串、元组等类型

>>> 2.0 * 3                     #浮点数与整数相乘

6.0

>>> (3+4j) * 2                  #复数与整数相乘

(6+8j)

>>> (3+4j) * (3-4j)             #复数与复数相乘

(25+0j)

>>> "a" * 10                    #字符串重复

'aaaaaaaaaa'

>>> [1,2,3] * 3                 #列表重复

[1, 2, 3, 1, 2, 3, 1, 2, 3]

>>> (1,2,3) * 3                 #元组重复

(1, 2, 3, 1, 2, 3, 1, 2, 3)

(3).“/”和“//”分别表示除法和整除运算

>>> 3/5

0.6

>>> 3//5

0

>>> 3.0/5

0.6

>>> 3.0//5

0.0

(4).%运算符除去可以用于字符串格式化之外,还可以对整数和浮点数计算余数。

>>> 3.1%2

1.1

>>> 6.3%2.1

2.0999999999999996

>>> 6%2

0

>>> 6.0%2

0.0

(5).关系运算符

>>> 1 < 3 < 5                    #等价于1 < 3 and 3 < 5

True

>>> 'Hello' > 'world'             #比较字符串大小

False

>>> [1, 2, 3] < [1, 2, 4]            #比较列表大小

True

>>> 'Hello' > 3                  #字符串和数字不能比较

TypeError: unorderable types: str() > int()

(6).成员测试运算符in用于成员测试,即测试一个对象是否为另一个对象的元素。

>>> 3 in [1, 2, 3]           #测试3是否存在于列表[1, 2, 3]中

True

>>> 5 in range(1, 10, 1)   #range()生成指定范围数字

True

>>> 'abc' in 'abcdefg'       #子字符串测试

True

>>> for i in (3, 5, 7):        #循环,成员遍历

print(i, end='\t')

  1. 5 7

(7).位运算符只能用于整数,其内部执行过程为:首先将整数转换为二进制数,然后右对齐,必要的时候左侧补0,按位进行运算,最后再把计算结果转换为十进制数字返回。

>>> 3 << 2                    #把3左移2位

12

>>> 3 & 7                     #位与运算

3

>>> 3 | 8                     #位或运算

11

>>> 3 ^ 5                     #位异或运算

6

(8).集合的交集、并集、对称差集等运算借助于位运算符来实现,而差集则使用减号运算符实现(注意,并集运算符不是加号)。

>>> {1, 2, 3} | {3, 4, 5}            #并集,自动去除重复元素

{1, 2, 3, 4, 5}

>>> {1, 2, 3} & {3, 4, 5}          #交集

{3}

>>> {1, 2, 3} ^ {3, 4, 5}           #对称差集

{1, 2, 4, 5}

>>> {1, 2, 3} - {3, 4, 5}          #差集

{1, 2}

(9).逻辑运算符and和or具有惰性求值特点。(与C中与或非类似)

>>> 3>5 and a>3        #注意,此时并没有定义变量a

False

>>> 3>5 or a>3         #3>5的值为False,所以计算后面表达式

NameError: name 'a' is not defined

>>> 3<5 or a>3         #3<5的值为True,不用计算后面表达式

True

>>> 3 and 5      #将最后一个计算的表达式的值作为整个的值

5

>>> 3 and 5>2

True

>>> 3 not in [1, 2, 3]     #逻辑非运算not

False

10.python中的内置函数

后续详讲

11.python中对象的删除

在Python中具有自动内存管理功能,Python解释器会跟踪所有的值,一旦发现某个值不再有任何变量指向,将会自动删除该值。可以使用del命令来显式删除对象并解除与值之间的指向关系。

1).del命令无法删除元组或字符串中的元素,只可以删除整个元组或字符串,因为这两者均属于不可变序列。

>>> x = (1,2,3)

>>> del x[1]

Traceback (most recent call last):

  File "<pyshell#62>", line 1, in <module>

    del x[1]

TypeError: 'tuple' object doesn't support item deletion

>>> del x

>>> print(x)

Traceback (most recent call last):

    File "<pyshell#64>", line 1, in <module>

     print(x)

NameError: name 'x' is not defined

12.基本输入输出

用Python进行程序设计,输入是通过input( )函数来实现的,input( )的一般格式为:

x = input('提示:')

该函数返回输入的对象。可输入数字、字符串和其它任意类型对象。

13.模块导入与使用

  1. .Python默认安装仅包含部分基本或核心模块,但用户可以安装大量的扩展模块,pip是管理模块的重要工具。

  1. .在Python启动时,仅加载了很少的一部分模块,在需要时由程序员显式地加载(可能需要先安装)其他模块。

  1. .减小运行的压力,仅加载真正需要的模块和功能,且具有很强的可扩展性。

  1. .可以使用sys.modules.items()显示所有预加载模块的相关信息。

  1. .import 模块名

>>>import math

>>>math.sin(0.5)                      #求0.5的正弦

>>>import random

>>>x=random.random( )           #获得[0,1) 内的随机小数

>>>y=random.random( )

>>>n=random.randint(1,100)    #获得[1,100]上的随机整数

  1. .可以使用dir函数查看任意模块中所有的对象列表,如果调用不带参数的dir()函数,则返回当前所有名字列表。

  1. .可以使用help函数查看任意模块或函数的使用帮助。

  1. .from 模块名 import 对象名[ as 别名] #可以减少查询次数,提高执行速度 如:import numpy as np

 (有需要numpy库入门资料的可以call我哈)

14.python代码规范

(1)缩进

类定义、函数定义、选择结构、循环结构,行尾的冒号表示缩进的开始

 python程序是依靠代码块的缩进来体现代码之间的逻辑关系的,缩进结束就表示一个代码块结束了。

同一个级别的代码块的缩进量必须相同。

一般而言,以4个空格为基本缩进单位

(2)注释

一个好的、可读性强的程序一般包含30%以上的注释。常用的注释方式主要有两种:

 以#开始,表示本行#之后的内容为注释

 包含在一对三引号'''...'''或"""..."""之间且不属于任何语句的内容将被解释器认为是注释

(3)每个import只导入一个模块

(4)如果一行语句太长,可以在行尾加上\来换行分成多行,但是更建议使用括号来包含多行内容。

(5)必要的空格与空行

运算符两侧、函数参数之间、逗号两侧建议使用空格分开。

不同功能的代码块之间、不同的函数定义之间建议增加一个空行以增加可读性。

(6)适当使用异常处理结构进行容错,后面将详细讲解。

(7)软件应具有较强的可测试性,测试与开发齐头并进。

15.python文件名

  1. .py:Python源文件,由Python解释器负责解释执行。

  1. .pyw:Python源文件,常用于图形界面程序文件。

  1. .pyc:Python字节码文件,无法使用文本编辑器直接查看该类型文件内容,可用于隐藏Python源代码和提高运行速度。对于Python模块,第一次被导入时将被编译成字节码的形式,并在以后再次导入时优先使用“.pyc”文件,以提高模块的加载和运行速度。对于非模块文件,直接执行时并不生成“.pyc”文件,但可以使用py_compile模块的compile()函数进行编译以提高加载和运行速度。另外,Python还提供了compileall模块,其中包含compile_dir()、compile_file()和compile_path()等方法,用来支持批量Python源程序文件的编译。

  1. .pyo:优化的Python字节码文件,同样无法使用文本编辑器直接查看其内容。可以使用“python –O -m py_compile file.py”或“python –OO -m py_compile file.py”进行优化编译。Python 3.5不再支持.pyo文件。

  1. .pyd:一般是由其他语言编写并编译的二进制文件,常用于实现某些软件工具的Python编程接口插件或Python动态链接库。

(大佬们这是我第一次写博客,如果有误或者侵权的地方,联系修改或删除!谢谢^_^)

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值