异地组网(tailscale)

注:因为本人之前尝试了frpc穿透家里的设备想要试试异地组网访问家里的设备,而且不要钱,就写了这个。

1、准备(个人是很推荐tailscale

安装好tailscale软件就行其基本上支持市面上绝大多数设备。

2、为什么玩异地组网。

我们知道,一般我们玩nas这些的,都需要开通公网IP还要配置好一些列乱七八糟的配置,用这个软件我们就可以实现外部设备和家里的网络处于同一局域网下。

3、怎么搞

需要组网的设备下载好这个软件

注册号一个账号在网站Tailscale

在下载号软件的设备上登录你的账号就行了,你们就在同一局域网下了

没错就这么简单,都登录以后,你就可以在官网登录看到所有信息了

比如,这里的第一个是我的nas设备,后面那一串IP就是我nas的管理后台,其次这里还可以设置流量的进出口的流量都可以设置的。

组好后就像我这样就可以连接好设备了,整体网速还行,挺舒服的,主要是操作简单没有过多复杂的设置,而且不会破坏你原来的网络配置,你就相当于连接上了家里的网。

总结:这种方式还是很香的,没有复杂的操作,而且不要钱。

cookie的作用与获取

注:本文主要是介绍cookie,至于具体的使用方式不会过多介绍。

Cookie是网站用于记录你电脑/手机里的登录信息的东西,你可能看见过这个申请。

作用:

那么他是干什么的,我们知道,当我们访问有些网站时,他要登录,但是,当我们登录以后下次再访问相同的网站时,他就不需要我们再次登录了,这就是cookie的作用,是不是很方便。

而且,由于他是储存我们这个网站的登录信息,所以,我们可以调用它做各种各样的事情,比如之前介绍的openlist挂载网盘时,就是利用了这个cookie来识别你的软件登录信息的,因此,他也有风险,可以通过这个东西来盗取你的账号和密码,但是,网站一般的话都会保护好使用者的个人信息的,一些黑客也可以利用这个东西的,请保护好你的个人cookie

但是,这个也有一定的时间期限的,我们会发现,网站登录以后,过一段时间会喊你重新登录,这就是因为你的cookie失效了,所以,不用过度担心,他不是一成不变的。

获取:

这里以夸克网盘为例(其他的网站获取也大差不差):登陆好你的账号

右键检查或者按F12开启开发者模式

就会弹出这个界面

点击网络,开始是什么都没有的要手动刷新一下,就会有下面的东西

随便点击一个,我这里点击的是list,就会弹出一个界面找到cookie这就是我们要的东西了。

获取以后这个的使用就要你自己去开发了

这里就些一个简单的python的调用

import requests

ck = “cookie”
r = requests.get(“网站”, headers={“Cookie”: ck})
print(r.text)

这样就可以爬取你登录后的一些简单的网站信息,这也是最简单让机器人去通过登录的方式。

总结:如果你想去学爬虫那么,这个最简单的方法你必须要知道,这基本就是一些基础,希望你能学到吧。

cookie的作用与获取

注:本文主要是介绍cookie,至于具体的使用方式不会过多介绍。

Cookie是网站用于记录你电脑/手机里的登录信息的东西,你可能看见过这个申请。

作用:

那么他是干什么的,我们知道,当我们访问有些网站时,他要登录,但是,当我们登录以后下次再访问相同的网站时,他就不需要我们再次登录了,这就是cookie的作用,是不是很方便。

而且,由于他是储存我们这个网站的登录信息,所以,我们可以调用它做各种各样的事情,比如之前介绍的openlist挂载网盘时,就是利用了这个cookie来识别你的软件登录信息的,因此,他也有风险,可以通过这个东西来盗取你的账号和密码,但是,网站一般的话都会保护好使用者的个人信息的,一些黑客也可以利用这个东西的,请保护好你的个人cookie

但是,这个也有一定的时间期限的,我们会发现,网站登录以后,过一段时间会喊你重新登录,这就是因为你的cookie失效了,所以,不用过度担心,他不是一成不变的。

获取:

这里以夸克网盘为例(其他的网站获取也大差不差):登陆好你的账号

右键检查或者按F12开启开发者模式

就会弹出这个界面

点击网络,开始是什么都没有的要手动刷新一下,就会有下面的东西

随便点击一个,我这里点击的是list,就会弹出一个界面找到cookie这就是我们要的东西了。

获取以后这个的使用就要你自己去开发了

这里就些一个简单的python的调用

import requests

ck = “cookie”
r = requests.get(“网站”, headers={“Cookie”: ck})
print(r.text)

这样就可以爬取你登录后的一些简单的网站信息,这也是最简单让机器人去通过登录的方式。

总结:如果你想去学爬虫那么,这个最简单的方法你必须要知道,这基本就是一些基础,希望你能学到吧。

BT种子下载

注:由于现在的传输文件的方式越来越多了,有的人可能就不太知道BT种子是什么了,这里介绍一下。我个人觉得这是互联网分享精神的体现,真的就是好人一生平安啊。

BT下载是怎么来的

最开始互联网下载文件,文件基本上都放在网站的服务器里面,所有人都从这一台服务器获取文件,而且早期上网带宽很低的,早年间上网的人就会有这种感觉,下载一个破资源为什么这么慢啊,我现在都记得,当时,下载一个资源有时候是要挂一下午的,当时就是很慢,而且其本身受到地域很多因素影响。

像我的那台云服务器只有10mbp的上下行,传文件慢的要死。1个G快半小时了,偶尔还断连,气得要死。

那么,既然网站的服务器传文件不行,可不可以让让用户和用户之间互相传文件,这就是BT
我们不需要大型储存服务器,每个使用这个BT种子的都是一个服务器,下载的人越多,速度就越快

运行的逻辑

有人拥有完整文件,BT程序软件会把整个文件切成许许多多大小一致的小碎片,根据这些碎片信息,生成一个很小的文件,就是BT种子。

种子里面没有视频、没有文件内容,只记录三件事:文件多大、碎片长什么样、全网哪些人正在下载这个资源。

普通下载软件看不懂这套规则,必须用专门的BT下载器(如qbittorrent,有的人也用迅雷),下载器读取种子,在网络中匹配到所有下载同一个资源的用户。

所有用户电脑里,都只拥有文件的一部分碎片,BT下载器会让所有人互相连通,互相交换碎片,你拿别人手上你没有的片段,别人也拿你手上他没有的片段,当你集齐全部碎片,软件自动拼接,形成完整文件。

文件下载完成后,你的设备也会自动上传碎片,变成资源的一部分,供给其他人下载,这样就比全部搞一个服务器快得多。

上传的原因
我们只要双方使用同一个种子、同一个BT协议下载,那么,下载软件会主动开放当前这个文件的碎片共享权限,大家只互通这一个文件的数据,而且电脑里其他所有文件完全隔离、无法访问,属于自愿互相传输,所以,不用特别担心自己文件有什么泄露的风险,这里真的不是拉踩迅雷,他有那个专门的下载链接,我个人觉的这违背了互联网的开源精神,我们的很多资源是大家分享出来的,不应该去搞什么专门的链接,以至于很多的BT种子资源网站都是把迅雷下载器给拉黑了的,我不太喜欢这种行为,但是,作为商业考量确实也不好说什么。

还有就是只有专门的BT下载器才能下载种子,一般下载器是不行的。

普通浏览器下载、普通下载工具,走的是网站服务器传输规则。

而BT是一套完全独立的点对点传输协议:

需要识别碎片,在全网匹配在线用户,然后互相上传、交换数据,最后,校验文件片段、拼接文件

普通下载软件看不懂这套语言的,只有专门的BT下载器,内置了这套传输规则,才能解析种子、完成下载。

影响BT下载速度的

做种人数(这是主要因素)
已经完整下完文件、并且在上传的人越多,速度越快,毕竟人家手里有完整的文件。
同时下载的人数(这个应该好理解吧
一起下载的人越多,碎片来源越多,可以同时从多个人接收数据,速度大幅提升。
别人的上传网速
别人愿意分给你的上传带宽,直接限制你的下载上限。但现在基本上都很快了吧,我都基本上没有听到那个人下载资源要半天了,当然没开会员的网盘不算,那是运营商的锅。
你自己的宽带速度
自身网速上限决定最快能跑到多少,简单说就是,人不行就别怪其他的了,你看看下载其他文件的速度和种子文件的速度就行。
网络运营商限制(这点是真的很蛋疼的)
大部分宽带运营商会限制BT传输,主动压低BT网速,就和跑pcdn一样,本质还是要吃运营商的带宽,其是很不喜欢这种行为的。
资源新旧热度(这就和上面说的差不多)
热门资源人多共享充足;老旧冷门资源没人留存碎片,下载缓慢甚至失败,这就是为什么BT种子资源失效的原因,但是,这我个人遇到的很少,也可能是我很少下载冷门资源的

总结:BT是把文件拆碎分散在每个用户设备,种子负责标记资源和找人,专用下载器负责连通用户、交换碎片,所有人互相传输拼凑文件,下载快慢完全取决于共享人数和上传情况,可以说只要有一个人还有这个BT种子的文件,那么,文件就还有备份,算是一种比较好的存文件的方式了吧。

提醒:当互联网上有人分享资源时,无论如何,请礼貌对待这个分享的陌生人,因为,有些资源是很难找的,人家愿意分享出来是处于帮助他人,这样互相帮助的互联网,才是最开始开发者的最初设想,请不要在网络上辱骂或者以命令的方式去要求他人,别人没有帮你的义务,好人一生平安,我觉得这是最好的网络语言了,也是支持这些无私分享者的坚持的动力,感谢这些无私的人。

BT种子下载

注:由于现在的传输文件的方式越来越多了,有的人可能就不太知道BT种子是什么了,这里介绍一下。我个人觉得这是互联网分享精神的体现,真的就是好人一生平安啊。

BT下载是怎么来的

最开始互联网下载文件,文件基本上都放在网站的服务器里面,所有人都从这一台服务器获取文件,而且早期上网带宽很低的,早年间上网的人就会有这种感觉,下载一个破资源为什么这么慢啊,我现在都记得,当时,下载一个资源有时候是要挂一下午的,当时就是很慢,而且其本身受到地域很多因素影响。

像我的那台云服务器只有10mbp的上下行,传文件慢的要死。1个G快半小时了,偶尔还断连,气得要死。

那么,既然网站的服务器传文件不行,可不可以让让用户和用户之间互相传文件,这就是BT
我们不需要大型储存服务器,每个使用这个BT种子的都是一个服务器,下载的人越多,速度就越快

运行的逻辑

有人拥有完整文件,BT程序软件会把整个文件切成许许多多大小一致的小碎片,根据这些碎片信息,生成一个很小的文件,就是BT种子。

种子里面没有视频、没有文件内容,只记录三件事:文件多大、碎片长什么样、全网哪些人正在下载这个资源。

普通下载软件看不懂这套规则,必须用专门的BT下载器(如qbittorrent,有的人也用迅雷),下载器读取种子,在网络中匹配到所有下载同一个资源的用户。

所有用户电脑里,都只拥有文件的一部分碎片,BT下载器会让所有人互相连通,互相交换碎片,你拿别人手上你没有的片段,别人也拿你手上他没有的片段,当你集齐全部碎片,软件自动拼接,形成完整文件。

文件下载完成后,你的设备也会自动上传碎片,变成资源的一部分,供给其他人下载,这样就比全部搞一个服务器快得多。

上传的原因
我们只要双方使用同一个种子、同一个BT协议下载,那么,下载软件会主动开放当前这个文件的碎片共享权限,大家只互通这一个文件的数据,而且电脑里其他所有文件完全隔离、无法访问,属于自愿互相传输,所以,不用特别担心自己文件有什么泄露的风险,这里真的不是拉踩迅雷,他有那个专门的下载链接,我个人觉的这违背了互联网的开源精神,我们的很多资源是大家分享出来的,不应该去搞什么专门的链接,以至于很多的BT种子资源网站都是把迅雷下载器给拉黑了的,我不太喜欢这种行为,但是,作为商业考量确实也不好说什么。

还有就是只有专门的BT下载器才能下载种子,一般下载器是不行的。

普通浏览器下载、普通下载工具,走的是网站服务器传输规则。

而BT是一套完全独立的点对点传输协议:

需要识别碎片,在全网匹配在线用户,然后互相上传、交换数据,最后,校验文件片段、拼接文件

普通下载软件看不懂这套语言的,只有专门的BT下载器,内置了这套传输规则,才能解析种子、完成下载。

影响BT下载速度的

做种人数(这是主要因素)
已经完整下完文件、并且在上传的人越多,速度越快,毕竟人家手里有完整的文件。
同时下载的人数(这个应该好理解吧
一起下载的人越多,碎片来源越多,可以同时从多个人接收数据,速度大幅提升。
别人的上传网速
别人愿意分给你的上传带宽,直接限制你的下载上限。但现在基本上都很快了吧,我都基本上没有听到那个人下载资源要半天了,当然没开会员的网盘不算,那是运营商的锅。
你自己的宽带速度
自身网速上限决定最快能跑到多少,简单说就是,人不行就别怪其他的了,你看看下载其他文件的速度和种子文件的速度就行。
网络运营商限制(这点是真的很蛋疼的)
大部分宽带运营商会限制BT传输,主动压低BT网速,就和跑pcdn一样,本质还是要吃运营商的带宽,其是很不喜欢这种行为的。
资源新旧热度(这就和上面说的差不多)
热门资源人多共享充足;老旧冷门资源没人留存碎片,下载缓慢甚至失败,这就是为什么BT种子资源失效的原因,但是,这我个人遇到的很少,也可能是我很少下载冷门资源的

总结:BT是把文件拆碎分散在每个用户设备,种子负责标记资源和找人,专用下载器负责连通用户、交换碎片,所有人互相传输拼凑文件,下载快慢完全取决于共享人数和上传情况,可以说只要有一个人还有这个BT种子的文件,那么,文件就还有备份,算是一种比较好的存文件的方式了吧。

提醒:当互联网上有人分享资源时,无论如何,请礼貌对待这个分享的陌生人,因为,有些资源是很难找的,人家愿意分享出来是处于帮助他人,这样互相帮助的互联网,才是最开始开发者的最初设想,请不要在网络上辱骂或者以命令的方式去要求他人,别人没有帮你的义务,好人一生平安,我觉得这是最好的网络语言了,也是支持这些无私分享者的坚持的动力,感谢这些无私的人。

python基础(会看报错)

注:这里就只讲一些简单常见的报错问题及其情况,帮助人查看理解,具体的情况还要具体分析,因为报错的情况太多了。

基本的错误代码:

IndentationError: expected an indented block

原因:冒号下面没有空格缩进,代码没往右挪
解决:冒号下一行统一缩进4个空格

SyntaxError: invalid syntax

原因:中文逗号、中文引号、中文冒号、少标点、格式乱
解决:所有符号全部切换英文输入法

NameError: name ‘xxx’ is not defined

原因:变量、函数名字没提前写,直接拿来用
解决:先定义,再使用

IndexError: string index out of range

原因:字符串、列表取值数字太大,没有这个位置
解决:下标从0开始,数字写小一点

KeyError

原因:字典里面没有你写的这个名字,单词写错
解决:核对字典关键字,一字不差

TypeError: object of type ‘int’ has no len()

原因:给数字用len()、下标取值

解决:len只能用文字、列表,不能用数字

TypeError: can only concatenate str (not “int”) to str

原因:文字和数字直接相加拼接
解决:不要字符串和数字混着相加

TypeError: missing 1 required positional argument

原因:函数有参数,调用的时候括号空着没传东西
解决:调用括号里填上内容

TypeError: takes 0 arguments but 1 was given

原因:函数没有参数,调用时多写了内容
解决:调用括号清空

NameError: name ‘fun’ is not defined

原因:先调用函数,后面才写def函数
解决:从上到下,先定义函数,再调用

SyntaxError

原因:定义函数括号里写带引号内容
解决:def括号只写名字,引号内容写在调用那里

IndentationError: unindent does not match

原因:缩进一会大一会小,空格很乱
解决:全部对齐,缩进大小统一

TypeError: unsupported operand type

原因:两个不能加减的数据强行运算
解决:换成相同类型数据计算

代码不报错,运行空白啥都不出来

原因:只写了函数,没有调用函数
解决:最后一行加上 函数名()

SyntaxError: EOL while scanning string literal

原因:引号只写了一半,少半边引号
解决:引号左右成对写完整

TypeError: len() takes exactly one argument

原因:len括号里多写、少写内容
解决:len()里面只放一个数据

总结:基本上我认为大致就这些东西了,然后,后面就看你自己还要学什么了,这些都只是教你入个门,一些基本的你应该也可以看懂了,后面就是研究别人的代码,要学更多的就涉及到导入一些第三方库了,基本上每一个库就够单开一个专门介绍了,后面可能会介绍一些,但是,我就只教个入门,毕竟我也没有系统学过这,只是一些我自己根据网上的教学总结的一些东西罢了,反正是要什么去学什么,只要达到目的就行,又不是真的要了解的很牛,记住所有的代码都只是你达到目的的工具,不要被他束缚了,只要能跑就是好代码。

拓展:Python自带功能有限,想要实现更多功能,需要第三方库
第三方库不属于自带内容,需要手动安装、引入使用

引入是import 库名

安装是在终端输入pip install 库 (当然可能会因为网络安装不行,请自己去配网络镜像,清华源这些)

当然这就不是本人要说的内容,主要就推荐常见的几个库自己去学吧

pygame游戏库、random 随机库、time 时间库、turtle 画图库、pywin32自动化、pyautogui自动化、requests 网络请求库、pillow 图片处理库、

自己去学就行,网上有不少教程,希望我写的这些对你有帮助,越来越好。

python基础(函数)

注:函数就是把一段重复要用的代码,打包封装起来,你写好一次,后面想用,直接一句话调用就行,不用反反复复复制粘贴一模一样的代码,简直就是懒人的福音。 简化代码,不用重复写大段一模一样的代码,前面学的字符串、列表、所有操作,全都可以放进函数里打包,而且,你定义好了,后面代码也会美观简洁很多。

1、定义一个基础函数

def fun(你要给这个函数起的名字):
print(“函数”)  

解释:
 def  是固定开头,用来告诉程序,我要打包一个函数
括号+冒号必须带,下面缩进里,放你所有要打包的代码

注意:

1. def后面必须空格,再写函数名字
2. 末尾必须加英文冒号
3. 函数里面的代码,必须全部缩进,和你之前学的缩进规则完全通用

2、调用运行函数

fun()  

解释:
你打包好代码之后,直接写函数名字+括号
程序就会自动运行你里面打包的所有代码

注意事项:
必须先定义函数,再调用函数
不能先调用、再写函数,直接爆红报错

3、函数传入参数

def fun(name):
print(name)

fun(“小苏”)  

解释:
括号里的东西,就是你可以往函数里传进去的内容
每次调用,可以传入不一样的数据

注意事项:
括号里有几个参数,调用的时候就要传几个内容,数量必须对上

4、函数返回值 return

def fun(a,b):
return a+b  

解释:
把函数里面计算出来的结果,丢出函数外面
可以拿到结果、继续拿去二次使用

简单来说就是计算器的结果拿去二次使用,但是这里的结果是输出结果不一定是计算的数字结果。

注意事项:
1、代码遇到return,会直接结束函数运行
2、return后面的内容,不会再执行

函数整体要注意的是

1. 所有符号全部必须是英文符号
2. 函数内部代码,严格遵守缩进规则
3. 永远:先定义函数,再调用函数
4. 函数名字不能用中文、不能用特殊符号
5. 参数数量,调用和定义必须一一对应

总结:以上就是大致的有关函数的简单知识了。

python的教程(缩进)

Python的缩进,就是代码行开头空出来的空格,专门用来告诉程序哪里是该这个程序管理,那段不该他管理,如果你下载了IDE基本上按一下tab就能补全,但这里我们还是要学,因为,这些是最基础的,只有学好了才能真正的去看懂一些代码,知道他们的逻辑,tab只是帮助我们不去重复做一个事情罢了。

1、if 判断语句 缩进规范

格式

if 条件:
执行内容
elif 条件:
执行内容
else:
执行内容

注意

(1)if/elif/else 末尾必须带冒号

(2)冒号下一行必须缩进4个空格

(3)同一层级代码缩进必须完全对齐

2、while 循环 缩进规范

格式
 while 循环条件:
循环内执行内容

注意

(1)while 末尾必须带冒号

(2)循环内所有代码统一缩进4个空格

(3)循环结束后代码取消缩进

3、for 循环 缩进规范

格式

for 变量 in 循环范围:
循环内执行内容

注意:

(1)for 末尾必须带冒号

(2)循环内代码(包括break/continue)必须缩进4个空格

(3)循环结束后代码取消缩进

4、def 自定义函数 缩进规范

格式

def 函数名():
函数内执行内容

注意

(1)def 末尾必须带冒号

(2)函数内所有代码统一缩进4个空格

(3)函数调用代码顶格写,不缩进

5、try-except 异常处理 缩进规范

标准缩进格式

try:
尝试执行的代码
except:
出错后执行的代码
 注意

(1)try/except 末尾必须带冒号

(2)对应代码块必须缩进4个空格

6、with 语句 缩进规范

格式

with 操作 as 变量:
执行代码
 注意

(1)with 末尾必须带冒号

(2)内部代码必须缩进4个空格

7、class 类 缩进规范

格式

class 类名:
类内部代码
def 类方法(self):
方法内部代码
 注意

(1)class 末尾必须带冒号

(2) 类内部代码缩进4个空格

(3) 类里的方法,内部代码再额外缩进4个空格

8、嵌套语法 缩进规范

格式

外层语句:
内层语句:
最内层执行代码
 注意

(1)每嵌套一层,就多缩进4个空格

(2)同一层级代码缩进必须完全一致

所有语法通用缩进规则

1. 标准缩进固定为 4个空格。
2. 只要代码末尾带冒号 : ,下一行必须缩进。
3. 同一个代码块,缩进空格数量必须完全相同。
4. 不要Tab键和空格混合使用,这是不好的习惯。
5. 代码块结束,必须取消缩进,回到上一层级。

但是,一般情况下,我自己是直接按tab进行自动缩进就行,我不太爱管这些,自己养成好习惯吧,本人已经改不过来了。

python的基础(列表+字典)

注:列表就是一个大盒子,可以一次性装一大堆东西,文字、数字、中文、字母,啥都能往里面放,想想你读书时被的书包,差不多就可以理解了,字典应该可以理解吧,就是我们用来查找东西的。

之前字符串只能存单独一段文字,列表可以一次性存一整组、一大堆数据,平时班级名单、商品清单、账号列表,全都是用列表,就像excel表格一样。

列表

list1 = [“小明”,18,”男生”]  

解释:
中括号  []  包起来的,就是列表
一个盒子里,同时装了名字、年龄、性别

1.列表下标取值

a = [“小明”,18,”男生”]
print(a[0])  

解释:
和字符串规则完全一模一样
盒子里每个东西,位置从0开始数,精准拿出里面任意一个内容

这里输出的就是小明

注意事项:

1. 下标永远从0开始,不是1
2. 数字不能超出盒子里东西的总数,否则直接报错

2.列表添加数据

a.append(“西瓜”)  

解释:
往盒子最后面,新加一个东西放进去

注意事项:
只能往末尾添加,不能插在中间

3.列表删除数据

a.remove(“苹果”)  

解释:
在盒子里,删掉你指定的某一个东西

注意事项:
删除的内容必须盒子里存在,不存在会爆红报错

4.列表修改数据

a[0] = “榴莲”  

解释:
找到对应位置,直接换掉盒子里原来的东西

注意事项:
下标位置一定要写对

字典

字典就是带标签的盒子,东西都是成对出现的,一边是名字标签,一边是对应内容,一一对应

列表只有东西,分不清谁是谁,字典可以精准对应信息,比如一个人的所有信息、账号密码、个人资料,全部用字典存储

dic = {“名字”:”小明”,”年龄”:18}  

解释:
大括号  {}  包起来,键值对格式
左边是标签,右边是这个标签对应的信息

1.字典取值

dic[“名字”]  

解释:
通过左边的标签,直接拿出右边对应的内容

注意事项:
标签名字必须一模一样,写错一个字直接报错

2.字典添加和修改

dic[“性别”] = “男”  

解释:
标签不存在,就是新加内容
标签已经存在,就是直接改掉原来的内容

3.字典删除内容

del dic[“年龄”]  

解释:
直接删掉这一整组标签+信息

注意:

1. 列表  []  、字典  {}  符号千万不要搞混
2. 列表靠数字下标找东西,字典靠标签名字找东西
3. 里面所有符号,全部必须是英文符号
4. 列表可以重复放一样的东西,字典标签名字不能重复

总结:这些都是之后学习必要的基础。

python的教程(基础语法)

1、注释

代码里给自己看的笔记,不然自己写了什么东西都看不懂。
程序看到注释就直接跳过,不会运行这一行,方便我们看不爽那行代码不爱删了就注释就行

单行注释

多行注释可以写很多行,都不会运行的

“””  

2、print() 输出语句

把东西显示在屏幕上

print(内容)

输出文字、汉字、句子文字必须加英文双引号 “”

print(“你好世界”)

输出数字

数字不需要加引号

print(666)  

3、变量(这里基本就是核心了,必须搞清楚)

变量 = 一个小盒子
专门用来存放东西、保存数据

变量名字 = 存放的数据

= 不是等于号,是放入和装进
把右边的数据,装进左边的盒子里

四种最基础数据类型(盒子分4种)

(1)整数 int

存放 没有小数点的数字

age = 18

(2)浮点数 float

存放 带小数点的小数

height = 1.66

(3)字符串 str

存放 所有汉字、字母、句子、符号
必须带上英文引号 “” ‘’

name = “小苏”

(4)布尔类型 bool

只有固定两个单词

True  = 对、正确、成立

False  = 错、错误、不成立

例如

a = True
b = False  

专门用来判断对错,我个人觉得多用于写那些破循环用来判断对错,这么理解就行。

使用变量(通过这种方式,我们就可以直接很简短的用我们自己定义好的东西,就不用重复很长一段了)

盒子存好东西,想用就打印出来

print(name)
print(age)
这里会输出你定义的东西

变量取名规则

(1)只能写:字母、数字、下划线 _一般命名建议用英文如果有好几段就用_来连接一般是最基础的命名规则。如book_name 相信你通过这种方式可以看懂了吧书的名字。
(2)不能用数字开头
(3)不能有空格、汉字、特殊符号 ! @ #
(4)大写小写不一样 A 和 a 是两个盒子
(5)名字简单易懂,age年龄 name名字

4、type() 查看数据类型

print(type(age))

当你不知道这个盒子里是什么类型
用这个代码一看就知道
是数字?小数?还是文字?

其最后输出是

<class ‘上面的字符’>你看一眼就知道其是什么数据类型了。

(5)算术运算符 加减乘除

+加法

-减法

*乘法

/ 除法

// 整除(只保留整数部分,不要小数)

% 取余数(除法剩下多少)

** 次方 (print(3**2))3的二次方简单吧  

让程序自动算数学题,数学计算这个应该不需要我介绍了吧

6、input() 输入

name = input(“请输入名字:”)  

print 是程序往外吐东西
input 是我们人往程序里打字输入东西

只要运行,页面会出现方框让你写字
你输入什么,变量就存什么

如上面那个他会显示请输入你的名字:

你这里就在窗口里输入什么他就会记住什么,当然程序停止的你输入的东西就会没有的,因为我们没有搞他的记忆功能,这里的name的变量就是我们输入的东西

7、比较运算符 判断大小对错

大于
< 小于
= 大于等于
<= 小于等于
== 判断两边是否相等
!= 判断两边是否不相等  

运算结果只会出现两个:True 或者 False
专门给后面判断语句使用,记得这些符号我个人觉的其实就差不多了。

8、逻辑运算符(这个你学过基础的英文应该都可以看懂的)

and  并且 两边都对才是对

or  或者 一边对就是对

not  反过来 对变错,错变对

9、if 判断语句(做选择)

中文就是如果……就……

if 条件:
条件成立就执行这里
else:
条件不成立就执行这里
让程序有选择能力
比如:大于18输出成年,小于18输出未成年

多条件判断

if 条件1:

elif 条件2:

else:  

多个情况挨个判断,这里条件要由松到严

10、while 循环(一般是很常用的东西)

作用:重复不停跑代码
只要条件是 True 正确,就一直循环
条件变成 False 立刻停止

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

解释:

 i一开始是1
判断1小于5,正确
打印i
i变大1
继续判断,直到i大于5停止

11、for 循环

简单固定次数循环(毕竟你需要循环,但是不可能有的循环循环一辈子吧)

for i in range(5):
print(i)  

range(5) 代表循环 5次

循环两个控制关键词

break  直接彻底结束整个循环

continue  跳过当前这一次,直接下一轮

12、列表 list 中括号 []

num = [1,2,3,4,5]  

一个盒子装一大堆数据
可以同时放数字、文字

取值:

print(num[0])  

注:程序从0开始数第一个
第1个数据下标是0
第2个是1

这里相当于取的值就是上面的1,其最后输出的值就是1

13、字典 dict 大括号 {}

info = {“name”:”小明”}  

一一对应存放信息
名字对应人,年龄对应数字
方便查找个人信息

比如上面那个如果再写print(info[“name”])输出的就是小明

14、自定义函数 def

def hello():
print(“你好”)

hello()  

把一堆代码打包成一个功能
以后想用,只需要写名字调用
不用一遍一遍复制粘贴代码

比如上面这个就是把print(“你好”)打包成了hello(),写好了,后面要这个功能就直接写hello()就行了。

总结:大致认识这些其实我个人觉得就差不多了,虽然看着不多但是一定要记住,这些基本上就是很基础的东西了,你可以在pycharm一个个的试,很有成就感的,最开始我们学习一定要会抄,这样你才会慢慢脑子里有自己的想法。