卷起来啊,未末家的张先生(初章)

1、Python简介

(1)跨平台
(2)解释型语言(不需要编译),区别于Java,Java代码需要先编译,才能运行
(3)交互式语言
(4)面向对象语言

2、Python开发环境搭建

python是一门解释型语言,故需要安装python解释器
IDLE:python自带的开发工具
Python 3.8:命令行工具(交互式编程)
Python3.8 Manuals:技术文档
Python 3.8 Module:Python已安装的模块的文档
小知识:

  • 快捷打开目录:windows+e
  • python中的逻辑运算是使用英文的:and、or、not
  • python中"+"作为连接符使用时需要连接的数据类型相同
  • 查看python库版本:python --version 或python -V

2.1 python标准库和扩展库

python标准库:Lib目录下
python扩展库(第三方库):Lib/site-packages目录下

3、PyCharm的安装与使用

小技巧:python文件模板设置路径:Settings-Editor-File and Code Template

4、print函数的使用

print(1, '10')         #1 10,默认使用空格隔开
print(1 + 'Hello')       #错误,int类型和str类型不可以使用 + 操作符
print('Hello',end='')  #不换行打印输出:HelloWorld
print('World')

小知识:

  • 十进制数转换成各种进制,除以各种进制的数,直到商为0,倒着取数
  • SyntaxError:语法错误
0b开头:二进制
0o开头:八进制
0x开头:十六进制
bin(n):将十进制转换成二进制
oct(n):将十进制转换成八进制
hex(n):将十进制转换成十六进制

5、转义字符

即反斜杠+想要实现的转义功能首字母
转义字符的作用:当字符串中包含反斜杠、单引号和双引号等有特殊用途的字符时,必须使用反斜杠对这些字符进行转义。
例如:
换行:\n
回车:\r
tab水平制表符:\t,4个空格的位置,占据一个制表位

print('123\t456')
print('1234\t567')

不希望转义字符起作用,在字符串前加上字母R,大小写均可。

print(r'123456\n789')  #123456\n789

6、二进制与字符编码

1TB = 1024GB
1GB = 1024MB
1MB = 1024kB
1KB = 1024byte
1Byte = 8bit

计算机是由逻辑电路组成的,它只能区分0和1
为了让计算机认识并区分更多的东西,将一些符号和数字进行对应,然后做成一张ASCII表,告诉计算机某个符号需要使用哪个整数表示。例如大写字母’A’用十进制65表示
通俗易懂的解释:编码表就是规定了哪一个字符用哪一个数字去表示

例如:'乘'这个汉字再在计算机中的表示
print(chr(0b100111001011000))print(ord('乘'))

7、Python中的标识符和保留字

import keywordprint(keyword.kwlist)

标识符:变量,函数,类,模块的名字就叫标识符
规则:

  • 字母、数字和下划线组成
  • 不能以数字开头
  • 不能是已存在的保留字
  • 区分大小写

8、变量的定义和使用


变量由三部分组成:
(1)内存地址:表示对象存储在计算机中的地址,使用内置函数id(obj)来获取
(2)类型:表示的是对象的数据类型,使用内置函数type(obj)来获取
(3)值:表示对象所存储的具体数据,使用print(obj)可以将值进行打印输出
内存图:name实际上存储的是对象的二进制的内存地址,指向自身存储的二进制内存地址所对应的对象

9、变量的多次赋值

例如:

#n赋初始值为3,实际上是将3这个对象的内存地址赋值给了n这个变量(引用)
n = 3
#n又被赋值为4,实际上是将4这个对象的内存地址赋值给了n这个变量(引用),n被重新赋值,故n指向的内存地址由3变成了4
n = 4

10、常用的数据类型

常用的数据类型:
(1)整数类型int:98
(2)浮点数类型float:3.14159
(3)布尔类型bool:True、False
(4)字符串类型str:‘Hello World’,“扶摇”

11、整数类型

英文为Integer,简写为int,可以表示正数、负数和零
整数的不同进制表示方式:
十进制:默认的进制
二进制:以0b开头
八进制:以0o开头
十六进制:以0x开头

12、浮点类型

浮点数由整数部分和小数部分组成
浮点数存储不精确性:使用浮点数进行计算时,可能会出现小数位数不确定的情况

13、布尔类型

用来表示真或假的值
True表示真,False表示假
布尔值可以转化为整数:True:1 False:0,故可以将整数类型和布尔类型直接相加,不需要转换

print(True + 1)     #2
print(False + 1)   #1

14、字符串类型

#s1,s2,s3的内存地址是相同的,即是同一个对象
s1 = 'hello'
s2 = s1
s3 = 'hello'理解:s1和s2的内存地址相同,s1 = 'hello',将对象'hello'的内存地址赋值给引用s1,s2 = s1,将s1的内存地址赋值给s2

小知识:

  • s1,s2,s3内存地址相同的原因是因为字符串的驻留机制
    字符串类型又被称为不可变字符序列
    可以使用单引号、双引号、三引号来定义
    单引号和双引号定义的字符串必须在一行
    三引号定义的字符串可以分布在连续的多行

  • 不可变类型:当该数据类型的变量的值发生了改变,它所对应的内存地址也会发生改变,称为不可变类型

  • 可变类型:当该数据类型的变量的值发生了改变,它所对应的内存地址不会发生改变,称为可变类型

15、数据类型转换

为什么需要数据类型转换?
将不同数据类型的数据拼接在一起

str():将其它类型转成字符串str类型,例如:int类型、float类型、bool类型
int():将其它类型转换成整数int类型,例如:float类型、str类型、bool类型

注意:1、文字类和小数类字符串无法转化成整数 2、浮点数转换成整数,抹零取整
float():将其它类型转换成浮点数float类型,例如:int类型、str类型、bool类型 注意:整数转换成浮点数,末尾为.0

16、Python中的注释

注释:
注释的内容会被python解释器忽略

三种类型的注释:
单行注释:以井号’#‘开头
多行注释:’''三引号包围起来
中文编码声明注释:在文件开头加上中文声明注释,用以指定源码文件的编码格式(Python3不使用了)

17、input函数的使用


注意:input()函数返回值的类型也是str

name = input('请输入你的姓名:')  #未末家的张先生print(name)                     #未末家的张先生
print(type(name))               #<class,'str'>

18、Python中的运算符

加减乘除:+、—、*、/
整除://
模运算符(取余运算符):%
幂运算符号:**

print(1 / 2) #0.5
print(11 // 5)  #2
print(11 // 2)  #5
print(2 ** 3)   #8

注意:
(1)整除时一正一负向下取整,例如:9 // -2 = -5 -9 // 2 = -5
(2)模运算一正一负要用公式计算:余数 = 被除数 - 除数 * (整除的商),计算商时需要带符号计算

例如:9 % -2 = 9 - (-2) * (9 // -2) = -1

19、赋值运算符

赋值运算符的执行顺序是从右往左,例如:a = 10,正确解读是将3的值赋值给a,常识说a = 3是不那么合理的。从编程角度准确的来讲应该是将对象10的内存地址赋值给a

#a,b,c的内存地址是一样的
a = 10
b = 10
c = 10print(id(a))
print(id(b))
print(id(c))

理解:计算机在内存中给10这个对象开辟了一块内存空间,a,b,c三个引用分别指向10这个对象的内存空间(变量存储的实际是对象的内存地址,用于指向对象所在的内存空间),因此a,b,c这三个引用所存储的内存地址是一样的,都是10这个对象的内存地址

20、比较运算符

==比较的是对象的值
is比较的是对象的内存地址(即比较是不是同一个对象)
比较的结果是一个布尔值

a = 10b = 10print(a == b)    #true
print(a is b)   #true

21、布尔运算符

and:与运算符
or:或运算符
not:非运算符

in和not in:成员运算符:测试给定值是否为序列中的成员,例如字符串,列表或元组

str = 'hello'print('h' in str)  #区分大小写

22、位运算符

&:按位与运算符
|:按位或运算符
^:按位异或运算符,相同为0,相反为1
~:按位取反运算符
<<:左移位运算符
右移位运算符:>>

后续需要把负数考虑在内:负数的按位与、按位或、左移、右移

小知识:
int类型的整数一般是占用4个字节,即32个比特位(1个比特位表示一位二进制数),即会用32位二进制数存储一个int类型的数据,(二进制的最高位)最前面一位数表示符号位,正数为0,负数为1

  • 计算机中用补码表示二进制数,正数的原码、反码、补码都相同,负数的补码 = 正数的原码取反后+1

    • 已知负数的补码,求二进制数:即补码 - 1,取反,取绝对值
    • +5在计算机中表示为:0000 …… 0000 0101
    • -5 在计算机中表示为:1111 …… 1111 1011
  • 负数的原码为该数对应的无符号数的二进制,将首位置1
  • 原码:0110
  • 反码:1001
  • 补码:反码+1,即1010

二进制,有符号数,首位为1的表示负数,首位为0的表示整数
无符号数没有正负数之分,所以也没有首位的限制

23、运算符的优先级

编码时可以用括号括起来清晰易懂

24、程序的组织结构-顺序结构

程序代码的执行是一行一行按顺序往下执行的
任何简单或者复杂的算法都是由:顺序结构、选择结构和循环结构这三种基本结构组合而成

25、对象的布尔值

Python中一切皆对象,所有的对象都有一个布尔值,获取对象的布尔值使用内置函数:bool()

以下对象的布尔值为False:False、数值0, 0.0、None、空字符串、空列表、空元组、空字典、空集合
除了上述的其它对象的bool值均为True

26、分支结构

#(1)单个if:if 条件表达式:条件执行体#(2)if...else:if 条件表达式:条件执行体1else:条件执行体2#(3)if...elif...elif...else:if 条件表达式1:条件执行体1elif 条件表达式2:条件执行体2elif 条件表达式3:条件执行体3else:执行体4#(4)嵌套if:if 外层条件表达式:if 内层条件表达式:内层条件执行体1else:内层条件执行体2
else:外层条件执行体

小知识:
random模块:有许多产生随机数的方法,例如randint(start,end):产生一个[start,end]的随机数

27、条件表达式

条件表达式是if…else…的缩写
语法结构:x if 条件表达式 else y

运算规则:如果判断条件的布尔值为True,条件表达式的返回值为x,否则条件表达式的返回值为y

a = 1 if 1 < 2 else 0

28、pass语句

29、内置函数range()

range函数在不指定初始值的情况下,默认生成的序列是从0开始的。序列的每个元素都是int类型的整数

range函数产生<class,range>类型的数据,range数据存储了一个个int类型的数据(相当于只能存储int类型的数组)

30、循环结构-while

#打印1-9
a = 1
while a < 10:print(a)a += 1    #计算1-100的和
a = 1
sum = 0
while a <= 100:     sum += aa += 1

31、循环结构-for…in…

#遍历字符串
for item in 'Hello':print(item)#遍历range序列
for item in range(1,10):print(item)#计算1-100的偶数
sum = 0
for item in range(1,101):if item % 2 == 0:sum += item
print(sum)

练习题:求100-1000的水仙花数

for item in range(1,1001):a = item % 10         #个位数字b = item % 100 // 10  #十位数字,注意十位数字比较容易求错c = item // 100          #百位数字if a**3 + b**3 + c**3 == itemprint(item)

小知识:

  • for…else语句:for循环结束执行时(全部执行完没有遇到break结束循环),执行else语句,可以在else语句中打印循环体结束后的item,如果有break语句提前结束循环,则不进入else分支。
  • while…else和for…else同理
  • 什么时候用while,什么时候用for:
    • 循环次数已知,用for
    • 循环次数不确定,用while

32、流程控制语句break

for item in range(1,4):pwd = input("请输入你的密码:")if pwd == '811169':print('密码正确')breakelse:print('密码错误,请重新输入')

33、流程控制语句continue

#输出1-50之间所有5的倍数
for item in range(1,51):if item % 5 != 0:continueelse:print(item)

continue和break总结:continue用于跳过当前循环体这一次的循环执行,开始执行下一次。而break是退出当前循环体

34、else语句

while循环和for循环正常运行完,在没有遇到break语句时执行else

35、嵌套循环(二重循环)

循环结构中又嵌套了另外的完整的循环结构,其中内层循环作为外层循环的循环体执行

核心:外层循环控制行与换行,内层循环控制列

二重循环打印指定图形的时候,先找出行和列的个数关系,进而确定外层循环的次数和内层循环次数之间的关系

(1)九九乘法表

for item1 in range(1,10):for item2 in range(1,item1 + 1):print(item2,'*',item1,'=',str(item1*item2),end="\t")print()

36、二重循环中的break和continue

continue和break总结:continue用于跳过当前循环体这一次的循环执行,开始执行下一次。而break是退出当前循环体

01卷起来啊,未末家的张先生(初章)相关推荐

  1. 卷起来啊,未末家的张先生(初章)

    卷起来啊,未末家的张先生(初章) 1.Python简介 (1)跨平台 (2)解释型语言(不需要编译),区别于Java,Java代码需要先编译,才能运行 (3)交互式语言 (4)面向对象语言 2.Pyt ...

  2. 不想卷了?这几家“养老型”互联网公司了解一下

    你最向往什么样的公司? 薪资高?福利多?还是稳定,没有996? 最近,小编刷到一个求WLB公司的帖子(WLB:work.life.balance缩写,指可以平衡工作和生活的公司),发现"钱要 ...

  3. ChinaSkills-网络系统管理(2022年全国职业院校技能大赛-模块C-网络构建-01卷-真题 )

    2022 年全国职业院校技能大赛 网络系统管理赛项 模块 A:网络构建 卷 I 目录 考试说明 .................................................... ...

  4. Python 小项目 01 爬虫项目 爬取链家网南京地区二手房信息

    SpiderLianjia 介绍 python爬虫小程序,爬取链家网南京地区普通住宅二手房数据. 代码下载: https://gitee.com/lihaogn/SpiderLianjia 1 程序设 ...

  5. Java修炼之凡界篇 筑基期 第01卷 入门 第04话 JDK JRE JVM

    JDK JRE JVM JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK), 在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里 ...

  6. Java修炼之凡界篇 筑基期 第01卷 入门 番外3 认识IDE和IDEA

    认识IDE和IDEA 什么是IDE 集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器.编译器.调试器和 ...

  7. 为了养成NLP卷王,我画了一张路线图

    又到了一年一度的校招季,与往年不同,受各种事件综合作用的影响,今年的校招季让很多应届生感到额外的寒冷和不安. 但换个角度来说,企业主每年都会嚷嚷着算法岗人才供不应求.当然这里不是说应聘的人不够多,而是 ...

  8. TA课程笔记01——光照(主要为shader入门精要第六章)

    //老师在这里简单的简述了一下渲染流水线,我在之前的图形学笔记中很详细的讲述了渲染流水线的过程,便不再赘述 //因为老师很详细的将几种常见的光照模型都讲了一遍,但都是美术方向,前面的案例也都缺少代码, ...

  9. Android深度探索(卷1)HAL与驱动开发--读书笔记(第一章)

    Android系统架构是由四层构成,第一层为Linux内核,主要包括Linux驱动程序以及内存管理.进程管理.电源管理的等程序.并且不同的Android的版本的驱动可能并不通用.第二层为C/C++代码 ...

最新文章

  1. RabbitMQ (五)实现类似Dubbo的RPC调用
  2. me21n增强BADI:ME_PROCESS_PO_CUST之process_account
  3. Ubuntu开放指定端口
  4. 最近和朋友微信卖螃蟹有点偏离重心了
  5. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·010【高级查询】
  6. 第七章实验报告(数组实验)
  7. php批量打印页面,SETE批量打印
  8. 2021年国家HW行动部分0day漏洞复现
  9. ERP软件厂商薪资情况披露
  10. pycharm:Updating Indices 解决办法
  11. [亲测可用] Mac PS CC2019软件下载详细安装教程
  12. 【物理世界】Ψ的前世今生
  13. 〇、什么是全栈工程师
  14. 获取IFeatureWorkspace所有要素类、表
  15. 执行股票交易接口get提交方法如何获取三大指数的股票列表?
  16. android多线程讲解与实例
  17. Linux 安装仿宋字体
  18. 《CUDA高性能并行计算》----1.4 推荐项目
  19. 计算机里面有鬼的恐怖游戏,胆小勿入!盘点史上十大最恐怖电脑游戏
  20. cxp文件查看 欧姆龙_cxp格式怎么打开

热门文章

  1. Java性能监控之操作系统层面
  2. 第十三章 SQL命令 CREATE ROLE
  3. 真棒 20 张图揭开内存管理的迷雾,瞬间豁然开朗
  4. 大学生只为炫技,制造出让人“闻风丧胆”的CIH网络病毒
  5. JDBC学习笔记(六)
  6. Android Log分析
  7. 卷积神经网络推理特征图可视化查看,附录imagenet类别和编号对应查询表。通过观察法进行深度学习可解释研究
  8. mysql命令行导入dmp文件_cmd 命令行 imp导入dmp oracle数据库
  9. 他们成了爆款制造机!踩女性痛点精准到可怕,销售几乎都来自直播
  10. manjaro深度学习tensorflow环境搭建 cuda cudnn nvidia显卡设置