1 编程规范

注释

python注释也有自己的规范,在文章中会介绍到。注释可以起到一个备注的作用,团队合作的时候,个人编写的代码经常会被多人调用,为了让别人能更容易理解代码的通途,使用注释是非常有效的。

在说规范之前我们有必要先看以下Python的注释有哪些 ?

  • 单行注释

  • 多行注释

单行注释

以 # 开头, # 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用

示例代码如下:

# 这是第一个单行注释
print("hello python")

为了保证代码的可读性, # 后面建议先添加一个空格,然后再编写相应的说明文字

多行注释(块注释)

如果注释信息很多,一行无法显示,就可以使用多行注释

要在 Python 程序中使用多行注释,可以用一对连续的 三个 引号(单引号和双引号都可以)

示例代码如下:

"""
这是一个多行注释
在多行注释之间,可以写很多很多的内容……
"""
print("hello python")

注释不是越多越好,对于一目了然的代码,不需要添加注释

标识符命名规则

开发人员在程序中自定义的一些符号和名称。标识符是自己定义的, 如变量名 、函数名等

标识符由字母、下划线和数字组成,且数字不能开头

python中的标识符是区分大小写的

命名规则

1)、下滑线命名法

用下划线“_”来连接所有的单词,比如 hello_world

  1. 见名知意
  2. 起一个有意义的名字,尽量做到看一眼就知道是什么意思(提高代码可读性) 比如: 名字 就定义为
    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()
关于代码规范

任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步

编程习惯的重要性
  1. 可以方便排查错误
  2. 方便自己看的代码
  3. 便于别人看懂你的代码(团队协作)

良好的编程习惯的养成不能靠说,要靠多练,要在大量的编程中将其融入骨髓中。

一套系统应该具有统一的编程风格,任何编程风格都不可能是完美,应该从可维护性、可读性方面继续保持一种编程风格,而不要将多种编程风格混合在一套系统中,对于新手,难以理解如此多种风格的编
码。

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基础知识第一阶段:数据类型的更多相关文章

  1. python基础知识第一篇(认识Python)

    开发语言: 高级语言:python java php c++ 生成的字节码 字节码转换为机器码 计算机识别运行 低级语言:C 汇编 生成的机器码 PHP语言:适用于网页,局限性 Python,Java ...

  2. python基础知识3---字符编码

    阅读目录 一 了解字符编码的知识储备 二 字符编码介绍 三 字符编码应用之文件编辑器 3.1 文本编辑器之nodpad++ 3.2 文本编辑器之pycharm 3.3 文本编辑器之python解释器 ...

  3. Python基础知识总结笔记(四)函数

    Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程 ...

  4. Python基础知识详解 从入门到精通(七)类与对象

    本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...

  5. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  6. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  7. Python基础知识(五)

    # -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...

  8. Python 基础知识(一)

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

  9. python基础知识部分练习大全

    python基础知识部分练习大全   1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py   #必须在首行 ...

随机推荐

  1. python异步编程之asyncio

    python异步编程之asyncio   前言:python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病.然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率, ...

  2. GO学习-(35) Go实现日志收集系统4

    Go实现日志收集系统4   到这一步,我的收集系统就已经完成很大一部分工作,我们重新看一下我们之前画的图: 我们已经完成前面的部分,剩下是要完成后半部分,将kafka中的数据扔到ElasticSear ...

  3. Python+Selenium学习笔记17 - HTML测试报告

    运行少量case时 1 # coding = utf-8 2 3 from selenium import webdriver 4 import unittest 5 import time 6 fr ...

  4. 多边形游戏——区间dp

    题目描述 多边形(Polygon)游戏是单人玩的游戏,开始的时候给定一个由N个顶点构成的多边形(图1所示的例子中,N=4),每个顶点被赋予一个整数值,而每条边则被赋予一个符号:+(加法运算)或者*(乘 ...

  5. MySQL 基础、安装、配置

    1. MySQL 基础 1.1 什么是数据库? 1.2 数据库的类型 1.3 关系型数据库的优点 1.4 MySQL 简介 1.5 MySQL 数据类型 1.6 Mysql 存储引擎 1.7 MySQ ...

  6. AlexeyAB DarkNet YOLOv3框架解析与应用实践(四)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(四) Nightmare 从前,在一所大学的大楼里,西蒙尼亚.维达第和齐瑟曼有一个很好的主意,几乎和你现在坐的大楼完全不同.他们想,嘿 ...

  7. 三维视觉惯性SLAM的有效Schmidt-EKF

    三维视觉惯性SLAM的有效Schmidt-EKF An Efficient Schmidt-EKF for 3D Visual-Inertial SLAM 论文地址: http://openaccess ...

  8. HttpServer:一款Windows平台下基于IOCP模型的高并发轻量级web服务器

    HttpServer的特点1.完全采用IOCP模型,实现真正的异步IO,高并发.高可靠: 2.支持4G以上文件下载: 3.支持断点续传: 4.轻量级,体积小,服务器文件仅200多K,无任何依赖库: 5 ...

  9. 算法训练 区间k大数查询(题解)

    资源限制 时间限制:1.0s   内存限制:256.0MB   问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个.   输入格式 第一行包含一个数n,表示序列长度. 第二行包 ...

  10. 编译原理-DFA与正规式的转化