5000字2021最新Python基础知识第一阶段:数据类型
1 编程规范
注释
python注释也有自己的规范,在文章中会介绍到。注释可以起到一个备注的作用,团队合作的时候,个人编写的代码经常会被多人调用,为了让别人能更容易理解代码的通途,使用注释是非常有效的。
在说规范之前我们有必要先看以下Python的注释有哪些 ?
单行注释
多行注释
单行注释
以 # 开头, # 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用
示例代码如下:
# 这是第一个单行注释
print("hello python")
为了保证代码的可读性, # 后面建议先添加一个空格,然后再编写相应的说明文字
多行注释(块注释)
如果注释信息很多,一行无法显示,就可以使用多行注释
要在 Python 程序中使用多行注释,可以用一对连续的 三个 引号(单引号和双引号都可以)
示例代码如下:
"""
这是一个多行注释
在多行注释之间,可以写很多很多的内容……
"""
print("hello python")
注释不是越多越好,对于一目了然的代码,不需要添加注释
标识符命名规则
开发人员在程序中自定义的一些符号和名称。标识符是自己定义的, 如变量名 、函数名等
标识符由字母、下划线和数字组成,且数字不能开头
python中的标识符是区分大小写的
命名规则
1)、下滑线命名法
用下划线“_”来连接所有的单词,比如 hello_world
- 见名知意
- 起一个有意义的名字,尽量做到看一眼就知道是什么意思(提高代码可读性) 比如: 名字 就定义为
name , 定义学生 用 student
2)、驼峰命名法
大驼峰式命名法(upper camel case):
- 每一个单字的首字母都采用大写字母,
例如:FirstName、HelloWorld
小驼峰式命名法(lower camel case):
第一个单词以小写字母开始;
第二个单词的首字母大写,
例如:helloWorld、firstName
注意
所有的变量名、函数名 都是用下划线命名法
类名使用大驼峰命名法
python命名规则
- python中的标识符是区分大小写的
- 变量、函数名全部用小写与下划线
- 常量(配置文件变量、不修改的变量)全部用大写
- 类名用大驼峰命名法
案例: 命名规范查看
# 类名用大驼峰 类与其他内容用两个换行隔开
class Student(object): # 变量名之间用空格隔开
def __init__(self, hello):
self.hello = hello # 函数与函数之间加换行
def print_hello_world(self):
"""
函数名用下划线命名法 尽量满足见名知意
"""
print(f"hello.jpg {self.hello} !") def PrintHelloWorld(self):
"""
大驼峰命名法提示有问题
"""
print(f"hello.jpg {self.hello} !") def printHelloWorld(self):
"""
小驼峰命名法提示有问题
"""
print(f"hello.jpg {self.hello} !") def printhelloworld(self):
"""
直接写很难读懂
"""
print(f"hello.jpg {self.hello} !") def PRINTHELLOWORLD(self):
"""
直接写很难读懂
"""
print(f"hello.jpg {self.hello} !") """团队规范"""
# 变量名使用下划线命名法
# 尽量满足见名知意
# 对象也是变量
student = Student("world")
student.print_hello_world()
关于代码规范
- Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文档
- 其中第 8 篇文档专门针对 Python 的代码格式 给出了建议,也就是俗称的 PEP 8
- 文档地址:https://www.python.org/dev/peps/pep-0008/
- 谷歌有对应的中文文档:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/
任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步
编程习惯的重要性
- 可以方便排查错误
- 方便自己看的代码
- 便于别人看懂你的代码(团队协作)
良好的编程习惯的养成不能靠说,要靠多练,要在大量的编程中将其融入骨髓中。
一套系统应该具有统一的编程风格,任何编程风格都不可能是完美,应该从可维护性、可读性方面继续保持一种编程风格,而不要将多种编程风格混合在一套系统中,对于新手,难以理解如此多种风格的编
码。
ctrl + alt + l 快速格式化代码
输入输出与变量
输出
print() 方法用于打印输出,最常见的一个函数。
以下是 print() 方法的语法:
print(*objects, sep=' ', end='\n', file=sys.stdout)
参数
- objects -- 复数,表示可以一次输出多个对象。输出多个对象时,用分隔符分割。
- sep -- 用来间隔多个对象,默认值是一个空格。
- end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
- file -- 要写入的文件对象。
输入
input() 函数接受一个标准输入数据,返回为 string 类型
>>>a = input("input:")
input:123 # 输入整数
>>> type(a)
<class 'str'> # 字符串
变量
程序就是用来处理数据的,而变量就是用来存储数据的
- 在 Python 中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建
- 等号(=)用来给变量赋值
= 左边是一个变量名
= 右边是存储在变量中的值 - 直接使用之前已经定义的变量
- 变量名只有在 第一次出现 才是 定义变量
- 变量名再次出现,不是定义变量,而是直接使用之前定义过的变量
- 在程序开发中,可以修改之前定义变量中保存的值吗?
可以
变量中存储的值,就是可以 变 的
变量名 = 值
变量定义之后,后续就可以直接使用了
2 数值类型
int(整形)
在 Python 中定义变量是 不需要指定类型(在其他很多高级语言中都需要)
整形,也被称之为整数。整数就是数学中的数字。
整形在Python中不受长度限制大小范围
使用 type 函数可以查看一个变量的类型
In [1]: 1
Out[1]: 1 In [2]: type(1)
Out[2]: int
浮点型(float)
小数类型
小数
In [1]: 1
Out[1]: 1 In [2]: type(1.0)
Out[2]: float
运算、运算符优先级与整形是一样。
类型转化
浮点数转化为整形(显示转化)
In [3]: int(1.0)
Out[3]: 1 In [4]: float(1)
Out[4]: 1.0
隐式转化,系统背后默认进行转换
In [5]: 1/2
Out[5]: 0.5
1.3 字符串
字符串是一种不可变的序列类型
字符串创建
字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。
单引号和双引号
在 Python 中我们都知道单引号和双引号都可以用来表示一个字符串,比如
print("What's your name?")
结果:
"What's your name?"
print('"python"是一门优秀的语言')
结果:
"python"是一门优秀的语言
一个单引号并不是单引号,它是字符串创建的格式
总体来说没有任何区别,只在单引号当普通字符时容易区分:如 var = "let's go"
三引号创建块字符串 长字符串
# 三引号实现块注释
"""
文档注释
三引号实现块注释
"""
字符串格式化
把不是字符类型的 转变成字符串
在 Python 中可以使用 print 函数将信息输出到控制台
如果希望输出文字信息的同时,一起输出 数据,就需要使用到 格式化操作符
format
此函数可以快速的处理各种字符串,增强了字符串格式化的功能。基本语法是使用{}和:来替代%。format函数可以接受不限各参数,位置可以不按照顺序
name = '张三'
age = 18
nickname = '法外狂徒' # format 用 {} 占位
print('姓名:{},年龄{},外号:{} '.format(name, age, nickname))
print('hello {} 你今年已经{}岁了'.format(name, age)) # 保留小数点后两位
In [1]: '{:.2f}'.format(12.333)
Out[1]: '12.33' In [2]: '{a:.2f}'.format(a=12.333)
Out[2]: '12.33' In [3]: '{a:6.2f}'.format(a=12.333)
Out[3]: ' 12.33'
%s
% 被称为 格式化操作符,专门用于处理字符串中的格式
- 包含 % 的字符串,被称为 格式化字符串
- % 和不同的 字符 连用,不同类型的数据 需要使用 不同的格式化字符
语法格式如下:
print("格式化字符串 %s" % 变量1)
print("格式化字符串" % (变量1, 变量2...))
name = '张三'
age = 18 nickname = '法外狂徒'
name2 = '李四'
age2 = 19
nickname2 = '帮凶'
# %s 用 %s 占位
print('姓名:%s' % name)
# 多个参数
print('%s,%s 哦嗨呦' % (name, name2))
f
f’{}'形式,并不是真正的字符串常量,而是一个运算求值表达式,可以很方便的用于字符串拼接、路径拼接等
name = '张三' # f 在字符串中嵌入变量
print(f'hello {name} !')
案例:猫眼top100网址
猫眼top100的网址有以下特点:
第一页:https://maoyan.com/board/4?offset=0
第二页:https://maoyan.com/board/4?offset=10
第三页:https://maoyan.com/board/4?offset=20
....
第十页:https://maoyan.com/board/4?offset=90
请分别使用三种字符串构建的方法创建所有的请求地址
4 字符串常用方法
字符串是不可变数据类型,所有的操作都是返回新的一个列表,不会修改原有列表
字符串 能够使用的 方法 如下:
提示:正是因为 python 内置提供的方法足够多,才使得在开发时,能够针对字符串进行更加灵活的操作!应对更多的开发需求!
查找和替换
提问:如何改变字符串
将下面的字符串中 world 改成 Python
hello = "hello world !"
print(hello.replace('world', 'Python'))
print(hello)
字符串是一种不可变的数据类型。所有操作字符的方法都是返回一个新的字符串。可以用返回的新的字符串覆盖掉之前的字符串。
转义字符
在需要在字符中使用特殊字符时,python 用反斜杠转义字符。如下表:
原始字符串
由于字符串中的反斜线都有特殊的作用,因此当字符串中包含反斜线时,就需要使用转义字符 \ 对字符串中包含的每个 '' 进行转义。
比如说,我们要写一个关于 Windows 路径 G:\publish\codes\02\2.4 这样的字符串,如果在 Python 程序中直接这样写肯定是不行的,需要使用 \ 转义字符,对字符串中每个 '' 进行转义,即写成G:\publish\codes\02\2.4 这种形式才行。
有没有觉得这种写法很啰嗦,有没有更好的解决办法呢?答案是肯定的,借助于原始字符串可以很好地解决这个问题。
原始字符串以“r”开头,它不会把反斜线当成特殊字符。因此,上面的 Windows 路径可直接写成如下这 种形式:
# 原始字符串包含的引号,同样需要转义
s2 = r'"Let\'s go", said Charlie'
print(s2)
5 布尔类型(bool)
python 中布尔值使用常量 True 和 False来表示;注意大小写
bool 是 int 的子类(继承 int ),故 True == 1 False == 0 是会返回 Ture
bool 类型只有两种状态真或假
In [17]: bool(-1)
Out[17]: True In [18]: bool(0)
Out[18]: False In [19]: bool(None)
Out[19]: False In [20]: bool("")
Out[20]: False In [21]: bool(" ")
Out[21]: True In [22]: def a():
...: pass
...:
...: bool(a)
Out[22]: True
总结
True 对 False 错
布尔类型只有两种状态, True or Flase 。数字除了零之外,其余均为 True ,字符串除了空字符串之外都为 True ,对象除了空对象之外,其余均为 True 。
默认情况下,所有类型都可以转化为布尔类型
6 运算符
算数运算符
因为是整数,所以也可以进行数学中的基本运算。
- 算数运算符是 运算符的一种
- 是完成基本的算术运算使用的符号,用来处理四则运算
# 取余
In [16]: 9 % 4
Out[16]: 1 In [17]: 9 % 3
Out[17]: 0 In [18]: 2 ** 3
Out[18]: 8
除此之外,“+”还可以作为字符串(包括后续要介绍的序列)的连接运算符。
s1 = 'Hello, '
s2 = 'Charlie'
# 使用+连接两个字符串
print(s1 + s2)
算数运算符的优先级
和数学中的运算符的优先级一致,在 Python 中进行数学计算时,同样也是:
- 先乘除后加减
- 同级运算符是 从左至右 计算
- 可以使用 () 调整计算的优先级
以下表格的算数优先级由高到最低顺序排列
例如:
- 2 + 3 * 5 = 17
- (2 + 3) * 5 = 25
- 2 * 3 + 5 = 11
- 2 * (3 + 5) = 16
赋值运算符
以下假设变量a为10,变量b为20:
比较运算符
逻辑运算符
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
逻辑运算符案例:
x = 1
y = 0 print(x and y)
print(x or y)
print(not x)
print(not y) # 案例升级
x = 3 > 4
y = 5 > 4
运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
5000字2021最新Python基础知识第一阶段:数据类型的更多相关文章
- python基础知识第一篇(认识Python)
开发语言: 高级语言:python java php c++ 生成的字节码 字节码转换为机器码 计算机识别运行 低级语言:C 汇编 生成的机器码 PHP语言:适用于网页,局限性 Python,Java ...
- python基础知识3---字符编码
阅读目录 一 了解字符编码的知识储备 二 字符编码介绍 三 字符编码应用之文件编辑器 3.1 文本编辑器之nodpad++ 3.2 文本编辑器之pycharm 3.3 文本编辑器之python解释器 ...
- Python基础知识总结笔记(四)函数
Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程 ...
- Python基础知识详解 从入门到精通(七)类与对象
本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- python基础知识小结-运维笔记
接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...
- Python基础知识(五)
# -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...
- Python 基础知识(一)
1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...
- python基础知识部分练习大全
python基础知识部分练习大全 1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py #必须在首行 ...
随机推荐
- 最适合新手的Redis Cluster搭建过程
好记性不如烂笔头,记录分片高可用Redis Cluster的搭建过程 Redis集群演进过程 Redis单节点 主从复制: 复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复. 故 ...
- 将DataTable转成Json字符串
1 public string ToJson(DataTable tbl) 2 { 3 if (tbl.Rows.Count > 0) 4 { 5 DataRowCollection rows ...
- python应用_读取Excel数据列表输出【一】
python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 1.准备Excel数据如下: 2.下面主要是对Excel数据读取后以双列表(每一行是一个用例为一个列表,再一个个案例组 ...
- 菜鸟刷题路:剑指 Offer 06. 从尾到头打印链表
剑指 Offer 06. 从尾到头打印链表 class Solution { public int[] reversePrint(ListNode head) { Stack<Integer&g ...
- 【NX二次开发】根据视图名称旋转视图,在布局中替换视图uc6464
uc6464("布局名","旧视图名","新视图名");输入布局名.旧视图名.新视图名.如果布局名为空则更新当前布局.如果旧视图名为空,则工 ...
- 03:进程Queue --- 生产者消费者模型
1 进程Queue介绍 1 进程间数据隔离,两个进程进行通信,借助于Queue2 进程间通信:IPC -借助于Queue实现进程间通信 -借助于文件 -借助于数据库 -借助 ...
- MySQL的可重复读级别能解决幻读问题吗?
之前在深入了解数据库理论的时候,了解到事务的不同隔离级别可能存在的问题.为了更好的理解所以在MySQL数据库中测试复现这些问题.关于脏读和不可重复读在相应的隔离级别下都很容易的复现了. 但是对于幻读, ...
- 【dp】10-15题解 snake vs block
snake vs block 题目描述 Tgopknight最近迷上了一款叫做Snake vs Block的游戏,他总觉得他自己玩出的不是最优解,但是他忙于享受游戏的乐趣,只好请你帮忙找出最优解. S ...
- noip2006总结
T1 能量项链 原题 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子 ...
- 备份schema并排除大表到ASM磁盘上
1.查出占用空间比较大的表 select owner,segment_name,segment_type,bytes/1024/1024 mb from dab_segment where owner ...