百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

小白必看篇:教你如何简单学习python,快速入门

off999 2024-11-11 12:46 32 浏览 0 评论

“人生苦短,我学python”是编程届的名言。用python写小脚本的便捷性,让很多其他语言的学习者把python当作辅助语言。拥有了某一个语言的功底,再来学习另外一种语言应该是十分快速的。

基础的运算

安装好python环境后,运行win+R,输入python直接进入python的交互页面,这边可以进行数学运算。

>>> 2+2
4
复制代码

表1 数学操作符,优先级从高到低

操作符 操作 例子 值 ** 指数 2 ** 3 8 % 取模/取余数 22 % 8 6 // 整除/商数取整 22 // 8 2 / 除法 22 / 8 2.75 * 乘法 3 * 5 15 - 减法 5 - 2 3 + 加法 2 + 2 4

由上面可以看出python前两个基础类型 整数、 浮点类型。这两个和java中的概念差不多。

字符串

作为基础的类型,当然少不了字符串了,和java一样,字符串可以进行拼接操作。例如:

>>> 'AAA' + 'BBB'
'AAABBB'
>>> 'CCC'+25
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> 'DEF'*3
'DEFDEFDEF'
复制代码

如上,‘AAA’+'BBB'可以直接进行字符串的拼接。但是与java不同的是 python不会进行类型强制转化,所以当用字符串‘CCC’+int型的25的时候就会报错。对python进行*操作,字符串会进行复制。

变量名

这边插一段,在java中进行变量声明的时候,需要指定变量类型,在python中不需要,但是python变量名也需要一定的规则。

  1. 只能是一个词。
  2. 只能包含字母、数字和下划线。
  3. 不能以数字开头。

类型转化

为了让int型的5可以转化成字符串类型,从而和字符串拼接,python提供了一些内置函数。
表2 一些python内置函数

函数 作用 示例 str() 转化类型为字符串 str(5) int() 转化类型为整数 int('5') float() 转化类型为浮点数 float('5') print() 打印函数 略 input() 读取用户输入数据 myName = input() len() 内容长度 len(myName)

控制流

布尔值

现在引入第四个数据类型,布尔值。python的布尔值也是有真或者假,但是python中的真为True(注意T必须大写),假为False(F也必须为大写),同样的布尔类型不能与其他类型相比较。

>>> True
True
>>> true
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>> True = 1
  File "<stdin>", line 1
SyntaxError: can't assign to keyword
复制代码

比较类型

表3 比较类型

操作符 含义 == 等于 != 不等于 < 小于 > 大于 <= 小于等于 >= 大于等于

同时python也可以使用二元操作符 and、or、not同java中的与、或、非。

条件与代码块

你前面看到的布尔表达式可以看成是条件,它和表达式是一回事。“条件”只是在 控制流语句的上下文中更具体的名称。条件总是求值为一个布尔值,True 或 False。控制 流语句根据条件是 True 还是 False,来决定做什么。几乎所有的控制流语句都使用条件。

代码块

python没有java中那种{}来区分代码块,python中所有的代码块都是通过缩进进行的。

  1. 缩进增加时,代码块开始。
  2. 代码块可以包含其他代码块。
  3. 缩进减少为零,或减少为外面包围代码块的缩进,代码块就结束了。
>>> if 'a'=='b':
...     print('真')
... else:
...     print('假')
...
假
复制代码

以上是一个if else 的控制流,条件后面加上冒号,并且代码块需要缩进方式。

while循环的格式如下:

spam = 0
while spam < 5:
print('Hello, world.')
spam = spam + 1
复制代码

另外 python 也有break 和continue 关键字可以使用。

for循环

for循环单另儿拿出来以示尊重,for循环的格式如下:

for 关键字;
一个变量名;
in 关键字;
调用 range()方法,最多传入 3 个参数;
冒号;
从下一行开始,缩退的代码块(称为 for 子句)。

for i in range(5):
    print('Jimmy Five Times (' + str(i) + ')')
复制代码

i分别执行0、1、2、3、4.

range()方法其实有三个参数,只是可以省略其中两个。range(start、end、gap),可以指定开始、结束和步长。

>>> for i in range(0,10,3):
...     print(i)
...
0
3
6
9
复制代码

函数

导入模块

Python 程序可以调用一组基本的函数,这称为“内建函数”,包括你见到过的print()、input()和 len()函数。Python 也包括一组模块,称为“标准库”。每个模块都是一个 Python 程序,包含一组相关的函数,可以嵌入你的程序之中。例如,math模块有数学运算相关的函数,random 模块有随机数相关的函数,等等。
利用import或者from import语句

自定义函数

除了内建函数,大部分的函数都是自定义的。(即使从模块中导入的函数也是别人自定义好的,让你使用的)

def hello(name):
 print('Hello ' + name)
复制代码

def 函数名(参数):
函数体

None

在Python中有一个值称为None,它表示没有值。None是NoneType数据类型的唯一值(其他编程语言可能称这个值为null、nil或 undefined)。就像布尔值True和False一样,None必须大写首字母 N。

异常处理

def temp_convert(var):
    try:
        return int(var)
    except ValueError, Argument:
        print "参数没有包含数字\n", Argument
复制代码

类似于java,python捕获处理一场用的是try,except,只不过在except后面除了可以跟异常类(比如例子中的ValueError),还可以跟上引发一场的参数(比如例子中的Argument,其实就是try中的var)

列表

列表可以看作java中的数组集合,可以存放一些元素,比如>>> spam = ['cat', 'bat', 'rat', 'elephant']。我们可以通过index获取某个元素,比如spam[0]=‘cat’,同时可以从后往前拿数据,比如spam[-1]='elephant'。

切片

除了直接操作index,获取某个元素之外,还可以通过切片获得一段子列表。

>>> spam[1:3]
['bat', 'rat']
>>> spam[0:-1]
['cat', 'bat', 'rat']
复制代码

列表的拼接与复制

与java不同的是,python的列表可以自由的拼接复制。

>>> [1, 2, 3] + ['A', 'B', 'C']
[1, 2, 3, 'A', 'B', 'C']
>>> ['X', 'Y', 'Z'] * 3
['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z']
复制代码

列表结合某些关键字和方法

  1. 删除某列表中的某元素,可以直接用del关键字。
  2. 也可以结合for循环
>>> supplies = ['pens', 'staplers', 'flame-throwers', 'binders']
>>> for i in range(len(supplies)):
print('Index ' + str(i) + ' in supplies is: ' + supplies[i])
复制代码
  1. 利用 in 、not in 直接判断某元素是否在列表中
>>> 'howdy' in ['hello', 'hi', 'howdy', 'heyas']
True
>>> spam = ['hello', 'hi', 'howdy', 'heyas']
>>> 'cat' in spam
False
复制代码
  1. index()方法判断某元素在列表中的第一次出现的下标,没有的话就报错。
>>> spam = ['Zophie', 'Pooka', 'Fat-tail', 'Pooka']
>>> spam.index('Pooka')
1
复制代码
  1. 用 append()和 insert()方法在列表中添加值
    append()方法调用,将参数添加到列表末尾。insert()方法可以在列表任意下标处插入一个值。insert()方法的第一个参数是新值的下标,第二个参数是要插入的新值。
  2. 用remove()方法从列表中删除值
  3. 用sort()方法将列表中的值排序

元组

在java中,我们知道String 是被final修饰的,所以String本身是不能修改的,如果对String进行修改,其实是在内存中新建了一个新的String。类似的python中也有一个不可修改的数据类型——元组。元组和列表差不多,很多方法都是共通的。只不过,元组是用"()"表示,并且元组内的元素不能被修改,也不能对元组进行增加删除操作。

元组和列表的转化

函数list()和tuple()将返回传递给它们的值的列表和元组版本。

>>> tuple(['cat', 'dog', 5])
('cat', 'dog', 5)
>>> list(('cat', 'dog', 5))
['cat', 'dog', 5]
>>> list('hello')
['h', 'e', 'l', 'l', 'o']
复制代码

引用与引用函数

>>> spam = [0, 1, 2, 3, 4, 5]
>>> cheese = spam
>>> cheese[1] = 'Hello!'
>>> spam
[0, 'Hello!', 2, 3, 4, 5]
>>> cheese
[0, 'Hello!', 2, 3, 4, 5]
复制代码

看上面的代码,非常好理解,spam将引用复制给cheese,而不是复制的对象,所以对某个引用操作,都会改变那唯一的对象。如果想为cheese引用生成一个新的对象,就需要用到拷贝函数copy()和deepcopy()。其实就是java中的浅拷贝和深拷贝。

>>> import copy
>>> spam = ['A', 'B', 'C', 'D']
>>> cheese = copy.copy(spam)
>>> cheese[1] = 42
>>> spam
['A', 'B', 'C', 'D']
>>> cheese
['A', 42, 'C', 'D']
复制代码

deepcopy()深拷贝是指,不仅生成一个与spam一样新的对象,连spam内部的数据也一起复制一堆新的对象出来。就好比说把'A','B'这种元素分别换成一个个子列表,浅拷贝不会对他们复制,而深拷贝会对这些对象进行复制。

字典

像列表一样,“字典”是许多值的集合。但不像列表的下标,字典的索引可以使用许多不同数据类型,不只是整数。字典的索引被称为“键”,键及其关联的值称为“键-值”对。所以可以说字典就是java中的Map。

 myCat = {'size': 'fat', 'color': 'gray', 'disposition': 'loud'}
复制代码

与列表不同的是,字典没有顺序的概念,所以不能通过操作index获取某元素,不能使用切片,不能使用排序函数。

操作字典

基本操作

所以操作字典,就需要另辟蹊径,使用函数keys()、values()和 items()。顾名思义,分别是获取字典的key值们,val值们,和键值对本身们。

>>> spam = {'color': 'red', 'age': 42}
>>> for v in spam.values():
        print(v)
red
42
>>> for k in spam.keys():
        print(k)
color
age
>>> for i in spam.items():
        print(i)
('color', 'red')
('age', 42)
复制代码

值得一提的是 spam.keys()获得的是元组,如果希望的到对应的列表就需要用list函数转化。

检查字典中是否存在键或值

可以利用in 或者not in 关键字判断数据是否在字典中。

>>> spam = {'name': 'Zophie', 'age': 7}
>>> 'name' in spam.keys()
True
>>> 'Zophie' in spam.values()
True
>>> 'color' in spam.keys()
False
>>> 'color' not in spam.keys()
True
>>> 'color' in spam
False
复制代码

get()和setdefault()方法

get()可以通过key值找到相对应的value值。get有两个参数,第一个参数是key值,第二个参数是在键值对不存在(或者说key不存在)的时候,给予的默认值。

>>> picnicItems = {'apples': 5, 'cups': 2}
>>> 'I am bringing ' + str(picnicItems.get('cups', 0)) + ' cups.'
'I am bringing 2 cups.'
>>> 'I am bringing ' + str(picnicItems.get('eggs', 0)) + ' eggs.'
'I am bringing 0 eggs.'
复制代码

setdefault()有两个参数,第一个是要插入键值对的key值,第二个是默认值。当原字典中有这个key值,就什么也不做,如果原字典中没有这个key值,就将默认值作为value,同key一起拼成键值对插入到字典中。

>>> spam = {'name': 'Pooka', 'age': 5}
>>> spam.setdefault('color', 'black')
'black'
>>> spam
{'color': 'black', 'age': 5, 'name': 'Pooka'}
>>> spam.setdefault('color', 'white')
'black'
>>> spam
{'color': 'black', 'age': 5, 'name': 'Pooka'}
复制代码

字符串操作

我们早已经知道了字符串和其基本操作了,当我们又学习了列表、元组、字典之后再来看一下更加丰富的处理字符串的方法。

转移字符和原始字符

和java一样,python也是用 \ 对特殊字符进行转义。同时,还有原始字符 r。可以在字符串开始的引号之前加上r,使它成为原始字符串。“原始字符串”完全忽略所有的转义字符,打印出字符串中所有的倒斜杠。

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
复制代码

注释与多行字符

python单行注释可以使用特殊字符#,同时多行注释可以使用""".

# 这是一行注释
"""
这是多行注释
这是多行注释
这是多行注释
"""
复制代码

有时候我们在使用print函数的时候,打印的字符串很长很长,为了页面好看,可以使用'''将大字符串拆分成好几行。

print('''Dear Alice,
Eve's cat has been arrested for catnapping, cat burglary, and extortion.
Sincerely,
Bob''')
复制代码

字符串下标和切片

一个字符串也可以当作列表来处理,其中元素可以看作是一个个字符。所以就可以对字符串进行下标操作或者切片操作。同样的就可以利用in、not in判断某字符是否在字符串内了。

>>> spam = 'Hello world!'
>>> spam[0]
'H'
>>> spam[4]
'o'
>>> spam[-1]
'!'
>>> spam[0:5]
'Hello'
>>> spam[:5]
'Hello'
>>> spam[6:]
'world!'
复制代码

一些字符串内建方法

  1. upper() 字符串全部变大写
  2. lower() 字符串全部变小写
  3. isupper()字符串至少有一个字母,并且所有字母都是大写
  4. islower()字符串至少有一个字母,并且所有字母都是小写
  5. isalpha()字符串只包含字母,并且非空
  6. isalnum()字符串只包含字母和数字,并且非空
  7. isdecimal()字符串只包含数字字符,并且非空
  8. isspace()字符串只包含空格、制表符和换行,并且非空
  9. startswith()字符串以该方法传入的字符串开始
  10. endswith()字符串以该方法传入的字符串结束
  11. join()拼接字符串,可指定分隔符
  12. split()通过某值切割字符串
  13. rjust()左填充,如果输出数据不足,补充空格
  14. ljust()右填充,如果输出数据不足,补充空格
  15. center()字符串居中,左右数据不足,补充空格

结束

学以致用,写爬虫也是我学习python的一个动力,写了一个小脚本爬取豆瓣电影TOP250.(好像这个是爬虫入门经典案例吧,哈哈)代码贴一下

import requests as rq
from bs4 import BeautifulSoup
import pandas as pd

def get_data(url):
    print(url)
    html = rq.get(url).content.decode("utf-8")
    soup = BeautifulSoup(html,"lxml")
    divItems = soup.find_all("div","item")

    for item in divItems:
        name = item.find('span',{'class':'title'}).text
        rating_num = item.find('span',{'class':'rating_num'}).text
        number = item.find('em').text
        imgUrl = item.find("img").attrs['src']
        print("----------->")
        print("number:"+number)
        numbers.append(number)

        print("name:"+name)
        names.append(name)

        print("rating_num:"+rating_num)
        rating_nums.append(rating_num)

        print("imgUrl:"+imgUrl)
        imgUrls.append(imgUrl)
        print("----------->")


data_df = pd.DataFrame()
numbers = []
names = []
rating_nums = []
imgUrls = []

for num in range(0,10):
    get_data("https://movie.douban.com/top250?start={}&filter=".format(int(num)*25))

data_df["序列"] = numbers
data_df["名称"] = names
data_df["评分"] = rating_nums
data_df["海报"] = imgUrls
writer = pd.ExcelWriter('movie_top250.xlsx')
data_df.to_excel(writer, 'page_1', float_format='%.5f')  # float_format 控制精度
writer.save()
复制代码

当然,提前需要install的模块 requests
BeautifulSoup4
pandas
openpyxl
lxml(BeautifulSoup4 的解析器)

结束。

最后多说一句,小编是一名python开发工程师,这里有我自己整理的一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。

相关推荐

免费ppt软件官方下载(免费ppt软件有哪些)
免费ppt软件官方下载(免费ppt软件有哪些)

1.第一个是优品ppt,首先网站设计的很漂亮,ppt的质量不错,重点是免费;2.第二个是51ppt,里面的模板也都可以免费下载,可以说是非常的良心了,...3.第三个是officeplus,是office的官方网站,出品的模板质量不错,.....

2026-01-17 08:51 off999

免费下载电影的网站(免费下载电影的网站或者app)
免费下载电影的网站(免费下载电影的网站或者app)

电影天堂很多高清电影可以下载1.打开片库网,点击需要下载的影视进入。2.进入到视频播放页面,直接点击屏幕中的下载按钮即可.在电驴里面有这种蓝光电影,你可以去下载。以前用过一个80s电影网,不知道现在还能不能用了,好久没用了,刚出的电影也有的...

2026-01-17 08:43 off999

ie浏览器官网入口(ie浏览器中文版官方下载)

没有手机版本的IE浏览器,所以就没有官方入口这一说法。用户还是使用手机自带的浏览器,或者在应用商店中下载其他的浏览器,比如夸克浏览器、X浏览器、QQ浏览器等等。1、进入手机浏览器,选择三字形的按钮。...

电信宽带测速手机版(中国电信宽带测速器)

可以使用网速测试工具进行测速。一般来说,打开浏览器,输入“速度测试”或“网速测试”等关键词,选择一个网速测试网站进行测速即可。测试时需确保关闭所有下载、上传、在线观看视频等网络活动,以免干扰测速结果...

用自己名字设计logo免费(店名设计logo免费生成器)

进入短信--设置--我的头像选择一照片设置即可微信在名字里加上小图标的步骤如下:1丶打开手机微信,在微信聊天框中输入你包含小图标的昵称,并长按复制。2丶之后点击微信中的设置选项。3丶点击红框中的昵称...

网页制作app手机版(网页在线制作app)

有区别图虫网登录麻烦,图虫app方便图虫网是一个专业摄影网站,有数十个摄影相关社区,有各个题材的图库,有大量注册摄影师上传照片并展示。优秀摄影作品可以出售卖钱。需要电脑网页登录。《图虫》APP是今日头...

ae剪辑软件下载(ae剪辑软件下载包)

如果你手头的插件正好是.aex后缀的话,直接复制到“X:\AdobeAfterEffectsCS4\SupportFiles\Plug-ins”里面。如果是.ffx的话那么这就是预置(可以直接用的加上...

google map下载(googlemap下载官网)

国内封杀了谷歌的,你打开就是空白什么也看不到的,网络需要使用VPN连接就可以使用了的,另外如果你要看卫星地图,不是下载那个谷歌地图,而是下载那个谷歌地球,但是使用的时候也是需要使用VPN连接的网络,首...

免费秒玩小游戏的网站(无需登录网页小游戏网站)
免费秒玩小游戏的网站(无需登录网页小游戏网站)

是的,秒玩小游戏是不需要下载的,因为秒玩小游戏有固定的系统承包,系统会帮助运行在手机上,所以秒玩小游戏是不需要玩家自己进行下载就可以进行游玩的斗鱼狼人杀游戏入口在哪里?想要找到这款游戏的话,我首先我们点开头条,然后找到任务。然后找到任务之后...

2026-01-17 06:51 off999

变态游戏盒子排行榜第一(最新变态游戏盒子)

如需下载第三方应用软件(好玩的游戏、常用工具应用、系统辅助工具等),建议可以通过自带的应用商店或手机论坛等搜索目前较为热门的软件。1、若您的手机自带应用商店,可以按照如下方式查找:应用程序-应用商店-...

手机同屏软件免费下载(同屏软件免费版)
  • 手机同屏软件免费下载(同屏软件免费版)
  • 手机同屏软件免费下载(同屏软件免费版)
  • 手机同屏软件免费下载(同屏软件免费版)
  • 手机同屏软件免费下载(同屏软件免费版)
东北大智慧手机版下载最新(东北大智慧安卓版)

上网下升级版安装包可以了

psp3000十大最耐玩的游戏(psp3000游戏排行榜)

有很多经典耐玩的游戏,包括《怪物猎人自由2》、《勇者斗恶龙IX》、《战神》、《上古卷轴:奥布里维恩》等等。 其中,《怪物猎人自由2》是一款非常有趣的动作游戏,游戏中玩家需要探索各种地图,与各...

开车游戏(开车游戏单机安卓版)

以前玩的开车游戏有《超车小能手》。《超车小能手》是一款第一人称3D模板驾驶赛车类游戏。游戏采用第一人称的视角,玩家可以选择不同的赛车类型。采用了第一人称驾驶赛车的方式进行游戏,进行了跑车引擎声音的还原...

已经停服的手游(已停服游戏大全)

停服了战区现在也已经开始进入到一个短暂的停服阶段,具体的原因主要是根据官方所说,这本身就是为了能够有效保持一种服务器的稳定,然后就会选择停服的操作。烈火如歌手游停运的原因是因为官方计划对游戏进行重制。...

取消回复欢迎 发表评论: