更新于2020年5月

一、程序的安装和运行

1.1 资源推荐

Python 官方中文文档:Python 3.7.3 文档

Github:Github开源Python项目

免费教程:廖雪峰的官方网站

付费课程:扇贝编程

书籍:Python编程:从入门到实践-埃里克·马瑟斯

书籍:使用Python自动执行无聊的工作-Al Sweigart

书籍:如何像计算机科学家一样思考-Peter Wentworth

书籍:艰苦学习Python

1.2 各类编程语言的区别

除Python之外,还有C、C++、Java等编程语言,各自都有适用的领域。

  • 对性能要求非常高的软件,比如操作系统或者图像处理,通常会用C或者C++编写
  • 安卓上的APP一般都用Java,苹果APP一般用Object C或者Swift
  • Python通常用于数据分析、网络爬虫、人工智能,也可以用于网站或者APP的服务器端程序

Python的优点:语法简洁,既适合初学者入门,也能应用在人工智能等高端领域

(摘自扇贝编程)

1.3 安装Python

(部分转自廖雪峰老师的教程 安装Python)

在Mac上安装Python

如果你正在使用Mac,系统是OS X>=10.9,那么系统自带的Python版本是2.7。要安装最新的Python 3.7,有两个方法:

方法一:从Python官网下载Python 3.7的安装程序,双击运行并安装;

方法二:如果安装了Homebrew,直接通过命令brew install python3安装即可。

在Linux上安装Python

如果你正在使用Linux,那我可以假定你有Linux系统管理经验,自行安装Python 3应该没有问题,否则,请换回Windows系统。

在Windows上安装Python

Python官网地址:https://www.python.org/downloads/windows/

首先,我们根据自己系统类型(32 位或 64 位)来选择合适的版本点击下载,一般我们选择 executable installer就行。86-64就是64位,86(不带64)就是32位

17569167-78288525fdd04944

各个版本的区别是:

  • embeddable zip file:嵌入式版本,可以集成到其它应用中
  • web-based installer:联网方式安装
  • executable installer:可执行文件(*.exe)方式安装

我们这里选择了Windows x86-64 executable installer(我电脑是64位的),下载完成后双击打开,可以看到如下图所示的界面。

17569167-2db1f1f33da6720e

特别要注意勾上Add Python 3.7 to PATH,然后点“Install Now”即可完成安装。

安装结束之后,在开始菜单栏可以看到Python的安装内容

image-20200326161813669

点击IDLE(Python 3.8 64-bit),打开编辑器,界面长这样

image-20200326162054517

1.4 安装Spyder

我个人是更喜欢Spyder的开发环境,会比这个默认的好看方便(每个人喜好不同,不安装也无所谓)

我选择安装anaconda,因为里面不仅带了Spyder,还自带了Jupyter Notebook

anaconda官网网址:https://www.anaconda.com/distribution/

image-20200316095746988

安装之后,就可以看到Spyder

image-20200316095938368

1.5 命令提示符

命令提示符是我们一定要知道的一个东西,因为安装库,都靠它。

先说明一点,用spyder或者默认Python,安装库的位置是不一样的。

默认Python

如果你用的是默认的Python,那么命令提示符用的是系统自带的

Win7系统:开始菜单—>附件—>命令提示符

Win10系统:开始菜单—>Windows系统—>命令提示符

或者直接搜索cmd

image-20200316094919989

输入Python,会显示你的版本号

image-20200316095048893

Spyder

如果你用的是Spyder,很有可能,你在命令提示符装的库,它根本感受不到

你需要在Anaconda Prompt 里面输入

image-20200326203512696

同样输入Python,会显示你的版本号

image-20200326203349259

后面安装库的时候,一定要注意这一点。如果是用Spyder,要在Anaconda Prompt 里面安装。

当然,安装的命令,是一模一样的,只是输入的地方不一样

1.6 安装Python库

Python依赖于很多库,这里的库,是根据自己需要安装的。为什么要安装库。就差不多相当于站在巨人的肩膀上吧。人家大神把很多功能写好了,我们拿过来用就行。安装的代码是 pip install 库的名称

pip:Python第三方库安装工具,用来在当前计算机上安装第三方库。

爬虫需要的最基础的库是requests,那我们安装的时候,输入

pip install requests

如果你安装好这个库了,系统会提示你already satisfied

image-20200326204017120

再比如,我想要一个操作PDF相关的库pdfplumber。打开命令提示符,输入

pip install pdfplumber

Python安装库的时候是这样的

17569167-ffe90d49de366d8d

如果界面出现(红色框里的)提示,更新所有自带的库即可

输入python -m pip install --upgrade pip

image-20200316095328745

最后,是不是每一个库都需要安装呢?不是的!有些库是Python自带的,比如turtle,你不需要安装,也能直接用。学会装库之后,我们开始写代码啦~

1.7 向你的新世界说Hello

IDLE:Python集成开发环境,用来编写和调试Python代码

如果你是默认的Python,在开始菜单栏,打开IDLE

输入如下代码。Print表示输入这行文字。注意,引号要用英文输入法,不能用中文输入法哟~

print("Hello, World!")

你在向新世界说Hello的时候,新世界也在向你说Hello呀~这是一个交互式的运行环境

17569167-227993f8db17019f

  • 下次开始写代码的时候,可以打开File-New,新建一个IDLE代码编辑器,操作更方便。右边写代码,左边出结果

17569167-756668c86a091e43

IDLE快捷键:

Ctrl+N:在IDLE交互界面下,启动IDLE 编辑器

Ctrl+Q:退出IDLE 编辑器

Alt+3:在IDLE 编辑器内,注释选定区域文本

Alt+4:在IDLE 编辑器内,解除注释选定区域文本

F5:在IDLE 编辑器内,执行Python程序

如果你是Spyder界面,那就打开Spyder输入,代码都是一样哒。点绿色的箭头运行,Spyder的输出在界面的右侧

image-20200326204932095

1.8 实践:画个小猪佩奇吧

把以下代码贴进去,直接运行就可以了。先不管为什么要这样写代码,咱们后面再研究。总之,Python是个好玩的东西~

import turtle as tt.pensize(4)
t.hideturtle()
t.colormode(255)
t.color((255, 155, 192), "pink")
t.setup(840, 500)
t.speed(10)# 鼻子
t.pu()
t.goto(-100,100)
t.pd()
t.seth(-30)
t.begin_fill()
a = 0.4
for i in range(120):if 0 <= i < 30 or 60 <= i < 90:a = a+0.08t.lt(3)  # 向左转3度t.fd(a)  # 向前走a的步长else:a = a-0.08t.lt(3)t.fd(a)t.end_fill()t.pu()
t.seth(90)
t.fd(25)
t.seth(0)
t.fd(10)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82, 45)
t.end_fill()t.pu()
t.seth(0)
t.fd(20)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82, 45)
t.end_fill()# 头
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.fd(0)
t.pd()
t.begin_fill()
t.seth(180)
t.circle(300, -30)
t.circle(100, -60)
t.circle(80, -100)
t.circle(150, -20)
t.circle(60, -95)
t.seth(161)
t.circle(-300, 15)
t.pu()
t.goto(-100, 100)
t.pd()
t.seth(-30)
a = 0.4
for i in range(60):if 0 <= i < 30 or 60 <= i <90:a = a+0.08t.lt(3)  # 向左转3度t.fd(a)  # 向前走a的步长else:a = a-0.08t.lt(3)t.fd(a)t.end_fill()# 耳朵
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 54)
t.end_fill()t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 56)
t.end_fill()#眼睛
t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-95)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-25)
t.seth(0)
t.fd(40)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()# 腮
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()# 嘴
t.color(239, 69, 19)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(-100)
t.pd()
t.seth(-80)
t.circle(30, 40)
t.circle(40, 80)# 身体
t.color("red", (255, 99, 71))
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
t.seth(-130)
t.circle(100,10)
t.circle(300,30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300,30)
t.circle(100,3)
t.color((255,155,192),(255,100,100))
t.seth(-135)
t.circle(-80,63)
t.circle(-150,24)
t.end_fill()# 手
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300,15)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20,90)t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300,15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20,90)# 脚
t.pensize(10)
t.color((240,128,128))
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)# 尾巴
t.pensize(4)
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(70, 20)
t.circle(10, 330)
t.circle(70, 30)t.hideturtle()
t.done()

二、入门语句

本章内容运行环境:Jupyter Notebook

关于Jupyter Notebook的使用,可以参考:https://www.zhihu.com/question/266988943 (由Clover提供)

本单元视频链接:https://v.youku.com/v_show/id_XNDYyMTI4OTA5Mg==.html

2.1 输入输出和注释

input("你叫什么名字:")   # 这时候可以输入你的名字
print("欢迎你学习Python")  # 屏幕输出结果用print

#代表注释,不参与程序执行

print代表输出

input代表输入

2.2 数据类型和变量

1) 变量

变量:在计算机程序中,变量不仅可以为整数或浮点数,还可以是字符串

变量命名: 只能有字母_数字,其中数字不可以放在开头,比如3_a_b,程序就直接报错了

变量赋值:用等号=为变量赋值

phone_number = "我的电话是:18899998888" 

在实际使用中,希望大家可以起一点有意义的变量名,比如nameage 这种,而不要都是abcdef,这不仅别人看不懂你写的是什么,可能后面你自己都不记得,这个变量是干嘛的了。写代码的时候多注释,是个好习惯。

2) 数字

  • int (有符号整数),比如-3520
  • bool (布尔值),True或者False
  • float (浮点值),比如3.140.9
  • complex (复数),比如2+8i

3) 字符串

  • 引号引起来的一串字,可以是英文,也可以是数字,还可以用 emoji 表情哟。

  • 引号可以是:单引号'字符串',双引号"字符串",三引号'''字符串'''

    ord():获取字符的整数表示

    chr():把编码转换为对应的字符

字符串的联结:+

text_1 = "今天我"
text_2 = "很开心"
full_text = text_1 + text_2
print(full_text)
# 输出:今天我很开心

如果需要将数值与字符串联结,先用str()将其他类型转为字符串,再将其与字符串联结。关于各种类型的相互转换,可参考【第八章 数据类型转换】

print("先挣" + str(1) + "个亿再说。")
# 输出:先挣1个亿再说。

多行字符串

  • 当字符串包含多行信息,尤其文本包含大量引号的时候,我们可以使用""" ``````"""或者''' ``````'''包裹字符串。
  • 计算机读到第一个"""时,会知道在下一个"""出现之前,被包裹的信息都是字符串。
  • 这种方法可以减少错误,提高代码可读性。
Song = """
Well I wonder could it be
When I was dreaming about you baby
You were dreaming of me
"""

如果"""``````"""之中的信息不被赋值于变量,则会被Python视作为注释。比如在代码开头,备注写代码的时间和作者。

"""
Created on Tue May 22 2019
@author: YangYang
"""

2.3 转义字符

刚刚上面提到,引号' text '在代码,是用于表示字符串的。那假设,我需要输入一段文字,里面本来就有引号怎么办?或者我要表示换行怎么办?

这里就涉及到了转义字符,用\来表示

\'  # 表示单引号
\"  # 表示双引号
\n  # 表示换行符
\\  # 表示反斜线

比如要输出I'm fine,你可以这样写

print("I\'m fine")

2.4 算术运算符

单目运算符正号(+)和负号(-), 双目运算符, +,-,*,/,%,还有 ** ,分别表示加法,减法, 乘法, 除法, 取余, 和幂运算。

加减乘除:通过+ - * /符号分别进行加、减、乘、除四种运算

print(3+5)   # 输出:8
print(4-5)   # 输出:-1
print(5*2)   # 输出:10
print(6/2)   # 输出:3.0

指数:通过**符号实现指数运算

print(10 ** 2)   # 10 的平方,输出 100
print(4 ** 3)    # 4 的立方,输出 64
print(4 ** 0.5)  # 4 的平方根(0.5次方),输出 2

余数:通过%符号进行余数运算

print(29 % 5) # 输出 4
print(3 % 2)  # 输出 1
print(44 % 2) # 输出 0

整除

加等:通过+=符号进行加等运算

A = 1
A += 2  # 等效于A = A+2
print(A) 
# 输出:3

+=符号还可以用来联结字符串

# 将 Python 官方文档网址赋值于web_address
web_address = "https://docs.python.org"
# 将 Python中文教程部分网址 赋值于 cn
cn = "/zh-cn/3/tutorial/"
# 将 cn 合并于web_address
web_address += cn
print(web_address)# 输出:https://docs.python.org/zh-cn/3/tutorial/

上面提到,在字符串里面+表示把两个字符串连接起来。在数字计算中+表示相加计算,这里来看个例子

print(2+5)  #  输出7
print('2'+'5')  # 输出25

第一行的2+5,没有引号,代表直接计算。2+5=7
第二行的’2’+‘5’,代表2这个字符,和5这个字符,连接起来,就是25,这个25,还是一个字符

2.5 help和dir

help

如果你不清楚一些系统的基础函数要怎么用,你可以用help

比如,print输出的时候,可以指定结束标记,不指定的时候,默认是换行符。你可以用help查看一下

help(print)

输出

Help on built-in function print in module builtins:print(...)print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)Prints the values to a stream, or to sys.stdout by default.Optional keyword arguments:file:  a file-like object (stream); defaults to the current sys.stdout.sep:   string inserted between values, default a space.end:   string appended after the last value, default a newline.flush: whether to forcibly flush the stream.

这时候,你就可以看到print的完整用法

dir

dir可以查看,这个对象有哪些属性

比如看看一个整形int可以有哪些操作

dir(int)

输出

['__abs__','__add__','__and__','__bool__','__ceil__','__class__','__delattr__','__dir__','__divmod__','__doc__','__eq__','__float__','__floor__','__floordiv__','__format__','__ge__','__getattribute__','__getnewargs__','__gt__','__hash__','__index__','__init__','__init_subclass__','__int__','__invert__','__le__','__lshift__','__lt__','__mod__','__mul__','__ne__','__neg__','__new__','__or__','__pos__','__pow__','__radd__','__rand__','__rdivmod__','__reduce__','__reduce_ex__','__repr__','__rfloordiv__','__rlshift__','__rmod__','__rmul__','__ror__','__round__','__rpow__','__rrshift__','__rshift__','__rsub__','__rtruediv__','__rxor__','__setattr__','__sizeof__','__str__','__sub__','__subclasshook__','__truediv__','__trunc__','__xor__','bit_length','conjugate','denominator','from_bytes','imag','numerator','real','to_bytes']

这时候就可以看到关于int的所有的,系统自带的,函数和方法

2.6 实践

任意输入两个数字(用到input

输出两个数字的和、差、乘积(用到print运算

输出格式要求如下(用到了转义字符换行\n

输入的数字是:1,2
他们的和是3
他们的差是-1
他们的乘积是2

请在作业的最后一行输出:

昵称:第2节课作业

三、字符串

本章内容运行环境:Jupyter Notebook

本单元视频链接:https://v.youku.com/v_show/id_XNDYyMjY0ODgyOA==.html

我们在之前的数据类型里面讲过,字符串就是一系列的字符,用引号引起来,可以是英文,也可以是数。引号可以是单引号'字符串',双引号"字符串",三引号'''字符串'''

关于字符串,我们之前提到了几个常用的函数

str():将数字转变为字符串

ord():获取字符的整数表示

chr():把编码转换为对应的字符

3.1 什么是方法

方法就是执行一些指定的操作,比如,将字符串中的所有英文字母变成大写

一般表示成

操作对象.方法名称()

3.2 大小写转换

.upper()将字符串中的所有英文字母变成大写

.lower()将字符串中的所有英文字母变成小写

.swapcase()将大小写字母转换

.title()将所有单词首字母大写

text = "HELLO world"
text.upper()  # 输出: 'HELLO WORLD'
text.lower()  # 输出: 'hello world'
text.swapcase()  # 输出: 'hello WORLD'
text.title()  # 输出: 'Hello World'

3.3 删空格或指定字符

.strip()删除字符串开头和结尾,两端的空格

.rstrip() 删除右边的空格

.lstrip() 删除左边的空格

text = "   Hello world!        "
print(text.strip())  # 输出:'Hello world!'
print(text.rstrip())  # 输出:'   Hello world!'
print(text.lstrip())  # 输出:'Hello world!    '    

.strip("***") 删除指定字符

text = "!!!!!!   Hello world   !!!!!!!"
print(text.strip("!"))  # 输出:'   Hello world'
print(text.rstrip("!"))  # 输出:'!!!!!!   Hello world   '
print(text.lstrip("!"))  # 输出:'   Hello world   !!!!!!!'

3.4 字符变成变量

.format() 可以将字符串中的部分字符变成变量

可以直接根据位置对应

singer = "陈奕迅"
song = "《浮夸》"
print("我最喜欢的歌是{}的{}".format(singer,song))  
# 输出:我最喜欢的歌是陈奕迅的《浮夸》

也可以关键词对应

print("我最喜欢的球星是{country}的{star}".format(star = "C罗",country = "葡萄牙")) 
# 输出:我最喜欢的球星是葡萄牙的C罗

3.5 切割字符串

.split() 切割字符串

text = "I love you."
print(text.split())  # 什么都不填,默认是空格
# 输出:['I', 'love', 'you.']
email = "zhaojingyi0126@163.com"
print(email.split("@")) # 根据@切割
# 输出:['zhaojingyi0126', '163.com']
text = "I love you."
print(text.split()[0])  # 输出:I
print(text.split()[1])  # 输出:love
print(text.split()[2])  # 输出:you.

3.6 替换字符串

.replace()替换字符串中的某一部分

text = "我爱吃苹果"
new_text = text.replace("苹果","哈密瓜")
print(new_text)
# 输出: '我爱吃哈密瓜'

3.7 查找字符

b.find(a)返回字符串 a 在字符串 b中第一次出现所在的索引位置

text = "Hello World"
find_l = text.find("l")
print(find_l) 
# 输出:2
# 这个是指出现的位置,从0开始数

3.8 倒序

str[::-1]列表倒序

text = "Hello World"
text[::-1]
# 输出: 'dlroW olleH'

3.9 字符串所有方法

dir(str)
 'capitalize','casefold','center','count','encode','endswith','expandtabs','find','format','format_map','index','isalnum','isalpha','isascii','isdecimal','isdigit','isidentifier','islower','isnumeric','isprintable','isspace','istitle','isupper','join','ljust','lower','lstrip','maketrans','partition','replace','rfind','rindex','rjust','rpartition','rsplit','rstrip','split','splitlines','startswith','strip','swapcase','title','translate','upper','zfill'

3.10 实践:清洗豆瓣数据

我在豆瓣电影 Top 250上面,右击查看源代码,可以看到关于**《肖申克的救赎》**的详情

text = """
<div class="info"><div class="hd"><a href="https://movie.douban.com/subject/1292052/" class=""><span class="title">肖申克的救赎</span><span class="title">&nbsp;/&nbsp;The Shawshank Redemption</span><span class="other">&nbsp;/&nbsp;月黑高飞(港)  /  刺激1995(台)</span></a><span class="playable">[可播放]</span></div><div class="bd"><p class="">导演: 弗兰克·德拉邦特 Frank Darabont&nbsp;&nbsp;&nbsp;主演: 蒂姆·罗宾斯 Tim Robbins /...<br>1994&nbsp;/&nbsp;美国&nbsp;/&nbsp;犯罪 剧情</p><div class="star"><span class="rating5-t"></span><span class="rating_num" property="v:average">9.7</span><span property="v:best" content="10.0"></span><span>1966737人评价</span></div><p class="quote"><span class="inq">希望让人自由。</span></p>
"""

用今天学习的字符串的方法,把数据清洗出来,汇总成一句话:

《肖申克的救赎》,豆瓣评分9.7,1966737人评价。推荐理由:希望让人自由。

思路:

1、先想一下,输出要怎么构成?

title = "肖申克的救赎"
rate = "9.7"
number = "1966737人评价"
quote = "希望让人自由。"
print("《{}》,豆瓣评分{},{}。推荐理由:{}".format(title, rate, number, quote))

2、怎么获取到这些数据?可以有几种方法?

一层一层切割开来,选择合适的关键词切

3、完整代码

text = """--------"""  # text的内容在上面
title = text.split('</span>')[0].split('>')[-1]
rate = text.split('v:average\">')[1].split('</span>')[0]
number = text.split('star')[1].split('<span>')[1].split('</span>')[0]
quote = text.split('inq')[1].split('>')[1].split('<')[0]
print("《{}》,豆瓣评分{},{}。推荐理由:{}".format(title, rate, number, quote))

请在作业的最后一行输出:

昵称:第3节课作业

四、列表

本章内容运行环境:Jupyter Notebook

本单元视频链接:https://v.youku.com/v_show/id_XNDYyNDA0NTI4MA==.html

4.1 列表定义

列表是指 Python 中包含一组有序元素的对象

  • 列表以方括号[开头,以]结尾
  • 列表中的每个元素用 ,隔开
num = [1, 3, 2, 4]

列表元素类型

列表中除了可以存放字符串以外,也可以放数值类数据,还可以包含列表,以下几种都可以

num = [1, 3, 2, 4]
name = ["Tony", "Peter", "Kevin", "David"]
aList = [123, 'abc', 4.56, ['inner', 'list'], 7+9j]

空列表

列表里可以什么元素都没有

empty_list = []   # empty_list 为空列表

range生成列表

range()需要输入一个数值,比如 n,然后返回一组数字

my_range = range(2,20,2)  # 从2开始,到20结束(不包括20),每间隔2个取数字
print(list(my_range))
# 输出:[2, 4, 6, 8, 10, 12, 14, 16, 18]

4.2 访问列表

选择列表元素

  • 从左至右数:起始位置为 0,用[]包裹目标元素的索引位置
  • 从右至左数:起始位置为-1,需要在索引位置的数字前加上负号
letter = ["a", "b", "c", "d", "e", "f", "g", "h"]
print(letter[0])      #  输出:"a"
print(letter[-1])     #  输出:"h"
print(letter[-1].title())     #  输出:"H",把首字母大写

截取列表

letter = ["a", "b", "c", "d", "e", "f", "g", "h"]
print(letter[2:6])
# 输出: ['c', 'd', 'e', 'f']
  • 如果想从列表中第一个元素开始截取,:前的数字可以省略list[:5]
  • 如果想截取到列表的最后一个元素,:后的数字可以省略list[1:]
  • 也可以用负数索引位置从右至左截取列表list[-4:-1]
number = [1,2,3,4,5,6,7,8,9,10]
print(number[:3])
# 输出:[1, 2, 3]
print(number[3:])
# 输出:[4, 5, 6, 7, 8, 9, 10]
print(number[-3:])
# 输出:[8, 9, 10]

查找元素位置

.index(),查找元素出现的位置(第一次出现的位置)

name = ['Yangyang','Lindy','Alice','Leimei','Jack','Yangyang']
name.index('Yangyang')
# 输出:0

4.3 组队组合

列表连接

Python 中,可以用 +来连接多个列表

列表只能和列表相连接,如果将列表和字符串或数值连接,计算机会报错

zoo = ["大象", "熊猫", "猩猩", "海獭"]
new_animals = ["长颈鹿", "虎", "羊驼"]
zoo = zoo + new_animals
print(zoo)
# 输出:['大象', '熊猫', '猩猩', '海獭', '长颈鹿', '虎', '羊驼']

扩展列表

.extend:在列表末尾一次性追加另一个序列中的多个值

zoo = ["大象", "熊猫", "猩猩", "海獭"]
new_animals = ["长颈鹿", "虎", "羊驼"]
zoo.extend(new_animals)  
print(zoo)
# 输出:['大象', '熊猫', '猩猩', '海獭', '长颈鹿', '虎', '羊驼']

列表组队

zip() 将两个列表中的元素一一组成对,形成一个新的对象

name = ["吴承恩", "罗贯中", "施耐庵", "曹雪芹、高鹗"]
book = ["西游记", "三国演义", "水浒传", "红楼梦"]
name_and_book = zip(name, book)
print(name_and_book)
# 输出:<zip object at 0x1086a0288>  该对象在内存中的位置
print(list(name_and_book))
# 输出:[('吴承恩', '西游记'), ('罗贯中', '三国演义'), ('施耐庵', '水浒传'), ('曹雪芹、高鹗', '红楼梦')]

4.4 修改、添加、删除元素

添加元素

.append()为列表添加元素

当列表中有其他元素时,append() 将新元素添加至所有元素之后

my_list = []
my_list.append(1)
my_list.append(2.0)
my_list.append(3)
my_list.append('jjj')
my_list.append(1)
print(my_list)
# 输出:[1, 2.0, 3, 'jjj', 1]

.append().extend的区别

list1 = [1,2,3,4]
list2 = [5,6,7]
list1.append(list2)
print(list1)
# 输出:[1, 2, 3, 4, [5, 6, 7]]list1 = [1,2,3,4]
list2 = [5,6,7]
list1.extend(list2)
print(list1)
# 输出:[1, 2, 3, 4, 5, 6, 7]

插入元素

.insert(位置,插入元素)为列表插入元素

name = ['lindy','Alice','Leimei','Jack']
name.insert(0,'Yangyang')
print(name)
# 输出:['Yangyang', 'lindy', 'Alice', 'Leimei', 'Jack']

修改列表值

name = ['lindy','Alice','Leimei','Jack']
name[2] = 'Yangyang'
print(name)
#输出:['lindy', 'Alice', 'Yangyang', 'Jack']

删除列表值

如果你确切的知道要删除元素的索引:用del 语句

name = ['Yangyang','lindy','Alice','Leimei','Jack']
del name[1]
print(name)
#输出:['Yangyang', 'Alice', 'Leimei', 'Jack']

如果你不知道要删除元素的索引:用remove()方法

name = ['Yangyang','lindy','Alice','Leimei','Jack']
name.remove('Alice')
print(name)
# 输出:['Yangyang', 'lindy', 'Leimei', 'Jack']

关于删除元素,还有一种方法,这种方法是,你虽然删除了这个元素,但是这个元素的内容,你还是要用的。这时候,我们用.pop()方法

name = ['Yangyang','lindy','Alice','Leimei','Jack']
name_pop = name.pop()  # 默认弹出最后一个
print(name)
print(name_pop)
# 输出:
# ['Yangyang', 'lindy', 'Alice', 'Leimei']
# Jack

弹出列表中任何位置的元素

name = ['Yangyang','lindy','Alice','Leimei','Jack']
name_pop = name.pop(2)
print(name)
print(name_pop)
# 输出:
# ['Yangyang', 'lindy', 'Leimei', 'Jack']
# Alice

4.5 列表操作

串联若干字符

.join()串联若干字符,这是一个字符串的方法,但是可以处理列表数据,将列表的数据连接起来

text = ["I","Love","You"]
print(" ".join(text))  # 输出: I Love You
print("、".join(text))  # 输出: I、Love、You

获取列表长度

len()返回列表、字符串长度

name = ['Yangyang','lindy','Alice','Leimei','Jack']
print(len(name)) 
# 输出:5sentence = "临渊羡鱼不如退而结网"
print(len(sentence))  
# 输出:10

列表排序

.sort():永久排序,按字母顺序或者数字

name = ['Yangyang','Lindy','Alice','Leimei','Jack']
name.sort()  # 正着排
print(name)
# 输出:
# ['Alice', 'Jack', 'Leimei', 'Lindy', 'Yangyang']number = [3,77,44,278,35,1,5567,58]
number.sort()
print(number)
# 输出:
# [1, 3, 35, 44, 58, 77, 278, 5567]name = ['Yangyang','Lindy','Alice','Leimei','Jack']
name.sort(reverse=True)  # 倒着排
print(name)
# 输出:
# ['Yangyang', 'Lindy', 'Leimei', 'Jack', 'Alice']# 数字和字母在一起
number = ['3','23456645','6789','Yangyang','Lindy','Alice','Leimei','Jack']
number.sort()
print(number)
# 输出:
# ['23456645', '3', '6789', 'Alice', 'Jack', 'Leimei', 'Lindy', 'Yangyang']

sorted():临时排序

name = ['Yangyang','Lindy','Alice','Leimei','Jack']
print(sorted(name))  # 正着排
print(name)
# 输出:
# ['Alice', 'Jack', 'Leimei', 'Lindy', 'Yangyang']
# ['Yangyang', 'Lindy', 'Alice', 'Leimei', 'Jack']

计算元素出现次数

count(n)返回元素 n在列表中出现的次数

zoo = ["熊猫", "长颈鹿", "金丝猴", "熊猫", "长颈鹿", "大象", "熊猫", "海獭", "羊驼", "熊猫", "海獭", "金丝猴", "熊猫", "大象", "长颈鹿", "羊驼"]
print(zoo.count("熊猫"))
# 输出 5,元素"熊猫"在列表 zoo 中出现5次

拷贝和清空列表

# clear
name = ['Yangyang','Lindy','Alice','Leimei','Jack','Yangyang']
name.clear()
print(name)
# 输出:[]
# copy
name = ['Yangyang','Lindy','Alice','Leimei','Jack','Yangyang']
name1 = name.copy()
print(name1)
# 输出:['Yangyang', 'Lindy', 'Alice', 'Leimei', 'Jack', 'Yangyang']

copy和直接赋值的不同:

如果直接赋值,改变赋值的对象number1,原来的number也会被修改

number = [2,3,4,5,6,7,8]
number1 = number
number1[1] = 1
print(number)
print(number1)
# 输出:
# [2, 1, 4, 5, 6, 7, 8]
# [2, 1, 4, 5, 6, 7, 8]

如果是copy,则相互不影响

number = [2,3,4,5,6,7,8]
number1 = number.copy()
number1[1] = 1
print(number)
print(number1)
# 输出:
# [2, 3, 4, 5, 6, 7, 8]
# [2, 1, 4, 5, 6, 7, 8]

4.6 列表所有方法

dir(list)
 'append',  # 添加列表元素'clear',  # 清空列表'copy',  # 拷贝列表'count',  # 返回元素在列表中出现的次数'extend',  # 拓展列表'index',  #查找元素出现的位置'insert',  # 插入列表元素'pop',  # 删除列表元素,这个元素你还要用'remove',  # 删除列表元素,根据内容删'reverse',  # 反转列表元素'sort' # 永久性排序

zip() :将两个列表中的元素一一组成对,形成一个新的对象

range(a,b,c):a,b,c为数字。a为开始,b为结尾,c为间隔;a省略时默认为0,c省略时默认为1

len():返回列表、字符串长度

sorted():临时排序

del:删除列表元素-根据位置

4.7 列表计算

number = list(range(20))
print(number)
# 输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]print(min(number))
# 输出:0print(max(number))
# 输出:19print(sum(number))
# 输出:190

4.8 实践:操作列表

建立一个空列表,把你最喜欢的五个东西依次添加进去,然后把所有的方法,都给它倒腾一遍,确保自己能熟练运用。

请在作业的最后一行输出:

昵称:第4节课作业

五、循环

本章内容运行环境:Jupyter Notebook

本单元视频链接:https://v.youku.com/v_show/id_XNDYyNTQ1MTcyMA==.html

5.1 for 循环

for item in list_of_items:pass
  • in后面,是一个列表
  • for -- in ---: 不要忘记这个:
  • 下一行要缩进,缩进几个字符都可以,但是要保证上下文统一

这里需要注意,在Python中,缩进非常非常非常重要。

学过C或者MATLAB等其他编程语言的同学应该了解,一般是用{}来把函数包裹起来,系统通过判定函数开始,判定函数结束。

但是Python是通过缩进来判断的,所以你的缩进必须一致。比如都用2个空格,或者都用4个空格。

nameList = ['Yangyang','Lindy','Alice','Leimei','Jack']
for eachName in nameList:print(eachName)# 输出:
# Yangyang
# Lindy
# Alice
# Leimei
# Jack
nameList = ['Yangyang','Lindy','Alice','Leimei','Jack']
for eachName in nameList:print(eachName, ', Hello')# 输出:
# Yangyang , Hello
# Lindy , Hello
# Alice , Hello
# Leimei , Hello
# Jack , Hello

看一下缩进的区别

nameList = ['Yangyang','Lindy','Alice','Leimei','Jack']
for eachName in nameList:print(eachName)print('Hello!')# 输出:
# Yangyang
# Hello!
# Lindy
# Hello!
# Alice
# Hello!
# Leimei
# Hello!
# Jack
# Hello!
nameList = ['Yangyang','Lindy','Alice','Leimei','Jack']
for eachName in nameList:print(eachName)
print('Hello!')# 输出:
# Yangyang
# Lindy
# Alice
# Leimei
# Jack
# Hello!

range()

在上一章列表里,我们学习了可以用range()函数生成列表

for i in range(5):  # 等价于range(0,5,1)print(i)# 输出:
0
1
2
3
4

练习:生成一个列表[0,1,4,9,16,25,36,49…]

squares = []
for i in range(10):squares.append(i**2)
print(squares)
# 输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

练习:生成九九乘法表

for i in range(1,10):for j in range(1,i+1):print("{}*{}={}".format(i,j,i*j),end=" ")print("\n")

image-20200410102715297

5.2 列表推导式

(大概了解就可以,现在没办法掌握,也没关系)

拿刚刚求平方的代码为例,我们原来是这么写的

squares = []
for i in range(10):squares.append(i**2)
print(squares)#输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

有了列表推导式,我们可以这么写

squares = [i**2 for i in range(10)]
print(squares)#输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

两者的输出是一样的,只是列表推导式更简洁和高效

5.3 while 循环

while expression:pass

while循环的内容会一直循环执行, 直到 expression 值为假(条件失效), 循环结束

count = 0
while (count < 9):print( 'the index is:', count)count += 1#输出:
the index is: 0
the index is: 1
the index is: 2
the index is: 3
the index is: 4
the index is: 5
the index is: 6
the index is: 7
the index is: 8

while循环常常用于你不确定,这个循环,要循环多少次

用《Python编程:从入门到实践,7.2.2节》中的一个例子:

不管用户输入什么,系统都会重复一遍,直到用户输入“quit”,程序结束

print("Tell me something, and I will repeat it back to you:")
message = ""
while message != "quit":message = input("Your input:")print("Output:",message)
# 输出:
# Tell me something, and I will repeat it back to you:
# Your input:hi,I'm yangyang
# Output: hi,I'm yangyang
# Your input:quit
# Output: quit

避免无限循环

x = 1
while x <= 5:print(x)x += 1

如果你忘记了x += 1,这个程序就会陷入无限循环

可以通过Ctrl+C退出,也可以直接把软件关了。。

5.4 break 和 continue

break:停止循环(直接退出了)
举个例子:在一大堆中,找到,就结束(break)

shi_and_tu = ["士","士","士","士","士","士","士","土","士","士","士","士"]
for char in shi_and_tu:print(char)if char == "土":print("我找到土啦!")break

continue:跳过循环(本次退出,下次还来)
举个例子:未满18岁的输出,超过18岁的,就跳过(continue)

ages = [16, 15, 23, 33, 67, 8, 10, 32]
for age in ages:if age >= 18:continueprint(age)print("未达到18岁,不可以买酒")

5.5 实践:输出豆瓣首页数据

【小练习】

给定整数序列, 求这个序列中子序列和的最大值

number = [-2, 11, 8, -4, -1, 16, 5, 0]
sum_n = []
for i in range(len(number)):sum_n.append(number[i])for j in range(i):sum_n.append(sum(number[j:i+1]))
print(max(sum_n))

【清洗豆瓣数据】

结合**【3.11节,字符串】**的实践,输出豆瓣电影 Top 250,前25部电影详情

思路:

  1. 先去网站上,把所有内容贴下来,保存到txt文件中
  2. 读取txt文件
  3. 切割字符串
  4. 加入循环,输出前25项结果

注意:

  1. 注意txt文件的路径,要么和代码保存在一个路径下面,要么把路径写正确
  2. for 循环别忘记冒号:
  3. 注意缩进,保持统一

参考代码:

text = open('D:/Python/html_text.txt', 'rb')
text = text.read().decode('utf-8')
movies = text.split('class="grid_view\">')[1].split('<li>')  #movies此时是一个列表for i in range(1,len(movies)):movie = movies[i]    # 把movies这个列表的值,依次取出title = movie.split('</span>')[0].split('>')[-1]rate = movie.split('v:average\">')[1].split('</span>')[0]number = movie.split('star')[1].split('<span>')[1].split('</span>')[0]quote = movie.split('inq')[1].split('>')[1].split('<')[0]year = movie.split(' <p class="">')[1].split('<br>')[1].split('&nbsp')[0].strip()print("{},《{}》,豆瓣评分{},{}。推荐理由:{}".format(year,title, rate, number, quote))

请在作业的最后一行输出:

昵称:第5节课作业

六、元组

6.1 定义元组

元组和列表相似,列表是[—],元组是(—)

number = (200,100,50)
type(number)
# 输出:tuple

6.2 访问元组

number = (200,100,50)
print(number[0])
print(number[1])
print(number[2])
# 输出:
# 200
# 100
# 50

6.3 修改元组变量

元组的元素是不能修改的

比如,我试图重新赋值,这时候程序会报错

number = (200,100,50)
number[0] = 300
print(number)
# 输出:'tuple' object does not support item assignment

但是这个操作,在列表里,是没问题的

number = [200,100,50]
number[0] = 300
print(number)
# 输出:[300, 100, 50]

虽然元组的元素不能修改,但是我可以把整个元组都改掉

number = (200,100,50)
number = (100,50)
print(number)
# 输出:(100, 50)

6.4 遍历元组中所有的值

numbers = (200,100,50)
for number in numbers:print(number)
# 输出:
# 200
# 100
# 50

6.5 元组和列表的区别

相比于列表,元组是更简单的数据结构

元组的元素是不能修改的

如果需要储存的一组值,在整个程序里都不变,可以用元组

七、字典

本章内容运行环境:Jupyter Notebook

本单元视频链接:https://v.youku.com/v_show/id_XNDYyOTMzMjQ0MA==.html

7.1 字典定义

字典是一组无序键值对的集合

假设我们在一个英语网站学习,每天会背单词、做听力、做阅读。现在有一组数据:你背了单词(bdc) 30个;做了听力(listen)5句;做了阅读(read)2篇。我们可以创建一个study的字典将它们存放:

study = {"bdc":30, "listen":5, "read":2}
  1. 字典用 {} 包裹
  2. 其中"bdc" : 30为一对键值对,其中"bdc"为键(key),30 为值(value)
  3. 每对键值对由英文逗号,隔开
  4. 最好在每一个逗号与下一个键值对之间用空格相隔,方读代码。

7.2 创建字典

在 Python 字典中:

键可以是字符串,也可以是数值

值可以是任何数据类型:字符串、数值、列表,甚至还可以是字典

shanbey = {"study": {"bdc": {"num_today": 25, "used_time": 5.0}, "listen": {"num_today": 0,"used_time": 0}}}
print(shanbey)

这边展示了一个字典,value还是字典的例子(一般网页数据都长这样)。我们拆解一下这个字典

"study": {"bdc": {"num_today": 25,"used_time": 5.0}, "listen": {"num_today": 0,"used_time": 0}}

空字典

study = {}
type(study)
# 输出:dict

合并列表

zip()创建字典:用zip() 将两个列表合并为一个字典

name = ["bdc", "listen", "read", "sentence"]
number = [30, 5, 2, 10]
zip_study = zip(name, number)
study = {key:value for key,value in zip_study}
print(study)
# 输出:{'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}

先用zip()将列表 namenumber合并在变量zip_study 中。(在【4.3 列表】里讲过zip的用法)

接着,遍历 zip_study,把name作为key,number作为值

key:value for key,value in zip_study

这用到了我们之前提到的列表推导式(5.2节),我们可以把这行代码分开,理解为

for key,value in zip_study:key:value  #这是字典组成的样子

7.3 为字典添加键

添加新键:用以下语句为字典添加新键

study = {'bdc': 30, 'listen': 5, 'read': 2}# 字典[新键] = 新值
study['sentence'] = 10print(study)
# 输出:{'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}

.update():用 .update() 一次性向字典加入多对键值对

study = {'bdc': 30}
study.update({ 'listen': 5, 'read': 2, 'sentence': 10}) 
print(study)
# 输出:{'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}

更新字典值:如果有一个键对应的值需要变动,用添加键时的方法,重新为该键赋新值

study = {'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}
study['sentence'] = 200
print(study)
# 输出:{'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 200}

7.4 字典取值

可以通过字典的键来获取其对应的值:字典[键]

study = {'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}
print(study['sentence'])
# 输出:10

字典无效键:当取字典键值时,如果键并不存在于字典中,该键无效,计算机会返回错误。

study = {'listen': 5, 'read': 2, 'sentence': 10}
print(study['bdc'])
# KeyError: 'bdc' ,系统会报错

.get():根据键来取字典中相应的值

如果键不存在于字典中,.get() 默认返回 None

当键不存在于字典中时,也可以手动设置返回值

study = {'listen': 5, 'read': 2, 'sentence': 10}
print(study.get('listen'))  # 输出:5
print(study.get('bdc'))  # 输出:None
print(study.get('bdc','没有背单词'))  # 输出:没有背单词

7.5 try 和 except

tryexcept条件判断,帮助检查代码中可能存在的错误

计算机会先执行 try条件下的语句,一旦出现例外情况,比如错误 NameError 或者 ValueError,计算机会终止执行 try条件下的语句,并且当该例外情况满足 except中指定的条件,计算机会执行except 中的语句。

try/except取值:如果字典中没有相应的键,还可以用try/except的方法来捕获 KeyError 的出现。

study = {'listen': 5, 'read': 2, 'sentence': 10}
try:print(study['bdc'])
except:print("没有背单词")
# 输出:没有背单词

7.6 删除字典键

.pop():删除字典中的键及其值

如果需要删除的键不在字典之中,在 .pop() 方法中加上对应的参数,.pop() 返回该参数

study = {'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}
print(study.pop('sentence')) # 输出:10
print(study) 
# 输出:{'bdc': 30, 'listen': 5, 'read': 2}

7.7 获取所有的键和值

获取字典所有的键

我们可以用两种方法获得字典中所有的键。

list(目标字典)

study = {'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}
print(list(study))
# ['bdc', 'listen', 'read', 'sentence']

.keys()

study = {'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}
for name in study.keys():print(name)
# 输出:
bdc
listen
read
sentence

列表推导式

study = {'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}
name = [key for key in study.keys()]
print(name)
# 输出:['bdc', 'listen', 'read', 'sentence']

获得字典所有的值

.values()获得字典中所有的值

study = {'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}
for number in study.values():print(number)
# 输出:
30
5
2
10

列表推导式

study = {'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}
number = [value for value in study.values()]
print(number)
# 输出:[30, 5, 2, 10]

获得字典中所有的键值对

.items()获取字典中的所有键值对

study = {'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}
for key,value in study.items():print("学习"+key+"的数量为"+str(value))
# 输出:
# 学习bdc的数量为30
# 学习listen的数量为5
# 学习read的数量为2
# 学习sentence的数量为10

7.8 字典所有方法

dir(dict)
 'clear','copy','fromkeys','get',  # 根据键来取字典中相应的值'items',  # 获取字典中的所有键值对'keys',  # 获取字典中的所有键'pop',  # 删除'popitem','setdefault','update',  # 更新多对键值对'values'  # 获取字典中的所有值

7.9 实践:清洗扇贝打卡数据

清洗扇贝打卡数据

扇贝打卡数据:https://www.shanbay.com/api/v1/checkin/user/------/ ,最后一部分,是你的扇贝ID

import requests  # 导入requests模块
ID = "49793185"  # 扇贝ID(这里提供了一个ID,如果你也用扇贝的话,可以用你自己的ID)
web = "https://www.shanbay.com/api/v1/checkin/user/"+str(ID)+"/"  # 网址:打卡记录
res = requests.get(web)  # requests发起请求,静态网页用get
LearningData = res.json()  # LearningData就是字典格式NickName = LearningData['data'][0]['user']['nickname']  # 获取昵称for LearningDataDaily in LearningData['data']:checkin_date =  LearningDataDaily['checkin_date']try:bdc_num_today = LearningDataDaily['stats']['bdc']['num_today']bdc_used_time = LearningDataDaily['stats']['bdc']['used_time']except:  bdc_num_today = 0bdc_used_time = 0.0        print("{},{}背单词{}个,用时{}分钟".format(checkin_date,NickName,bdc_num_today,bdc_used_time))# 输出:(这只是一个示例,每个ID对应的内容都不同)
2020-04-09,洋阳背单词25个,用时5.0分钟
2020-04-08,洋阳背单词25个,用时28.0分钟
2020-04-07,洋阳背单词45个,用时6.0分钟
2020-04-06,洋阳背单词25个,用时19.0分钟
2020-04-05,洋阳背单词25个,用时6.0分钟
2020-04-04,洋阳背单词25个,用时6.0分钟
2020-04-03,洋阳背单词25个,用时6.0分钟
2020-04-02,洋阳背单词25个,用时17.0分钟
2020-04-01,洋阳背单词0个,用时0.0分钟
2020-03-31,洋阳背单词25个,用时15.0分钟
2020-03-30,洋阳背单词25个,用时7.0分钟
2020-03-29,洋阳背单词25个,用时10.0分钟
2020-03-28,洋阳背单词0个,用时0.0分钟
2020-03-27,洋阳背单词25个,用时8.0分钟
2020-03-26,洋阳背单词25个,用时15.0分钟
2020-03-25,洋阳背单词25个,用时12.0分钟
2020-03-24,洋阳背单词25个,用时13.0分钟
2020-03-23,洋阳背单词25个,用时67.0分钟
2020-03-22,洋阳背单词0个,用时0.0分钟
2020-03-21,洋阳背单词0个,用时0.0分钟

请在作业的最后一行输出:

昵称:第6节课作业

八、数据类型转换

整形 int

number = 100

字符串 str

name = 'Yangyang'

列表 list

name_list = ['Yangyang', 'Lindy', 'Alice', 'Leimei', 'Jack']

元组 tuple

name_tuple = ('Yangyang', 'Lindy', 'Alice', 'Leimei', 'Jack')

字典 dict

study = {"bdc":30, "listen":5, "read":2}

image-20200410141441363

【字符串】转【整形】

int('25')
# 输出:
# 25

【整形】转【字符串】

str(3820594)
# 输出:
# '3820594'

【字符串】转【列表】
(数字不能直接转列表)

list('3820594')  
# 输出:
# ['3', '8', '2', '0', '5', '9', '4']

【列表】转【元组】

tuple(list('3820594'))
# 输出:
# ('3', '8', '2', '0', '5', '9', '4')

【元组】转【列表】

list(tuple('3820594'))
# 输出:
# ['3', '8', '2', '0', '5', '9', '4']

【元组】转【字符串】

number = ('3', '8', '2', '0', '5', '9', '4')
"".join(number)
# 输出:
# '3820594'

【列表】转【字符串】

number = ['3', '8', '2', '0', '5', '9', '4']
"".join(number)
# 输出:
# '3820594'

【字典】转【列表】,只有key,没有value

study = {'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}
print(list(study))
# 输出:
# ['bdc', 'listen', 'read', 'sentence']

【两个列表】转【字典】

name = ["bdc", "listen", "read", "sentence"]
number = [30, 5, 2, 10]
study = {key:value for key,value in zip(name, number)}
print(study)
# 输出:
# {'bdc': 30, 'listen': 5, 'read': 2, 'sentence': 10}

九、条件

本章内容运行环境:Jupyter Notebook

本单元视频链接:https://v.youku.com/v_show/id_XNDYzMDc0NzYwMA==.html

9.1 布尔值

布尔值,Python中有专门的数据类型:bool

布尔值有两个:TrueFalse(首字母须大写),也被称作布尔变量

9.2 运算符

==!=,分别表示“相等”和“不等”

name = "yangyang"  # 这是赋值
name == "yangyang"  # 这是判断:是否相等
# 如果相等,返回True
# 如果不相等,返回False
18 == 19  # 返回False
18 != 19  # 返回True

> 、< 、 >= 、<=分别对应:大于、小于、大于等于和小于等于四种比较关系

9.3 逻辑符号

  • and:将两个条件判断联结起来,只有当前后两个条件都为 True时,整个 and 联结条件才判断为 True,否则为 False
  • or:前后至少有一个 True,则 or 联结的整个判断条件为 True。如果 or 前后都是 False,则 or 联结的整个判断条件也为 False
  • not:当 not 放在 True 或者 False 之前,得到相反的逻辑值结果
a>18 and a<20  # and
a<18 or a>20  # or
not(a<18)  # not

9.4 if 语句

条件语句遵循以下基本逻辑:如果……,那么……

  • if等同于 “如果”, : 等同于 “那么”。另外,在if 语句下方的代码,需要缩进
  • else一般在条件判断的结尾,判断那些没有满足 if 条件的状况
  • elif是 else if 的缩写,当 elif之前的条件不被满足时,计算机会验证 elif中的判断条件是否为 True
a = 3
if a > 2:print("a大于2")
elif a > 1:print("a大于1")
# 输出:
# a大于2

9.5 实践

【小练习】

  1. 用代码打印出一个菱形

  2. 鸡兔同笼,头35,脚94。问鸡和兔各有几只?

  3. 打印出所有的水仙花数,水仙花数的要求是一个三位数(比如153),满足这个规律:153=1^3+5^3+3^3

  4. 有一个单词和一个字符串,判断字符串是否可以扩展成这个单词

  5. 参考答案:Python:小练习

【实践】

在昨天清洗扇贝打卡的基础上,进阶一下

  1. 获取10个人的打卡数据
  2. 计算他们最近7天的打卡情况(单词部分)
  3. 如果他们7天内,总学习时间超过1小时,判定为“学习认真”
  4. 如果没有超过1小时,判定为“需要继续努力呀”
IDs = ['49793185','60782137','210260232','40793353','41273824','64839964','66470683','37166209',
'58575787','2492821']  # 扇贝ID# 输出:
# 最近一周,Lily Cao背单词125个,用时55.0分钟,需要继续努力呀
# 最近一周,o蟲o背单词300个,用时87.0分钟,学习认真
# 最近一周,莲背单词420个,用时81.0分钟,学习认真
# 最近一周,罱背单词140个,用时95.0分钟,学习认真
# 最近一周,Abbey?背单词700个,用时375.0分钟,学习认真
# 最近一周,Melody背单词700个,用时64.0分钟,学习认真
# 最近一周,一棵甜橙树背单词200个,用时53.0分钟,需要继续努力呀
# 最近一周,lj背单词239个,用时57.0分钟,需要继续努力呀
# 最近一周,i think i背单词300个,用时57.0分钟,需要继续努力呀
# 最近一周,珊瑚背单词350个,用时106.0分钟,学习认真

参考代码

import requests  # 导入requests模块
IDs = ['49793185','60782137','210260232','40793353','41273824','64839964','66470683','37166209',
'58575787','2492821']  # 扇贝IDfor ID in IDs:web = "https://www.shanbay.com/api/v1/checkin/user/"+str(ID)+"/"  # 网址:打卡记录res = requests.get(web)  # requests发起请求,静态网页用getLearningData = res.json()  # LearningData就是字典格式NickName = LearningData['data'][0]['user']['nickname']  # 获取昵称bdc_num = 0bdc_used_time = 0for day in range(7):LearningDataDaily  = LearningData['data'][day]checkin_date =  LearningDataDaily['checkin_date']try:bdc_num += LearningDataDaily['stats']['bdc']['num_today']bdc_used_time += LearningDataDaily['stats']['bdc']['used_time']except:  bdc_num += 0bdc_used_time += 0.0        if bdc_num > 60:print("最近一周,{}背单词{}个,用时{}分钟,学习认真".format(NickName,bdc_num,bdc_used_time))else:print("最近一周,{}背单词{}个,用时{}分钟,需要继续努力呀".format(NickName,bdc_num,bdc_used_time))

请在作业的最后一行输出:

昵称:第7节课作业

十、函数

本章内容运行环境:Jupyter Notebook

本单元视频链接:https://v.youku.com/v_show/id_XNDYzMjIyMjU4OA==.html

10.1 定义函数

定义一个函数要使用def语句,参数不是必须的

# def 函数名(参数):
def my_abs(x):

函数体函数名下方,需要缩进。这里定义一个判断绝对值的函数my_abs

def my_abs(x):if x >= 0:return xelse:return -x

空函数

如果想定义一个什么事也不做的空函数,可以用pass语句:

def my_abs(x):pass

pass语句什么都不做,那有什么用?

pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。

10.2 调用函数

# 函数名(参数)
my_abs(2)

image-20200406185845120

注意: 刚刚的代码是在调试窗口写的,所以可以直接输出结果

当你在文档中写代码,并且你需要屏幕上输出结果,你需要加Print,或者你在调试窗口调用它

调用函数的时候,参数也不是必须的,比如你可以直接my_abs(),这时候,我们就需要函数设定一个默认参数。

10.3 参数

默认参数

  • 函数的参数可以有一个默认值
  • 默认参数以赋值语句的形式提供
  • 函数调用时如果没有提供这个参数, 它就取这个值做为默认值
    刚刚定义过的my_abs函数,我们重新修改一下
def my_abs(x=3):if x >= 0:return xelse:return -x

如果调用函数的时候,没有输入任何参数,那默认x就是3
如果输入了参数,那以输入的参数为准,忽略默认值

10.4 传递参数

位置参数

  • 一个函数可以有多个参数,各个参数用逗号隔开
  • 在定义函数时有N个参数,在调用时,也需要提供N个参数

举例,我们定义一个求最大值的参数

def my_max(number1, number2):if number1 > number2:print(number1 )else:print(number2)

在这个例子中,我们看到,输入的参数,默认第一个就是number1,第二个就是number2,这是位置参数

关键字参数

比如我函数里面,定义了10个参数,那每次必须都要按照位置写,挺容易搞错的。这时候,我们可以用关键字参数。

举个列子,输出我的名字和爱好

def my_hobby(name, hobby):print(name+"喜欢"+hobby)

可以看到,没有指定关键词的时候,默认就是按照位置来选择参数(看第二行的输出)
如果我们指定nameYangYang,那么就是按照指定的关键字来对应参数

my_hobby("YangYang","Python")
# 输出:YangYang喜欢Python
my_hobby("Python","YangYang")
# 输出:Python喜欢YangYang
my_hobby(hobby="Python",name="YangYang")
# 输出:YangYang喜欢Python

10.5 返回

def my_max(number1, number2):if number1 > number2:return number1else:return number2

在我们刚刚的代码中,已经看到,用return返回我们要的值

return后面可以直接加计算

def my_add(number1, number2):return number1+number2my_add(3,4)
# 输出:7

多值返回

我们可以一口气返回很多个值

def my_cal(number1, number2):my_add = number1+number2    # 加法my_minus = number1-number2  # 减法return my_add,my_minusmy_cal(5,3)
# 输出:(8, 2)

10.6 作用域

最后,我们讲一下全局作用域局部作用域

简单来说,定义在函数内部的,就是局部作用域

  • 全局变量,在函数的外面,在整个代码中都有作用
  • 局部变量,在函数的里面,只在局部作用域有作用
  • 在函数内部,你可以调用全局变量
  • 在函数外部,你无法使用局部变量
global_str = 'foo'
def foo():local_str = 'bar'return global_str + local_str

global_str是一个全局变量

local_str是一个局部变量

来个例子

a = 2
def my_cal():a = 3
print(a)
# 输出:2
  • 在函数外部,我定义了一个全局变量aa的值是2

  • 在函数内部,我定义了一个局部变量aa的值是3

我在函数外,输出aa的值还是2。所以,函数内的操作,和全局变量没关系。那我在函数内定义这个a,有什么用?

a = 2
def my_cal():a = 3print(a)
my_cal()   #调用函数
# 输出:3

在这个函数内部,值确实变成3了。当我调用这个函数的时候,内部的值发生了变化

最后,就记住:

局部变量,只能用在函数里面,在函数里面,是有作用的

但是到了函数外面,局部变量就没作用了,只看全局变量

怎么判断是不是在函数里面?

看缩进。缩进很重要。

缩进的位置相同,代表它们是一个等级的

10.7 传递任意数量的参数

*args

传入0个或任意个参数,*args 表示任意个无名参数,类型为 tuple

def function(a,*args):pass

举个例子

def number(*num):print(num)
number(1,2,3)
number(1,2,3,4,5,6)
# 输出:
# (1, 2, 3)
# (1, 2, 3, 4, 5, 6)

**kwargs

**kwargs表示关键字参数,类型为 dict

任意数量的参数可以和位置参数,或者关键词参数结合起来

比如统计班级学生的情况,有两个信息是必须要知道的,姓名和年龄,其他信息,可以由学生自己填写

def build_student(name,age,**other):student = {}student['name'] = namestudent['age'] = agefor key,value in other.items():student[key] = valuereturn studentprint(build_student('yangyang', 18, hobby='Python'))
print(build_student('york', 20, hobby='Study', like='Wife'))# 输出:
# {'name': 'yangyang', 'age': 18, 'hobby': 'Python'}
# {'name': 'york', 'age': 20, 'hobby': 'Study', 'like': 'Wife'}

10.8 内置函数

根据官网内容整理

https://docs.python.org/zh-cn/3.7/library/functions.html#any

Python 解释器内置了很多函数和类型,您可以在任何时候使用它们。以下按字母表顺序列出它们。

abs() delattr() hash() memoryview() set()
all() dict() help() min() setattr()
any() dir() hex() next() slice()
ascii() divmod() id() object() sorted()
bin() enumerate() input() oct() staticmethod()
bool() eval() int() open() str()
breakpoint() exec() isinstance() ord() sum()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() __import__()
complex() hasattr() max() round()

10.9 实践

【小练习】

定义一个除法函数,如果除数为0,输出“0不能作除数!”

回顾一下tryexcept判断,帮助检查代码中可能存在的错误

计算机会先执行 try条件下的语句,一旦出现例外情况,比如错误 NameError 或者 ValueError,计算机会终止执行 try条件下的语句,并且当该例外情况满足 except中指定的条件,计算机会执行except 中的语句。

def divide_num(num1,num2):try:result = num1 / num2print (result)except ZeroDivisionError:print ("0不能作除数!")

其他小练习,可点击:Python:小练习

【实践】

用函数,重写【第九章】的实践题

比如:我可以构建一个函数bdc,计算大家背单词的情况

def bdc(LearningData,days):------return bdc_num,bdc_used_time

完整代码

import requests  # 导入requests模块
IDs = ['49793185','60782137','210260232','40793353','41273824','64839964','66470683','37166209',
'58575787','2492821']  # 扇贝IDdef bdc(LearningData,days):bdc_num = 0bdc_used_time = 0for day in range(days):LearningDataDaily  = LearningData['data'][day]checkin_date =  LearningDataDaily['checkin_date']try:bdc_num += LearningDataDaily['stats']['bdc']['num_today']bdc_used_time += LearningDataDaily['stats']['bdc']['used_time']except:  bdc_num += 0bdc_used_time += 0.0  return bdc_num,bdc_used_timefor ID in IDs:web = "https://www.shanbay.com/api/v1/checkin/user/"+str(ID)+"/"  # 网址:打卡记录res = requests.get(web)  # requests发起请求,静态网页用getLearningData = res.json()  # LearningData就是字典格式NickName = LearningData['data'][0]['user']['nickname']  # 获取昵称days = 8bdc_num,bdc_used_time = bdc(LearningData,days)if bdc_num > 60:print("最近{}天,{}背单词{}个,用时{}分钟,学习认真".format(days, NickName, bdc_num, bdc_used_time))else:print("最近{}天,{}背单词{}个,用时{}分钟,需要继续努力呀".format(days, NickName, bdc_num, bdc_used_time))

还有,你可以构建一个函数,把单词、阅读、听力都输出

import requests  # 导入requests模块
ID = "29834875"  # 扇贝ID
web = "https://www.shanbay.com/api/v1/checkin/user/"+str(ID)+"/"  # 网址:打卡记录
res = requests.get(web)  # requests发起请求,静态网页用get
LearningData = res.json()  # LearningData就是字典格式NickName = LearningData['data'][0]['user']['nickname']  # 获取昵称def GetInfo(ClassInfo):try:num_today = LearningDataDaily['stats'][ClassInfo]['num_today']used_time = LearningDataDaily['stats'][ClassInfo]['used_time']except:  num_today = 0used_time = 0.0  return num_today,used_timefor LearningDataDaily in LearningData['data']:checkin_date =  LearningDataDaily['checkin_date']bdc_num_today,bdc_used_time = GetInfo('bdc')listen_num_today,listen_used_time = GetInfo('listen')read_num_today, read_used_time = GetInfo('read')print("{},{}背单词{}个,用时{}分钟,听力{},用时{}分钟,阅读{},用时{}分钟".format(checkin_date,NickName,bdc_num_today,bdc_used_time,listen_num_today,listen_used_time,read_num_today,read_used_time))

请在作业的最后一行输出:

昵称:第8节课作业

十一、模块

Python有一个标准库(不需要pip安装),里面涉及了很多内置模块

Python标准库(中文版):https://docs.python.org/zh-cn/3/library/

PyPI:https://pypi.org

11.1 导入模块

导入整个模块

import 模块名

导入特定的函数

from 模块名 import 函数名

如果模块或函数名太长,你觉得使用起来不方便,你可以设定它的缩写

from 模块名 import 函数名 as 缩写名称
import 模块名 as 缩写名称

导入所有函数

from 模块名 import *

11.2 常用库

数据处理

import datatime  # 基础日期和时间数据类型
import calendar  # 通用日历函数
import random  # 生成随机数
import math  # 数学函数
import cmath  # 复数运算函数
import time  # 时间的访问和转换
import statistics  # 统计函数
import faker  # 创建伪数据,包括姓名、地址、电话等等
import numpy
import pandas

网页处理

import requests #  访问网页
import re  # 正则化表达

文档处理

import xlwt  # 写入Excel

游戏处理

import pygame

数据可视化

import plotly
import bokeh
import matplotlib
import seaborn
import missingno
import pygal

优秀的库推荐

从数据处理到人工智能

从Web解析到网络空间

从人机交互到艺术设计

11.3 内置模块

this

import this # 来感受一下创始人的初心

The Zen of Python, by Tim Peters

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren’t special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it.

Although that way may not be obvious at first unless you’re Dutch.

Now is better than never.

Although never is often better than right now.

If the implementation is hard to explain, it’s a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea – let’s do more of those!

附上一段翻译

优美胜于丑陋(Python 以编写优美的代码为目标)

明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)

复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

可读性很重要(优美的代码是可读的)

即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)

不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)

当存在多种可能,不要尝试去猜测

而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)

虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )

做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)

如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)

命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

————————————————

版权声明:本文为CSDN博主「赖勇浩」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/gzlaiyonghao/article/details/2151918

datetime

提供用于处理日期和时间的类

在支持日期时间数学运算的同时,实现的关注点更着重于如何能够更有效地解析其属性用于格式化输出和数据操作。

举个例子:计算距离特定事件天数的例子

from datetime import date# 获取今天的日期
today = date.today()
print(today)# 我的生日日期,年份保持不变
my_birthday = date(today.year, 1, 26)
print(my_birthday)if my_birthday < today:my_birthday = my_birthday.replace(year=today.year + 1)# 计算两个日期的差
time_to_birthday = abs(my_birthday - today)
print(time_to_birthday.days)# 输出:
# 2020-04-14
# 2020-01-26
# 287

time

# 计算代码的运行时间
import time
start = time.time()"""
此处是代码
"""end = time.time()
print("花费", end-start, "秒")

calendar

它提供了其它与日历相关的实用函数

import calendar
calendar.prmonth(2020, 4)
# 输出:April 2020
Mo Tu We Th Fr Sa Su1  2  3  4  56  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
calendar.prcal(2020)

random

import random
random.random()
# 输出:0.4176217805064072(产生0到1之间的随机浮点数)
random.randint(1,10)
# 输出:3(产生1到10的一个整数型随机数)
random.uniform(1.1,5.4)
# 输出:3.1108641423436807(产生1.1到5.4之间的随机浮点数,区间可以不是整数)
random.choice(["A","B"])
# 输出:A(从序列中随机选取一个元素)
random.randrange(1,100,2)
# 输出:5(生成从1到100的间隔为2的随机整数)

math

import math
math.fabs()  # 绝对值
math.pow()  #次方计算
math.sqrt()  #平方根计算
math.pi()  #圆周率数值

statistics

该模块提供了用于计算数字 (Real-valued) 数据的数理统计量的函数。此模块针对图形和科学计算器的水平。

方法 解释
mean() 数据的算术平均数(“平均数”)
fmean() 快速的,浮点算数平均数。
geometric_mean() 数据的几何平均数
harmonic_mean() 数据的调和均值
median() 数据的中位数(中间值)
median_low() 数据的低中位数
median_high() 数据的高中位数
median_grouped() 分组数据的中位数,即第50个百分点。
mode() 离散的或标称的数据的单模(最常见的值)。
multimode() 离散的或标称的数据的模式列表(最常见的值)。
quantiles() 将数据以相等的概率分为多个间隔。

11.4 实践

设计一个抽奖活动,输入参与人数、参与人姓名、参与人ID,输入中奖人名单

Faker库需要安装:pip install Faker

它用来伪造数据,支持多种语言。可以伪造地址、身份证号、城市、邮箱、姓名、职业等等等。

详情可戳:https://faker.readthedocs.io/en/master/locales/zh_CN.html

from faker import Faker
import randomfake = Faker(locale = 'zh_CN')  # 伪造中文数据n = input("请输入参与人数:")
m = input("请输入中奖人数:")# 构造ID和人名
list_name = []
list_ID = list(range(0,int(n)))
for _ in range(int(n)):list_name.append(fake.name())# 开始抽奖,随机抽取
print("\n")
print("中奖名单:")
for _ in range(int(m)):ID_random = random.choice(list_ID)location = list_ID.index(ID_random)print("ID:{},{}".format(ID_random, list_name[location]))list_name.remove(list_name[location])list_ID.remove(list_ID[location])# 输出:# 请输入参与人数:20
# 请输入中奖人数:2# 中奖名单:
# ID:5,林文
# ID:9,韩秀珍

请在作业的最后一行输出:

昵称:第9节课作业
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Mac下solr的安装配置&springboot+dubbo项目实现itrip-search-consumer

    前提:本地已安装配置好jdk+tomcat+mysql 本地安装solr 1.路径:/itripProject/爱旅行项目资料/课程资料/solr/solr-4.9.1/dist/solr-4.9.1.war,将solr-4.9.1.war文件复制到tomcat的webapps目录下,并将文件重命名为solr.war2.复制 solr解压包下example\lib\ext 下所有的jar 到…...

    2024/5/8 5:38:33
  2. 80后、90后扎心图鉴-你在第几层?

    80后、90后扎心图鉴-你觉得你在第几层? ------来源 | 央视新闻(ID: cctvnewscenter) 听说能全部看完的,都是一个有故事的人。小编看完后,心里翻江倒海般的“平静”,真的是感慨万千呀,大家可以想说的可以评论下来,一起来品尝一下酸甜苦辣吧...

    2024/4/28 15:17:19
  3. 7.14今日资讯全球新冠肺炎确诊病例累计超1300万例

    韭菜币圈区块链 今天 全球新冠肺炎确诊病例累计超1300万例据美国约翰斯霍普金斯大学统计数据,全球新冠肺炎确诊病例累计超1300万例,达13006764例,死亡病例累计达570924例。 韩国或将对加密货币征收20%的资本利得税韩国国会最近讨论了一项法案,旨在对加密货币征税。该措施…...

    2024/5/7 12:50:33
  4. OSM开源地图数据爬取

    OSM开源地图数据爬取什么是OSM地图?OSM地图爬取利器——QGIS 什么是OSM地图? 基本概念OSM全称为OpenStreetMap,又叫开源地图 ,是在2004年7月由史蒂夫克斯特始创。2006年4月,OpenStreetMap基金会成立,鼓励自由地理数据的增长,并向所有人提供地理数据以供使用及分享。 Ope…...

    2024/5/6 14:09:39
  5. 物联网的新危机!即将到期的SSL证书可能会影响……

    5月30日,部分Roku流媒体频道停止工作,导致受影响的客户不知道发生了什么问题。Roku建议这些客户手动更新设备:“由于全球技术证书到期,因此Roku平台上某些依赖此证书链的传输频道可能无法正常工作。请立即从Roku安装手动软件更新。”当天,Stripe 和Spreedly 付款平台遇到了…...

    2024/5/8 1:43:16
  6. 徐博鸿:7.14黄金破位已是必然,反弹高空波段下看,黄金行情分析

    走过的是时间,看过的是行情,尝过的是盈与亏,回味的是得与失,沉淀的是经验,成就的是境界,苦辣酸甜感慨万千,淡然处之、与市无争、万事不忧、烦事不思、遇利不贪、遇险不乱、按部就班、运筹帷幄、步步为营、方能身处乱市一切尽在掌握,稳步前行。反之:若只贪恋利润,无视…...

    2024/5/6 10:04:39
  7. 谷歌Adwords竞价广告效果怎么样?怎么做好Adwords?

    刚做外贸很多人都会问,Google Ads竞价广告有效果吗?外贸快速发展已经有10多个年头了,我想大多数外贸从业者尤其企业经营者大多数都听说过Google Ads及作用;外贸运营思维也从最早的Alibaba国际站,发展为B2B、Google、搜索社媒、Youtube视频营销等全网营销模式,随着各种营销…...

    2024/5/6 13:52:34
  8. 以凑硬币问题分析动态规划解题步骤

    给定不同面值的硬币coins和一个总金额amount,编写一个函数来计算可以凑成总金额所需的最小硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。 首先根据最小两个字和题意可以分析是用动态规划来进行解题。 确定状态 解题的前提就是确定题中的状态是什么,一般情况下,…...

    2024/5/7 12:30:18
  9. 设计模式学习之当好一个中介难不难

    中介者模式的定义: 中介就是游走于买方和卖方之间的纽带。卖方和买方通过中介来联系,省去了中间的沟通成本,比如房屋中介,卖方要面对多个买方,希望房子卖个不错的价格,而买方也要需要面对多个卖方,房比三家才能找到自己满意和价格适中的房子。如果此一来卖方和买方…...

    2024/4/22 0:51:13
  10. C语言中.h和.c文件解析

    简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段…...

    2024/5/6 7:35:16
  11. 完成一个预测建模项目一般需要多长时间?

    为了回答这个问题,我们先来了解一下建模的流程,通常一个完整的数据挖掘项目包含以下流程(1)业务理解、(2)数据理解、(3)数据准备、(4)数据预处理和建模、(5)模型评估、(6)模型部署应用。这个流程的操作性很强,也是业界公认标准。业务理解的主要工作有需求调研,…...

    2024/5/6 15:16:43
  12. 品钛:技术服务商与金融机构在信贷合作中的模式演变

    编译自中国日报摘要:关于《商业银行互联网贷款管理暂行办法(征求意见稿)》对助贷业务影响,中国日报采访了金融科技上市公司品钛、农村小微金融服务机构、金融科技业内人士等。品钛执行副总裁李惠科表示:“过去IT服务商和银行之间的合作关系是一种偏技术、偏服务的模式,现…...

    2024/5/8 6:34:21
  13. 1.5万字概括ES6全部特性

    前言第三次阅读阮一峰老师的《ES6标准入门》了,以前阅读时不细心,很多地方都是一目十行。最近这次阅读都是逐个逐个字来读,发现很多以前都没有注意到的知识点,为了方便记忆和预览全部ES6特性,所以写下本文。以下提到的《ES6标准入门》统一使用《ES6》这个名称来代替,而最…...

    2024/4/23 8:18:59
  14. 零基础想玩转3D建模,这14个建模小技巧你必须知道!

    使用对象管理器合并您的需要 “在一个场景文件中快速完成外观开发是一种很好的方式,”3D动画设计师Jason Poley说。“能够在逐个拍摄的基础上改变模型的位置,材料和可见性来迭代想法是非常方便的。当我通过想法和外观时,我经常会得到五到七次拍摄。 “要合并所有这些内容,一…...

    2024/4/9 19:49:14
  15. opengl纹理缩放的原理

    一、背景 用OpenGL处理3dlut映射的时候,lut滤镜数据输入到纹理后,不经过任何处理直接输出,图像两边会有错误的像素点出现,如下(更换了图片,以便验证结果的一般性) 如上图,在边缘出现了模糊的颜色 二、原因 在我的测试demo中有以下代码设置纹理的属性 // 当纹理坐标超出…...

    2024/5/8 0:10:12
  16. 外贸企业真的有必要做谷歌SEO吗?

    目前外贸行业对这个问题有两种看法,一种是外贸企业一定要做Google SEO,另一种就是你的企业是否真的适合Google SEO。实际这两种看法的主要区别在于立场不同,第一种观点大部分是外贸推广公司说的(这类公司主要是买服务和培训为主);第二种观点更为理性一点,多为经过多年实…...

    2024/4/17 7:13:51
  17. 聊聊Kafka的‘金手指’外挂

    1、发现Kafka开挂 听过ZeroMQ吗 ZeroMQ完全没有任何服务器节点,也不会使用硬盘,按照道理说它应该比Kafka快。可是实际测试下来它的速度还是被Kafka“吊打”。 Kafka使用磁盘文件存储还想快速? “一个用硬盘的比用内存的快”,这绝对违反常识; 如果这种事情发生说明——它开…...

    2024/4/27 3:51:08
  18. 目标检测学习 「======」 1

    文章目录1. Kaggle目标检测第一名的一篇论文:**Large-scale Landmark Retrieval/Recognition under a Noisy and Diverse Dataset**[论文地址](https://arxiv.org/pdf/1906.04087.pdf)2. SSD目标检测代码学习3. 图像分割3.1 Some Tricks3.2 Mask-RCNN3.3 BiSeNet语义分割网…...

    2024/5/5 13:54:28
  19. Xavier_NX(Xavier)配置CenterNet

    1.安装pytorch下载torch-1.1.0-cp36-cp36m-linux_aarch64.whlsudo chmod -R 777 torch-1.1.0-cp36-cp36m-linux_aarch64.whlpython3,用以下命令安装:pip3 install torch-1.1.0-cp36-cp36m-linux_aarch64.whlpython2,用以下命令安装:pip install torch-1.1.0-cp36-cp36m-lin…...

    2024/5/8 3:56:25
  20. Python的安装与设置

    文章目录1.4.1 Windows1.4.4 安装及更新Python包1.4.6 集成开发环境和文本编辑器1.6 快速浏览本书 由于每个人使用Python的应用场景不一样,设置Python、安装附加包并没有一个统一的解决方案。很多读者并没有一个适合本书后续内容的Python开发环境,因此我将给出一份各操作系统…...

    2024/4/27 2:57:13

最新文章

  1. 线性表--数据结构设计与操作

    单链表 1.单链表的定义&#xff1a; typedef struct LNode{Elemtype data;struct Lnode *next; }LNode ,*LinkList;//单链表的数据结构&#xff08;手写&#xff09; #include<iostream> #include<vector> #include<algorithm>typedef int TypeElem; //单链表…...

    2024/5/8 7:09:57
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. linux进阶篇:磁盘管理(一):LVM逻辑卷基本概念及LVM的工作原理

    Linux磁盘管理(一)&#xff1a;LVM逻辑卷基本概念及LVM的工作原理 一、传统的磁盘管理 在传统的磁盘管理方案中&#xff0c;如果我们的磁盘容量不够了&#xff0c;那这个时候应该要加一块硬盘&#xff0c;但是新增加的硬盘是作为独立的文件系统存在的&#xff0c;原有的文件系…...

    2024/5/7 14:21:10
  4. leetcode90. 子集 II

    去重逻辑&#xff1a; 关键是画出递归树&#xff01;当我们即将进入第二个2的递归的时候&#xff0c;发现isVisit数组是100&#xff0c;也就是说这俩重复的数是False&#xff0c;并且这俩在nums值相同&#xff0c;所以写出去重逻辑&#xff01; class Solution { public:vector…...

    2024/5/7 7:37:55
  5. 外包干了10天,技术倒退明显

    先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…...

    2024/5/6 10:30:12
  6. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/7 19:05:20
  7. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/7 22:31:36
  8. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/8 1:37:40
  9. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/7 14:19:30
  10. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/8 1:37:39
  11. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/7 16:57:02
  12. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/7 14:58:59
  13. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/7 1:54:46
  14. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/7 21:15:55
  15. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/8 1:37:35
  16. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/7 16:05:05
  17. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/7 16:04:58
  18. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/8 1:37:32
  19. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/7 16:05:05
  20. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/8 1:37:31
  21. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/8 1:37:31
  22. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/7 11:08:22
  23. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/7 7:26:29
  24. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/8 1:37:29
  25. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/7 17:09:45
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57