Python入门与基础语法详解

news/2024/12/22 17:34:37/

Python作为简单易学的编程语言,想要入门还是比较容易的

搭建语言环境

我们首先来了解下如何安装和搭建 Python 语言环境

Python 版本的选择

        当前流行的 Python 版本有两个,2.X 和 3.X,由于 2.X 即将不再维护,所以我建议直接使用 3.X 版本作为你的主要版本。

IDE 的选择

        目前市面上流行着很多的 Python 编辑器,比如 Sublime,Notebook++ 等,不过我还是推荐如下两个

        PyCharm:这是一个跨平台的 Python 开发工具,不但拥有常规的调试、语法高亮,智能提示等功能外,还自带多个数据库连接器,使你在调试数据库的时候也能得心应手,不再忙于到处下载各种数据库客户端。

        Jupyter:这个是一个 web 式的在线编辑器,每次运行一行代码,你都可以立即得到结果,非常方便,在代码调试阶段,用处无限。

Python 软件的安装

        如果你是 Linux 或者 MacOS 操作系统,那么一般会自带 Python2.6 的版本。如果想要安装 3.X 的版本,需要自行编译安装,如果没有 Linux 操作基础的话,建议还是使用 Windows。

        如果是 Windows 操作系统,可以直接到 Python 官网下载 .exe 安装包,一路下一步即可完成安装。

Python 基础语法

Hello World

        相信大家都有这种经验,学习任何一门语言时,入门的都是输出 Hello World,下面我们就来看看如何使用 Python 来输入 Hello World

print("Hello World")
sum = 1 + 2
print("sum = %d" %sum)
>>>
Hello World
sum = 3

print 函数,用来在控制台打印输出,sum = 语法是声明变量并赋值,%d 是用来做字符串替换。

数据类型和变量

列表

list1 = ["1", "2", "test"]
print(list1)
list1.append("hello")
print(lists)
>>>
['1', '2', 'test']
['1', '2', 'test', 'hello']

list 是 Python 内置的一种数据类型,是一种有序的集合,可以随时添加和删除其中的元素。

元组

tuple1 = ("zhangsan", "lisi")
print(tuple1[0])
>>>
zhangsan

tuple 和 list 非常类似,但是 tuple 一旦初始化就不能修改.

字典

dict1 = {"name1": "zhangsan", "name2": "lisi", "name3": "wangwu"}
dict1["name1"]
>>>
'zhangsan'

Python 内置了字典:dict 全称 dictionary,在其他语言中也称为 map,使用键-值(key-value)存储,具有极快的查找速度。

集合

s = set([1, 2, 3])
print(s)
>>>
{1, 2, 3}

set 和 dict 类似,也是一组 key 的集合,但不存储 value。由于 key 不能重复,所以,在 set 中,没有重复的 key。

变量

        变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

a = 1
a = 3
print(a)
>>>
3

条件判断

age = 30
if age >= 18:print('your age is', age)print('good')
else:Print('your are not belong here')
>>>
your age is 30
good

if … else… 是非常经典的条件判断语句,if 后面接条件表达式,如果成立,则执行下面的语句,否则执行 else 后面的语句。同时还要注意,Python 语言是采用代码缩进的方式来判断代码块的,一般是四个空格或者一个 tab,两者不要混用。

循环语句

names = {"zhangsan", "lisi", "wangwu"}
for name in names:print(name)
>>>
lisi
zhangsan
wangwu

names 是一个集合,为可迭代对象,使用 for 循环,name 会依次被赋值给 names 中的元素值。

sum = 0
n = 99
while n > 0:sum = sum + nn = n - 2
print(sum)
>>>
2500

在循环内部变量  n不断自减,直到变为-1时,不再满足 while 条件,循环退出。

高级特性

切片

L = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
print(L[1])
print(L[1:3])
>>>
lisi
['lisi', 'wangwu']

Python 中,下标都是从 0 开始的,且都是左闭右开区间

迭代

        对于列表、元组和字典,都是可迭代对象,可以使用 for 来进行迭代取值

L = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
D = {"zhangsan":1, "lisi": 2, "wangwu": 3, "zhaoliu": 4}
for l in L:print(l)
print('\n')
for k,v in D.items():print("键:", k, ",", "值", v)
>>>
zhangsan
lisi
wangwu
zhaoliu键: zhangsan , 值 1
键: lisi , 值 2
键: wangwu , 值 3
键: zhaoliu , 值 4

对于字典,使用 items(),可是同时遍历键值对

函数

调用函数

        Python 内置了很多有用的函数,我们可以直接调用。

>>> abs(100)
100
>>> abs(-20)
20
>>> abs(12.34)
12.34
>>> max(1, 2)
2
>>> max(2, 3, 1, -5)
3

在调用函数时,如果传入的参数有问题,程序会抛出异常。
这里包含了 Python 中所有的内置函数:
https://docs.python.org/zh-cn/3/library/functions.html

定义函数

        在 Python 中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

def add(num1, num2):return num1 + num2result = add(1,2)
print(result)
>>>
3

在代码中,定义了一个叫做 add 的函数,它会接收两个参数,并且会返回他们之和。函数定义之后,可以使用函数名称后面跟()来调用,如果函数有返回值,可以赋给一个变量来接收。

模块

调用模块

        Python 本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。

import time
def sayTime():now = time.time()return nownowtime = sayTime()
print(nowtime)
>>>
1566550687.642805

使用 import 来导入模块,之后就可以调用该模块为我们提供的各种方法变量等。

        模块说白了就是一组工具的集合,我们当然可以自己编写一些工具,然后组成自己的模块,供后面编程使用。

我们自己编写模块,一般目录结构如下

mytest
├─ __init__.py
├─ test1.py
└─ test2.py

现在我们就可以在其他的文件中引用并调用这两个 test 工具文件了

import mytest
mytest.test1

        你应该注意到了 __init__.py 文件,这个文件可以是空文件,包含了 __init__.py 文件的文件夹就是一个”包“(Package)。如果我们需要像上面那样引用文件,就必须包含 __init__.py 文件。
安装第三方模块

        在 Python 中,安装第三方模块,是通过包管理工具 pip 完成的。

        一般来说,第三方库都会在 Python 官方的pypi.python.org网站注册,要安装一个第三方库,必须先知道该库的名称,可以在官网或者 pypi 上搜索,比如 Pillow 的名称叫Pillow,因此,安装 Pillow 的命令就是:

pip install Pillow

面向对象编程

类和实例

        面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如 Student 类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

在 Python 中,使用 class 关键字来定义类

class Student(object):pass

定义好类之后,就可以实例化该类了

zhangsan = Student()
zhangsan.age = 20
print(Student)
print(zhangsan)
print(zhangsan.age)
>>>
<class '__main__.Student'>
<__main__.Student object at 0x00EA7350>
20

此时,变量 zhangsan 就是类 Student 的一个实例了。同时我们还给 zhangsan 绑定了一个属性 age 并赋值。

        请谨记面向对象三大基本要素:抽象,封装,继承。如果你当前对这些还没有太多的概念的话,也不要紧,你可以在后面的学习中慢慢体会。

IO 编程

        读取文件,是后面要经常用到的操作,在 Python 中,使用 open 函数可以非常方便的打开一个文件

f = open('/Users/tanxin/test.txt', 'r')
f.read()
f.close()

标示符 'r' 表示读,这样,我们就成功地打开了一个文件,然后使用 read 函数来读取文件内容,最后用 close 来关闭文件。
文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的

使用 with 来方便的打开文件

with open('/Users/tanxin/test.txt', 'r') as f:print(f.read())

with 语句帮助我们完成了 close 的过程

        文件读取还有 readline() 和 readlins() 两个函数。readline() 一次读取一行数据,readlines() 一次读取所有内容并按行返回一个列表。

正则表达式

        正则表达式是一个很大的学科,其中的内容是完全可以单独写满一本书的,我们这里只做些简单的介绍。

Python 中提供了 re 模块来做正则

import re
str1 = "010-56765"
res = re.match(r'(\d{3})-(\d{5})', str1)
print(res)
print(res.group(0))
print(res.group(1))
print(res.group(2))
>>>
<re.Match object; span=(0, 9), match='010-56765'>
010-56765
010
56765

match() 方法判断是否匹配,如果匹配成功,返回一个 Match 对象,否则返回 None
配合 group 方法,可以有效的提取出字字符串。

requests 库简介

        requests 库,是一个非常常用的 HTTP 网络请求库。

import requests
r = requests.get('https://www.baidu.com')
r = requests.post('http://test.com/post', data = {'key':'value'})
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://test.com/get", params=payload)

此时的 r 是一个 response 对象,我们可以从中获取到相关信息

r.text  # 获取响应内容
r.content  # 以字节的方式读取响应信息
response.encoding = "utf-8"  # 改变其编码 
html = response.text  # 获得网页内容 
binary__content = response.content  # 获得二进制数据 
raw = requests.get(url, stream=True)  # 获得原始响应内容 
headers = {'user-agent': 'my-test/0.1.1'}  # 定制请求头 
r = requests.get(url, headers=headers) 
cookies = {"cookie": "# your cookie"}  # cookie 的使用 
r = requests.get(url, cookies=cookies)

        这里只是简单介绍了 Python 的语法,如果要深入学习,还需要花费更多的精力。


http://www.ppmy.cn/news/937890.html

相关文章

第一次使用linux电脑,计算机基础与Linux初次亲密接触第一天(马哥)

什么是计算机&#xff1f; 计算机(computer)俗称电脑&#xff0c;是现代一种用于高速计算的电子计算机器&#xff0c;可以进行数值计算&#xff0c;又可以进行逻辑计算&#xff0c;还具有存储记忆功能。是能够按照程序运行&#xff0c;自动、高速处理海量数据的现代化智能电子设…

高边电流检测测量:电路和原理

摘要 : 本应用笔记介绍利用电流检测放大器、差分放大器和仪表放大器测量智能手机、平板电脑、笔记本计算机及USB附件中的电池充电和放电电流。通过对高边电流检测放大器与低边差分放大器进行了比较&#xff0c;并给出了检流电阻的选择标准。文中介绍了高电压短路器&#xff0c;…

带你了解锂电池保护板的工作原理

拆过手机或者平板的用户&#xff0c;应该都注意过&#xff0c;在手机或者平板的锂电池部分&#xff0c;其上端有一块质地较软且被塑料膜包裹起来的电路板(电池大小不同&#xff0c;电路板尺寸也不一样)。揭开塑料膜&#xff0c;你会发现&#xff0c;其上布置了很多的元器件。 …

东声智能基于Handdle AI打造的深度学习缺陷检测应用实例

为了适应如今这个发展越来越快的社会&#xff0c;机器视觉检测技术是必不可少的。而且机器视觉检测在工业自动化生产过程中成为了一种重要角色&#xff0c;尤其是针对一些大规模的生产企业&#xff0c;通过机器视觉来替代传统人工目测的检测方式&#xff0c;识别产品缺陷&#…

基于Python,OpenCV,Numpy和Albumentations实现目标检测的合成数据集

1.总述 训练一个对象检测模型&#xff0c;如YOLOv5&#xff0c;需要一个包含感兴趣对象的图像和注释(带有对象边界框坐标的文本文件)的数据集。 例如&#xff0c;在下面的图片中&#xff0c;你可以看到可视化的边界框。每个边界框表示与特定类别相关的感兴趣的对象:battery 电…

计算机电池不输出保护电源适配器厂家,使用非标准电源适配器出现电池性能的解决方法...

? ? 在通常情况下&#xff0c;我们都是使用笔记本电脑自带的原装电源适配器来进行充电。不过有用户反映&#xff0c;惠普笔记本在原装充电器损坏的情况下&#xff0c;用了其他的非标准电源适配器&#xff0c;会在系统右下角提示通知消息&#xff0c;出现了电池性能问题&#…

3串锂电池充放电保护板设计参考

3串锂电池充放电保护板设计参考 ✨这里只提供原理图参考 链接&#xff1a;https://pan.baidu.com/s/1cSmTf8fifrEjxfrCrTV-3w 提取码&#xff1a;5i5i不想自己做&#xff0c;可以去TB买&#xff0c;也不贵&#xff0c;也就10几块钱&#xff0c;自己做也可以参考其说明一看就懂…

在云计算环境中,保护Java应用程序可用的有效措施和工具

云计算&#xff08;Cloud&#xff09;技术是近年来计算机科学的一个重要突破。大多数组织已经通过将自己的应用程序移入云平台而获益。不过&#xff0c;如何保证应用程序在第三方服务器上的安全性&#xff0c;是一项艰巨的挑战。 在本文中&#xff0c;我们将重点讨论Java&…