Python基础1初识

Python编程语⾔言介绍

众所周知,Python已成为全球3⼤大主流编程语⾔言之⼀一, 与C、Java并驾⻬齐驱。与Java, C这两位编程界⼤大佬⻓长期霸屏编程语⾔言排⾏行行榜前列列不不同的是,Python是近⼏几年年才异军突起、爬到了了前三的位置。活脱脱⼀一个屌丝逆袭故事。

世界上的编程语⾔言有600多种,但真正⼤大家主流在使⽤用的最多⼆三十种,不不同的语⾔言有⾃自⼰己的特点和擅⻓长领域,随着计算机的不不断发展,新语⾔言在不不断诞⽣生,也同时有很多⽼老老旧的语⾔言慢慢⽆无⼈人⽤用了了。有个权威的语⾔言排名⽹网站,可以看到主流的编程语⾔言是哪些

Python为何能逆袭?

评判⼀个编程语⾔的优劣有多种维度, ⼀般包括“开发效率”、“学习曲线”、“⽣态圈”、"运⾏速度"等,

Python在“开发效率”、“学习曲线”、“⽣态圈”这3个维度上可以说是稳拿第⼀了。

开发效率

由于语法简洁明了,⼜有丰富的、现成的各种模块库,开发什么功能都不⽤重新造轮⼦,直接在前辈的写好的代码基础上扩展即可,⼤⼤提⾼开发效率。

学习曲线

Python算是最适合⼩⽩上⼿的语⾔了。 很多⼈觉得计算机难学,是因为⼀开始就没选对语⾔,你⼀上来就搞C\C++\Java啥的,那指针呀、链表呀、⾯向对象呀就够你喝⼀壶的。⽽学Python符合⼈性的学习曲线,由简⼊繁,先易后难。

⽣态圈

Python⾃1989年诞⽣⾄今30余年,在IT技术的各个领域⽅向都发展出强⼤的⽣态圈,在⼈⼯智能、数据分析、爬⾍开发、游戏开发、⾃动化运维\测试、web开发、后端开发、科学运算、GUI编程等⽅⾯均全⾯开花,被称为编程界的瑞⼠军⼑、万能语⾔。

运⾏速度

Python 的运⾏速度相⽐C语⾔确实慢很多,跟JAVA相⽐也要慢⼀些,因此这也是很多所谓的⼤⽜不屑于使⽤Python的主要原因,但其实这⾥所指的运⾏速度慢在⼤多数情况下⽤户是⽆法直接感知到的,必须借助测试⼯具才能体现出来,⽐如你⽤C运⼀个程序花了0.01s,⽤Python是0.1s,这样C语⾔直接⽐Python快了10倍,算是⾮常夸张了,但是你是⽆法直接通过⾁眼感知的,因为⼀个正常⼈所能感知的时间最⼩单位是0.15-0.4s左右,哈哈。其实在⼤多数情况下Python已经完全可以满⾜你对程序速度的要求,除⾮你要写对速度要求极⾼的搜索引擎、⽹络游戏等,这种情况下,当然还是建议你⽤C去实现的。

Python主要应⽤领域

WEB开发

最⽕的Python web框架Django, ⽀持异步⾼并发的Tornado框架,短⼩精悍的flask,bottle, Django官⽅的标语把Django定义为the framework for perfectionist withdeadlines(⼤意是⼀个为完全主义者开发的⾼效率web框架)

⽹络编程

⽀持⾼并发的Twisted⽹络框架, py3引⼊的asyncio使异步编程变的⾮常简单

爬⾍

爬⾍领域,Python⼏乎是霸主地位,Scrapy\Request\BeautifuSoap\urllib等,想爬啥就爬啥

云计算

⽬前最⽕最知名的云计算框架就是OpenStack,Python现在的⽕,很⼤⼀部分就是因为云计算

⼈⼯智能、数据分析

Python 是⽬前公认的⼈⼯智能和数据分析领域的必备语⾔

⾃动化运维

问问你认识的每个运维⼈员,运维⼈员必须会的语⾔是什么?10个⼈相信会给你⼀个相同的答案,它的名字叫Python。知名的运维⼯具Ansible\Saltstack都是Python写的

⾦融分析

分析程序、⾼频交易软件就是⽤的Python,到⽬前,Python是⾦融分析、量化交易领域⾥⽤的最多的语⾔

科学运算

97年开始,NASA就在⼤量使⽤Python在进⾏各种复杂的科学运算,随着NumPy,SciPy, Matplotlib, Enthought librarys等众多程序库的开发,使的Python越来越适合于做科学计算、绘制⾼质量的2D和3D图像。和科学计算领域最流⾏的商业软件Matlab相⽐,Python是⼀⻔通⽤的程序设计语⾔,⽐Matlab所采⽤的脚本语⾔的应⽤范围更⼴泛

游戏开发

在⽹络游戏开发中Python也有很多应⽤。⽐如知名的游戏<⽂明>、⽹易公司的《⼤话⻄游》 就是⽤Python写的

Python环境安装

由于电脑是Mac操作系统,并且已经安装了homebrew,所以使用HomeBrew安装python,使用shell安装即可。

brew install python@版本号(3.7-3.9)

Pycharm

很多语⾔都有⽐较流⾏的开发⼯具,⽐如JAVA 的Eclipse, C#,C++的VisualStudio, Python的是啥呢?Pycharm,最好的Python 开发IDE。

变量

什么是变量

变量,是⽤于在内存中存放程序数据容器

计算机的最核⼼功能就是“计算”CPU是负责计算的,计算需要数据源,数据源要存在内存⾥,⽐如我要把Alex的姓名、身⾼、年龄信息存下来,后⾯程序会调⽤,怎么存呢,直接设置⼀个 变量名=值 , 就可以

定义变量

name = "Alex"
age = 22
height = 180

后⾯程序想调⽤的时候,直接调 变量名 就可以

name = "Alex"
age = 22
height = 180
print(name) # 调⽤变量
print(age)

变量的使⽤规则

程序是从上到下依次逐⾏执⾏的,所以变量必须先定义,后调⽤, 否则会报错

变量的定义规则

  1. 在程序全局都会⽤到的变量,尽量定义在⽂件开头
  2. 变量名只能是字⺟数字下划线的任意组合,其它形式均不合法
  3. 变量名的第⼀个字符不能是数字
  4. 以下关键字不要声明为变量名[‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’,‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’,‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’], 这些是Python语法中已经占⽤了的关键字

常⽤变量名定义规范

驼峰体

ageOfOldboy = 56
numberOfStudents = 80
c,c#

下划线

age_of_oldboy = 56
lao_nan_hai_de_nianling # 不要这么写
number_of_students = 80

你觉得哪种看着更清晰,哪种就是官⽅推荐的,我想你肯定会先第2种

定义变量不好的⽅式

  1. ⽤拼⾳、中⽂做变量名
  2. 变量名过⻓
  3. 不能让⼈通过名字就能看出来是什么意思
  4. ⾸字⺟⼤写(⼤写是⽤来定义类名的,后⾯会学)

变量的修改

![](https://img-blog.csdnimg.cn/img_convert/9b007c7d67d51f6c192ab20b31339e8f.png)

del name 删除变量量

基本的数据类型

什么是数据类型

我们⼈类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强⼤,但从某种⻆度上看⼜很傻,除⾮你明确的告诉它,1是数字,“汉”是⽂字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语⾔⾥都会有⼀个叫数据类型的东东,其实就是对常⽤的各种数据类型进⾏了明确的划分,你想让计算机进⾏数值运算,你就传数字给它,你想让他处理⽂字,就传字符串类型给他。Python中常⽤的数据类型包括多种,今天我们暂只讲4种, 数字、字符串、布尔类型、列表。

数字类型

int(整型) integer

你存的所有的整数,都是这个类型

>>> age_alex = 26
>>> alex_salary = 500000000
>>> type(age_alex),type(alex_salary)
(<class 'int'>, <class 'int'>) # 都是int类型

可⽤ type() ⽅法来查看数据类型

float (浮点型)
即⼩数

>>> type(2.32)
<type 'float'>
>>> type(-3.141592653)
<class 'float'>

字符串

在Python中,加了引号的字符都被认为是字符串!

>>> name = "Alex Li" #双引号
>>> age = "22" #只要加引号就是字符串
>>> age2 = 22 #int
>>>
>>> msg = '''My name is Alex, I am 22 years old!''' #我擦,3个引号也可以
>>>
>>> hometown = 'ShanDong' #单引号也可以

那单引号、双引号、多引号有什么区别呢? 让我⼤声告诉你,单双引号⽊有任何区别,只有下⾯这种情况 你需要考虑单双的配合

msg = "My name is Alex , I'm 22 years old!"

多引号

多引号什么作⽤呢?作⽤就是多⾏字符串必须⽤多引号

msg = '''
今天我想写⾸⼩诗,
歌颂我的同桌,
你看他那乌⿊的短发,
好像⼀只炸⽑鸡。
'''
print(msg)

字符串拼接

数字可以进⾏加减乘除等运算,字符串呢?让我⼤声告诉你,也能?what ?是的,但只能进⾏”相
加”和”相乘”运算。

>>> name
'Alex Li'
>>> age
'22'
>>>
>>> name + age #相加其实就是简单拼接
'Alex Li22'
>>>
>>> name * 10 #相乘其实就是复制⾃⼰多少次,再拼接在⼀起
'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'

不⽤尝试相减、相除,⾂妾办不到呀。
注意,字符串的拼接只能是双⽅都是字符串,不能跟数字或其它类型拼接

>>> name = "Alex Li"
>>> age = 23
>>>
>>> type(name),type(age)
(<type 'str'>, <type 'int'>)
>>> name + age # 字符串跟数字相加报错
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

布尔类型

布尔类型很简单,就两个值 ,⼀个True(真),⼀个False(假), 主要⽤作逻辑判断

但其实你们并不明⽩上⾯这句话什么意思对么? let me explain, 我现在有2个值 , a=3, b=5 , 我说a>b 你说成⽴么? 我们当然知道不成⽴,但问题是计算机怎么去描述这成不成⽴呢?或者说a < b 是成⽴,计算机⼜怎么描述这个公式是成⽴的呢?没错,答案就是,⽤布尔类型

>>> a=3
>>> b=5
>>>
>>> a > b #不成⽴就是False,即假
False
>>>
>>> a < b #成⽴就是True, 即真
True

计算机为什么要描述这种条件呢?因为接下来就可以根据条件结果来⼲不同的事情啦呀!⽐如

if a > bprint(“a is bigger than b ”)
elseprint(“a is smaller than b” )

上⾯是伪代码,但是不是意味着, 计算机就可以根据判断结果不同,来执⾏不同的动作啦?

列表(List)

如果要把全班的⼈名在内存⾥存下来,⽤上⾯的字符串类型可以做到,但取的时候不⽅便。

你 print(names) 它打印的是所有⼈的信息,如果想取出Rain,没办法(可以⽤字符串切割⽅式,但是很麻烦)。此时,⽤列表就⽐较合适

>>> names = ["Alex","Jack","Rain","Rachel","Mack"]
>>> names[2] #为何names[2]就能取出Rain?
'Rain'

因为列表的是通过下标来标记元素位置的,下标也可称为索引。 下标从0开始,每添加⼀个元素,就⾃动+1

元素添加

元素的添加有2种⽅式,插⼊、追加,插⼊指可以可以把⼀个新元素插⼊到列表的任意位置

插⼊

>>> names
['Alex', 'Jack', 'Rain', 'Rachel', 'Mack']
>>> names.insert(3,"⼩明") #3代表你想插⼊的下标位置
>>> names
['Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack']
>>>

追加

>>> names
['Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack']
>>> names.append("⼩强")
>>> names
['Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack', '⼩强']

列表的修改

直接根据下标找到元素重新赋值即可

>>> names[0] = "⾦⻆⼤王Alex"
>>> names
['⾦⻆⼤王Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack', '⼩强']

删除元素

有2种删除⽅法,⼀个是下标删除,⼀个是元素值删除。

>>> names
['⾦⻆⼤王Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack', '⼩强']
>>> names.remove("⼩明") # 通过指定元素名删除, 会删除从左开始找到的第⼀个⼩明, 如果有多个⼩明,则只删除找到的第⼀个。
>>> names
['⾦⻆⼤王Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '⼩强']
>>> del names[3] # 通过指定下标删除

判断某元素是否在列表⾥

>>> names
['⾦⻆⼤王Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '⼩强']
>>>
>>> "Mack" in names
True

注,以上只是列表的部分⽤法,后续我们会深⼊学习,我们今天先了解这些就够了。

⼩练习

  1. ⼀句代码打印10⾏“Alex⾦⻆⼤王是沙河最靓的仔”,注意是10⾏。
  2. 写⼀个列表,把你和你身边前后6个同桌的名字存进去,把Alex插⼊到你后⾯
  3. 把上⼀题列表⾥的你⾃⼰删除掉,然后再追加到列表尾部

运算符

计算机可以进⾏的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、⽐较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、⽐较运算、逻辑运算、赋值运算、成员运算

算术运算符

以下假设变量:a=10,b=20

比较运算符

以下假设变量:a=10,b=20

注意:<>在python3⾥已经取消了,仅在py2⾥有效

赋值运算符

以下假设变量:a=10,b=20

逻辑运算

以下假设变量:a=10,b=20

注意了还可以多个or 或and 拼在⼀起

or的优先级更⾼

成员运算

只有in, not in 2种, ⽤来测试数据中是否包含了⼀系列的成员

>>> names
['⾦⻆⼤王Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '⼩强']
>>> "Jack" in names
True
>>> "Jack" not in names
False
>>> s = "我是沙河最帅的仔"
>>> "沙河" in s
True

注意,可以⽤来测试字符串、列表、元组、字典、集合,但是不能测试数字类型

读取⽤户输⼊

若你的程序要接收⽤户指令,可以⽤input语法:

name = input("What is your name?")
print("Hello " + name )

执⾏脚本就会发现,程序会等待你输⼊姓名后再往下继续⾛。
可以让⽤户输⼊多个信息,如下

name = input("What is your name?")
age = input("How old are you?")
hometown = input("Where is your hometown?")
print("Hello ",name , "your are ", age , "years old, you came from",hometown)

注意,input()⽅法接收的只是字符串,即使你输⼊的是数字,它也会按字符串处理

格式化打印

现有⼀练习题需求,问⽤户的姓名、年龄、⼯作、爱好 ,然后打印成以下格式

------------ info of Alex Li -----------
Name : Alex Li
Age : 22
job : Teacher
Hobbie: girl
------------- end -----------------

你怎么实现呢?你会发现,⽤字符拼接的⽅式很难实现这种格式的输出,所以⼀起来学⼀下新姿势你只需要简单的在字符串⾥引⽤你外部的变量就可以啦。。。。。

语法

name = "Alex"
age = 22
print( f"hello my name is {name}, I am {age} old..")

注意字符串开头要加上 f ,才可以在⾥⾯⽤ {} 来引⽤外部变量

这样实现上⾯的需求就很简单啦

name = input("Name:")
age = input("Age:")
job = input("Job:")
hobbie = input("Hobbie:")
info = f'''
------------ info of {name} -----------
Name : {name}
Age : {age}
job : {job}
Hobbie: {hobbie}
------------- end -----------------
'''
print(info)

流程控制之if…else…

假如把写程序⽐做⾛路,那我们到现在为⽌,⼀直⾛的都是直路,还没遇到过分叉⼝,想象现实中,你遇到了分叉⼝,然后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要⾛的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序⾥预设⼀些条件判断语句,满⾜哪个条件,就⾛哪条岔路。这个过程就叫流程控制。

基本上在各个语⾔中,都是⽤语法if…else…来实现,可分为单分⽀、双分⽀、多分⽀

单分⽀

if 条件:满⾜条件后要执⾏的代码

双分⽀

if 条件:满⾜条件执⾏代码
else:if条件不成⽴就⾛这段代码
salary = 18000
if salary < 10000:print("你挣太少了,⼜⻓的丑,找对象有困难,建议来跟Alex学习Python+把妹技巧")
else:print("恭喜满⾜了在北京⽣存的基本收⼊线")

缩进

这⾥必须要插⼊这个缩进的知识点

你会发现,上⾯的if代码⾥,每个条件的下⼀⾏都缩进了4个空格,这是为什么呢?这就是Python的⼀⼤特⾊,强制缩进,⽬的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成⽴后,去执⾏哪些代码呢?
在其它的语⾔⾥,⼤多通过 {} 来确定代码块,⽐如C,C++,Java,Javascript都是这样,看⼀个JavaScript代码的例⼦

var age = 56
if ( age < 50){console.log("还能折腾")console.log('可以执⾏多⾏代码')
}else{console.log('太⽼了')
}

在有 {} 来区分代码块的情况下,缩进的作⽤就只剩下让代码变的整洁了。

Python是⻔超级简洁的语⾔,发明者定是觉得⽤ {} 太丑了,所以索性直接不⽤它,那怎么能区分代码块呢?答案就是强制缩进。
Python的缩进有以下⼏个原则:

  • 顶级代码必须顶⾏写,即如果⼀⾏代码本身不依赖于任何条件,那它必须不能进⾏任何缩进

  • 同⼀级别的代码,缩进必须⼀致

  • 官⽅建议缩进⽤4个空格,当然你也可以⽤2个,如果你想被⼈笑话的话。

多分⽀

回到流程控制上来,if…else …可以有多个分⽀条件

if 条件:满⾜条件执⾏代码
elif 条件: # else if ...满⾜条件执⾏代码,前提是上⼀层的if条件不满⾜
elif 条件:满⾜条件执⾏代码,前提是上⼀层的elif条件不满⾜
elif 条件:满⾜条件执⾏代码,前提是上⼀层的elif条件不满⾜
else:上⾯所有的条件不满⾜就⾛这段

猜年龄

age_of_oldboy = 48
guess = int(input(">>:"))
if guess > age_of_oldboy :print("猜的太⼤了,往⼩⾥试试...")
elif guess < age_of_oldboy :print("猜的太⼩了,往⼤⾥试试...")
else:print("恭喜你,猜对了...")

上⾯的例⼦,根据你输⼊的值不同,会最多得到3种不同的结果再来实现⼀下下⾯这个需求吧,写⼀段程序,读取⽤户输⼊的⼯资,根据⼯资多少打印相应的⽂字

salary = int(input("Salary:"))
if salary > 100000:print("公司就是我的家")
elif salary > 50000:print("996就像呼吸⼀样⾃然")
elif salary > 30000:print("⽼板说什么都是对的,如果有⼈错了,那⼀定是我")
elif salary > 20000:print("⽼板说啥就是啥吧,给钱就⾏")
elif salary > 10000:print("⽼板说的有点问题,但是我不说话")
elif salary > 5000:print("⽼板脑⼦有坑,背后说坏话")
elif salary >2000:print("⽼板,wqnmlgbxxxx")
else:print("⽼板,我是你爹...")

这⾥有个问题,就是当我输⼊25000的时候 ,它打印的结果是 “⽼板说啥就是啥吧,给钱就⾏”, 但是25000 明明也⼤于第条件 elif salary>=10000: 呀, 为什么不同时执⾏后⾯的呢呢?这是因为代码是从上到下依次判断,只要满⾜⼀个,就不会再往下⾛啦,这⼀点⼀定要清楚呀!

今⽇练习题

写个匹配成绩的⼩程序,成绩有ABCDE 5个等级,与分数的对应关系如下

A 90-100
B 80-89
C 60-79
D 40-59
E 0-39

要求⽤户输⼊0-100的数字后,你能正确打印他的对应成绩等级,⽐如输⼊的是75,则打印C

score =(int)(input("请输入你的成绩"))
if score < 60:print("F")
elif score >= 60 and score < 70:print("E")
elif score >= 70 and score < 80:print("D")
elif score >= 80 and score <90:print("C")
elif score >= 90 and score < 100:print("B")
elif score == 100:print("A")
else:print("输入错误")

【Python基础】初识-与君初相识,犹如故人归相关推荐

  1. 三,python基础初识。

    三,python基础初识. 1,运行python代码. 在d盘下创建一个t1.py文件内容是: print('hello world') 打开windows命令行输入cmd,确定后 写入代码pytho ...

  2. python基础--初识python

    目录: 1.为什么要学习python? 2.电脑的简史 3.计算机结构 4.操作系统历史 5.二进制 6.编程语言 7.python发展史与比较 8.系统的位数 9.硬盘的区分 10.交互器模式 11 ...

  3. JavaScript 教程「1」:与君初相识

    什么是 JavaScript 作为世界上最流行的语言之一,是一种运行在客户端的脚本语言.而所谓脚本语言,就是不需要编译就能运行的编程语言,JavaScript 在运行过程中通过 JS 解释器来逐行解释 ...

  4. JavaScript——与君初相识

    什么是JavaScript 解释 JavaScript是一种轻型脚本语言,在客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行. 组成 由三部分组成: ECMAScrip ...

  5. java--与君初相识

    first point:   先安装 jdk(http://www.oracle.com/technetwork/java/javase/downloads/index.html),必须先选择acce ...

  6. 【关于Spring那些事】——与君初相识

    第一个Spring程序 Spring是一个轻量级开源框架,由一个叫Rod Johnson的程序员在 2002 年提出并创建. 1.创建maven工程 2.添加Spring依赖 在maven项目的pom ...

  7. 与君初相识之Linux与Java SE

    Linux入门常识 // Linux OS; // 文件系统; // Linux 相当于只有一个C:\ 的Windows系统,省略了盘符C; // Linux 文件系统的根目录只有一个,"\ ...

  8. java--与君初相识之jdk的环境配置

    jdk的下载目录已经在上一篇文章给出. 现在提出几点需要注意的地方,都是我踩过的坑: 1. jdk的安装目录必须在c盘,安装在其他盘,cmd下运行不了 2.配置环境变量时,你一定要一开始就把原先的Pa ...

  9. Python 基础二

    一.Python介绍 1.python的出生与应用 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打 ...

  10. python 基础一

    一,Python介绍 1. python的出生与应用 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹 ...

最新文章

  1. 简单介绍Vue之vue.$set()方法源码案例
  2. Android是怎么启动的-[Android取经之路]
  3. linux运维平台工具,Linux运维自动化工具 Kickstart
  4. git 分支管理策略 与 物理实现 --author by阮一峰 小鱼
  5. 【IDEA】IDEA报错 illegal character U+00A0异常解决
  6. mysql 连接查询分组_详解MySQL中的分组查询与连接查询语句
  7. oracle单列索引和组合索引性能测试
  8. Java中的包扫描(工具)
  9. 太赞了,竟然用SpringBoot打造一款网页版的IM,进行聊天...
  10. 小学题的python实现
  11. gitHub报错10054、443解决办法
  12. 正则Regester
  13. Codeforces Round #555 (Div. 3), problem: (C2) Increasing Subsequence (hard version)【贪心+撞到南墙也不回头】
  14. React中文文档之Thinking in React
  15. Hadoop集群搭建07_克隆搭建Linux集群环境
  16. 《Oracle PL/SQL实例精讲》学习笔记1——数据准备
  17. 7-18 nii.gz文件的处理
  18. Qt实现telnet服务【记录】
  19. 戒掉PC,免pc开发,cloud ide and debug设想
  20. Linux之强大的gawk

热门文章

  1. Python分析《哈哈哈哈哈》4万弹幕
  2. 华为手机的拨号键有大用处,不仅能用来打电话,还有4个隐藏功能
  3. 深度linux关闭搜狗后没法输入法,Deepin v20无法安装搜狗官方输入法 for Linux,附原因和解决办法...
  4. Web前端开发-为网页元素添加阴影效果
  5. 未安装任何音频输出设备 解决方案
  6. Mothur3进阶_Mothur扩增子基因序列处理_数据比对、聚类及其处理评估
  7. Python GUI学习感想
  8. 局域网共享文件的方法
  9. 日程安排工具Calendso
  10. 动图gif怎么制作?制作方法你学会了吗?