当前位置: 移动技术网 > IT编程>脚本编程>Python > Python3基础 自学笔记

Python3基础 自学笔记

2020年07月16日  | 移动技术网IT编程  | 我要评论

什么是Python?

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,在许多领域都有应用,包括Web编程,脚本编写,科学计算和人工智能等。
Python非常受GoogleNASACIADisney等组织的欢迎和使用。

Python 的设计具有很强的可读性,相比其他语言它经常使用英文关键字,它具有比其他语言更有特色语法结构。

Python

  • 解释型语言: 开发过程中没有了编译这个环节,类似于PHP和Perl语言。
  • 交互式语言: 你可以在一个 Python 提示符 >>> 后直接执行代码。
  • 面向对象语言: Python支持面向对象的风格或代码封装在对象的编程技术。
  • 初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
Python 解释器本身几乎可以在所有的操作系统中运行。

解释器 是运行以Python等解释型语言编写的脚本的程序。

Python 特点

  1. 易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
  2. 易于阅读:Python代码的定义更清晰。
  3. 易于维护:Python的成功在于它的源代码是相当容易维护的。
  4. 一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
  5. 互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
  6. 可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
  7. 可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
  8. 数据库:Python提供所有主要的商业数据库的接口。
  9. GUI编程:Python支持GUI可以创建和移植到许多系统调用。
  10. 可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

Python2.x与3​​.x版本区别

为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下兼容。

许多针对早期Python版本设计的程式都无法在Python 3.x上正常执行。

为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.x的迁移,允许使用部分Python 3.x的语法与函数。

新的Python程式建议使用Python 3.x版本的语法。

除非执行环境无法安装Python 3.x或者程式本身使用了不支援Python 3.x的第三方库。目前不支援Python 3.x的第三方库有Twisted, py2exe, PIL等。

大多数第三方库都正在努力地相容Python 3.x版本。即使无法立即使用Python 3.x,也建议编写相容Python 3.x版本的程式,然后使用Python 2.x 来执行。

Python 3.x 表示 Python 3.0 及以上版本

Python有几种不同的实现,用不同的语言编写。

1. CPython:这是Python的官方版本,使用C语言实现,使用最为广泛,新的语言特性一般也最先出现在这里。
2. Jython:这是Python的Java实现,相比于CPython,它与Java语言之间的互操作性要远远高于CPython和C语言之间的互操作性。
3. Python for .NET:它实质上是CPython实现的.NET托管版本,它与.NET库和程序代码有很好的互操作性。
4. IronPython:不同于Python for .NET,它是Python的C#实现,并且它将Python代码编译成C#中间代码(与Jython类似),然后运行,它与.NET语言的互操作性也非常好。
5. PyPy:Python的Python实现版本,原理是这样的,PyPy运行在 CPython(或者其它实现)之上,用户程序运行在PyPy之上。它的一个目标是成为Python语言自身的试验场,因为可以很容易地修改PyPy解释器的实现(因为它是使用Python写的)。

Python的正式解释器 CPython 是用C语言编写的、是一个由社群驱动的自由软件,目前由Python软件基金会管理。

第一个程序

print('hello world!')

Hello world!

算数运算符

Python执行乘法和除法,用星号 * 表示乘法和正斜杠 / 来表示除法。
使用括号确定先执行哪些操作。

print(2 * (3 + 4))
print(10 / 2)

结果

14
5.0

减号放在数字前表示负数。

print((-7 + 2) * (-4))

结果

print((-7 + 2) * (-4))

加号也可以放在数字前面表示正数,但是这样做没有任何效果。

在 Python 中除以零会产生错误。

Traceback (most recent call last):
  File "..\Playground\", line 1, in <module>
    \ufeffprint(5 / 0)
ZeroDivisionError: division by zero

在 Python 中,错误消息的最后一行表示错误的类型。
要仔细阅读错误信息,因为它们经常会告诉你如何修复程序!

  • Python 中常见的运算符:+ - * / %
  • 整除、幂数和布尔类型:// , ** , True & False

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

浮点数

Python 中使用浮点数来表示不是整数的数字。

浮点数表示的数字的例子:0.5 和 -7.8237591。

浮点数可以通过输入带小数点的数字直接创建,也可以使用整数除法等操作产生。数字结尾的零会被忽略。

print(3/4)
print(0.523322)

结果

0.75
0.523322

计算机不能完全精确地存储浮点数,就像我们不能写下1/3(0.3333333333333333 …)的完整小数点一样。
记住这一点,因为它往往会导致令人愤慨的错误!

两个整数相除将产生一个浮点数。

一个浮点数也是通过在两个浮点数或者在一个浮点数和一个整数上运算来产生的。

print(10 / 2)
print(6 * 7.0)
print(5 + 2.32)

结果

5.0
42.0
7.32

浮点数可以和整数进行运算,因为运算时Python会默默地将整数转换成浮点数。

其他数据类型操作

指数运算

除了加法,减法,乘法和除法之外,Python 还支持指数运算。该操作使用两个星号 ** 表示。

print(5**3)
print(9**(1/2))

结果

125
3.0
商和余数

计算商和余数使用的符号分别是 // 和 %。(/在Python中获取的是相除的结果,一般为浮点数)

这些运算符可以同时用于浮点数整数

print(20 // 6)

print(1.25 % 0.5)

结果

3
0.25
字符串

如果你想在 Python 中使用文本,你必须使用字符串

通过在两个单引号双引号之间输入文本来创建字符串。

当 Python 控制台显示一个字符串时,通常使用单引号。

以下是在 Python 控制台操作的效果。

>>> "Python is fun"
'Python is fun'
>>> 'I love w3cschool'
'I love w3cschool'

Python交互式控制台(也称为Python解释器或Python shell)为程序员提供了快速的方法来执行命令,并尝试或测试代码而不创建文件。

控制台提供对所有Python内置函数以及任何已安装模块,命令历史记录和自动完成功能的访问权限,交互控制台提供了探索Python的机会,并在准备就绪时将代码粘贴到编程文件中。

本教程代码块中以 >>> 开头的表示是在 python 控制台操作的代码示例。


有些字符不能直接包含在字符串中。例如,双引号不能直接包含在双引号字符串中;这会导致字符串过早地结束,产生错误。

要在字符串中添加这些字符必须在它们面前添加反斜杠进行转义。

其他必须转义的常见字符是换行符反斜杠

双引号只需要在双引号字符串中转义,单引号字符串也是如此。

print('Loen\'s mother: He\'s not the Messiah. He\'s a very naughty boy!')

结果

Loen's mother: He's not the Messiah. He's a very naughty boy!

\n 代表新的一行。

反斜杠也可以用于转义制表符,任意的Unicode字符,以及其他各种不能打印的东西。这些字符被称为转义字符

换行

Python 提供了一种简单的方法来避免手动编写 \n 来转义字符串中的换行符。用三组引号创建一个字符串,按 Enter 键创建的换行符会自动转义。

以下是在 Python 控制台中运行。

>>> """Customer: Good morning.
Owner: Good morning, Sir. Welcome to the National Cheese Emporium."""

'Customer: Good morning.\nOwner: Good morning, Sir. Welcome to the National Cheese Emporium.'

正如你所看到的,我们按的回车键会被转成 \n 放在输出中。

在测试环境中,我们使用 print 打印出来看看。

print("""Customer: Good morning.
Owner: Good morning, Sir. Welcome to the National Cheese Emporium.""")

结果

Customer: Good morning.
Owner: Good morning, Sir. Welcome to the National Cheese Emporium.

不可变对象

Python 中一切皆对象,每一个对象都有一个唯一的标示符(id())、类型(type())以及值。对象根据其值能否修改分为可变对象和不可变对象,其中数字字符串元组属于不可变对象字典以及列表字节数组属于可变对象。而“菜鸟”常常会试图修改字符串中某个字符。看下面这个例子:

teststr = "I am a string"
teststr[11]='h'
print(teststr)

字符串为不可变对象,任何对字符串中某个字符的修改都会抛出异常。

在这里插入图片描述

如果要修改字符串, 可以重新给生成一个字符串,或者将字符串拆解成数组,修改完成后再合并成字符串.

字符串使用规则
  • 双引号与单引号的使用:“ ” ‘ ’ \ “”””””
  • 字符串的输入与输出:input() print()
  • 字符串操作:+ *
  • 类型转换:int() float() str() type()

简单的输入和输出

输出

通常,程序通过输入和处理来产生输出。

在 Python 中,您可以使用 print 函数来生成输出。这将在屏幕上显示一些文字。

print(1 + 1)
print('Hello \n W3Cschool')

结果

2
Hello 
 W3Cschool

打印字符串时,不显示字符串两端的引号。

输入

为了从 Python 用户获得输入,可以使用直观命名的 input 函数。

该函数提示用户输入,并将用户输入的内容转成字符串返回(内容自动转义)。

以下是在 Python 控制台测试。

>>> input("Enter something please: ")
Enter something please: This is what\nthe user enters!

'This is what\\nthe user enters!'

在Python控制台上,print 和 input 功能并不是很有用,它可以自动进行输入和输出。但是,它们在实际的程序中非常有用。

字符串操作

字符串连接

可以使用 + 号连接任意两个字符串,连接字符串时,无论是使用单引号还是双引号创建的都可以。

Python 控制台运行:

>>> "Spam" + 'eggs'
'Spameggs'

>>> print("First string" + ", " + "second string")
First string, second string

即使你的字符串包含数字,它们仍然被添加为字符串而不是整数。将一个字符串加上数字中会产生一个错误,即使它们看起来相似,但它们是两个不同的实体。

print("2" + "2")

print(1 + '2' + 3 + '4')

结果

22

Traceback (most recent call last):
  File "..\Playground\", line 3, in <module>
    print(1 + '2' + 3 + '4')
TypeError: unsupported operand type(s) for +: 'int' and 'str'

只显示最后一行错误消息,因为它是唯一一个提供发生的错误类型的详细信息。

字符串也可以乘以整数。这会产生原始字符串的重复版本。字符串和整数的顺序无关紧要,但字符串通常是放在前面的。

字符串不能与其他字符串相乘。即使浮点数是整数,字符串也不能乘以浮点数。

例如:

print("spam" * 3)

print(4 * '2')

print('17' * '87')

print('pythonisfun' * 7.0)

结果

spamspamspam
2222

Traceback (most recent call last):
  File "..\Playground\", line 5, in <module>
    print('17' * '87')
TypeError: can't multiply sequence by non-int of type 'str'

类型转换


在 Python 中,涉及到一些类型是不能完成某些操作的。

例如,您不能将包含数字2和3的两个字符串添加到一起以生成整数5,因为操作会将在字符串拼接为“23”。

解决方案是类型转换。 在这个例子中,你将使用 int 函数将字符串转成整数。

print("2" + "3")

print(int("2") + int("3"))

结果

23
5

在Python中,我们迄今使用的类型是整数,浮点数和字符串。用于转换的函数分别是 int,float 和 str。

另一个类型转换的例子是将用户输入(会自动转成一个字符串)转换为数字(整数或浮点数),以便进行计算。

>>> float(input("Enter a number: ")) + float(input("Enter another number: "))
Enter a number: 30
Enter another number: 2
32.0

变量和命名

变量

变量在大多数编程语言中起着非常重要的作用,在Python 中也不例外。

一个变量允许你通过给一个名字赋值来存储一个值,你可以用这个名字引用这个值。

要分配一个变量,请使用一个等号。

与目前为止我们所看到的大多数代码行不同,它不会在 Python 控制台上产生任何输出。

>>> x = 7
>>> print(x)
7
>>> print(x + 3)
10
>>> print(x)
7

您可以使用变量来执行相应的操作,就像使用数字和字符串一样。正如你所看到的,变量在程序中存储它的值。

变量可以随意多次重新赋值。

在Python中,变量没有特定的类型,因此你可以将一个字符串分配给一个变量。

>>> x = 123.456
>>> print(x)
123.456
>>> x = "This is a string"
>>> print(x)
This is a string
变量名称

Python变量名的命名有一些限制。

变量名称允许使用的字符是字母,数字和下划线。并且变量不能以数字开头。

如果不遵守这些规则命名会导致错误。

>>> this_is_a_normal_name = 7

>>> 123abc = 7
SyntaxError: invalid syntax

>>> spaces are not allowed
SyntaxError: invalid syntax

Python是一种区分大小写的编程语言。因此 Lastname 和 lastname 是Python中的两个不同的变量名称。

尝试引用您尚未赋值的变量会导致错误。

您可以使用 del 语句来删除一个变量,这意味着从名称到值的引用被删除,并且尝试使用该变量会导致错误。

删除的变量可以像以前一样重新分配。

>>> foo = "a string"
>>> foo
'a string'
>>> bar
NameError: name 'bar' is not defined
>>> del foo
>>> foo
NameError: name 'foo' is not defined

您也可以从用户输入中获取变量的值。

>>> foo = input("Enter a number: ")
Enter a number: 7
>>> print(foo)
7
  • 赋值运算符:= += -= *= %= /= //=
  • 中文编码:#-*- coding:UTF-8 -*- #coding=UTF-8

常见问题
赋值运算

赋值运算符


赋值运算符允许您更高效简洁地编写代码 。

例如:

x += 3
// 等价于
x = x + 3

也可以运用在其他操作符(如 - ,*,/ 和 %)上。

>>> x = 2
>>> print(x)
2
>>> x += 3
>>> print(x)
5

这些运算符也可以用于数字以外的类型,比如字符串。

>>> x = "spam"
>>> print(x)
spam

>>> x += "eggs"
>>> print(x)
spameggs

注: 许多其他语言有特殊的操作符,如 ‘++’ 作为 ‘x += 1’ 的快捷方式。 Python没有这些。

中文编码

但是如果你输出中文字符"你好,亿动"就有可能会碰到中文编码问题。

#!/usr/bin/python
print("你好,亿动")

结果

File "test.py", line 2
SyntaxError: Non-ASCII character '\xe4' in file test.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

以上出错信息提示了我们未指定编码。

解决方法很简单, 只要在文件开头加入 # -- coding: UTF-8 -- 或者 #coding=utf-8 就行了。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

print("你好,亿动")

结果

你好,亿动

本文地址:https://blog.csdn.net/weixin_44076570/article/details/107328044

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网