12天搞定Python,基础语法(上)
阅读原文时间:2022年05月11日阅读:1

不知你是否见过建楼房的过程,没有的话,找个时间去瞧一瞧,看一看。看过之后,你就会明白。建楼房,只有打好地基之后,才能在砌墙,建的楼层越高,打的地基就越深。

学编程也一样,要想得心应手的应用,得先打好地基。要想入门,需要先掌握好基础语法。唯有扎好马步,方可练就上乘武功。喜欢小编的小伙伴可以加小编的Q群867067945,欢迎大家的加入

Python的马步,为简单的基础语法,上乘武功为数据分析、网络爬虫和Web系统。为了练好马步,我们先从编码规范蹲起。

4.1 编码规范
优美胜于丑陋,明了胜于晦涩,简洁胜于复杂,复杂胜于凌乱,可读性真的很重要。为了提高代码的可读性,Python3将规范PEP8置入了运行环境中。在本节中提供的样例代码,你可以不懂,重点了解规范就好。到后面,你就会全部都懂了。

1. 注释注释

说到可读性,不得不提代码的注释,那可是判断程序员是否合格的首要条件。编程不写注释的程序员,就是在耍流氓。当然,如果注释内容是错误的,那还不如没有注释,所以当一段代码发生变化时,第一件事就是去修改注释。

Python注释有单行和多行注释。单行注释用井号#开始,多行注释可用成对的三个双引号”””或三个单引号’’’标识,推荐使用双引号。

"""
多行注释样例
代码看看就好,反正吃不了
"""

# 传入账号和密码内容,成功返回True,否则返回False'''
def login(account, psd):
if account == "admin" and psd == "123":
return True
else:
return False

''' 调用函数,输出返回结果'''
print(login("admin", "123456"))
2. 有段代码

不知是不是Python发明人考虑到程序员整天对着计算机,没人聊天太孤单,设计的程序代码段就像聊天一样,它说:说完就回车。

Python代码段,跟其他编程语言不同,不是用打括号{}包起来的,而是使用冒号(:)、缩进、回车来实现,这跟写文章是一样的形式。

# 注册函数,代码段不用大{}包起来
def register(account, phone):
if account == "":
return "账号不能为空"
elif phone == "":
return "电话不能为空"
else:
# 这里省略注册操作内容
return "注册成功"
3. 代码布局

人类是一种很感性的生物, 对于美的追求,是与生俱来的,高颜值总让人喜爱和愉悦。Python代码也讲究高颜值,为了让编写的代码优美,下了不少功夫。

(1) 分号

不要在行尾加分号, 也不要用分号将两条命令放在同一行。

(2) 空行

顶层函数和类的定义,前后用两个空行隔开。 类里的方法定义用一个空行隔开。

(3) 空格

各种右括号前不要加空格,逗号、冒号、分号前不要加空格。操作符左右各加一个空格,不要为了对齐增加空格。

(4) 缩进

缩进空格数要保持一致,建议统一用4个空格。Tab在不同操作系统或IDE开发工具会不一致,建议不要使用。

# 尾部没有分号,每个命令独立一行
print("Hello")
print("World!")

# 前面空两行,逗号后有个空格,冒号:后没有
def add(a, b):
# 缩进4个空格,操作符+前后各一个空格
return a + b

# 前面空两行
def div(a, b):
# 缩进4个空格,==前后各一个空格
# 冒号:后没有空格
if b == 0:
# 缩进4个空格,没有分号;结尾
return "被除数不能为0"
else:
return a / b
(5) 断行

除了长的导入模块语句和注释里的URL外,每行不超过80个字符。不要使用反斜杠去连接行。Python会将圆括号, 中括号和花括号中的行隐式的连接起来 , 你可以利用这个特点。如果需要, 你可以在表达式外围增加一对额外的圆括号。

# 长内容,可用圆括号连接
content = ("喜欢一个人在海边,卷起裤管光着脚丫踩在沙滩上。"
"总是幻想海洋的尽头有另一个世界,总是以为勇敢的水手是真正的男儿。")
print(content)
好了,常用的规范就记住以上几点就好。想要完整版的《Python编程规范》,你可以给我留言,我私信发给你。从下一节开始,每行代码,你都要亲自动手敲一敲,搞懂才行哦。

4.2 变量和值
程序总得要处理数据,处理数据就要用到内存,至于内存的大小和地址,由变量指定。变量,就是在程序运行过程中它的值是允许改变的量。

很多强类型语言,使用变量时,需要先声明才可以使用,而Python是弱类型语言,变量无需声明,直接赋值便可使用,Python解析器会根据初始化值进行推断并确定数据类型。

1. 变量声明

Python中的变量赋值使用等号运算符"=",并在它前后各留一个空格。变量使用过程中,可以任意改变值的内容,而且不限同一类型。

可以把整型值直接赋给字符串变量,也可以把字符串赋给浮点型变量。不用怀疑,她就是这么任性,比男人还善变。

# 变量直接赋值使用
come = "我要变帅,要富有…"
print(come)
# 改变变量内容
come = "想得美"
print(come)
# 改成整型内容
come = 999
print(come)
# 改成浮点数
come = 666.25
print(come)
输出结果

我要变帅,要富有…
想得美
999
666.25
2. 命名规则

变量命名,就是给变量取一个一目了然的名字。取名字看似简单,却大有学问。看过电影的人都知道,那些大侠的名字,都是很好听很好记的,像什么西门吹雪、中原一点红之类的,一听就霸气侧漏,就算武功不怎么样,也可以把人唬住。

其实在编程语言中,不止变量,还有函数、类名等都需要进行命名,而这些命名由程序员通过符号和名称进行自定义。

这些符号和名称叫作标识符。Python中,标识符需要遵守以下规则:

(1) 标识符由字母或下划线开头,后面接字母、下划线、数字。由于有很多有特殊含义的标识符(如:__name__,__init__)是下划线开头的,为了避免混淆,用字母开头会更好一些。

(2) Python3开始,支持Unicode,故上面提到的字母,不止是26个大小写字母,还可以是中文等。当然,为了看起来更专业,可读性更高一些,还是用英文字母吧。

(3) 标识符是区分大小写的,Abc跟abc是不同的。

(4) 标识符不能使用关键字,关键字是编程语言内置的,具有特殊功能,像True、False等不可使用。

(5) 永远不要使用字母‘l’(小写的L),‘O’(大写的O),或者‘I’(大写的I)作为单字符变量名。在有些字体里,这些字符无法和数字0和1区分,如果想用‘l’,那就用大写的‘L’代替。(6) 类名一般使用首字母大写的约定。函数名应该小写,如果想提高可读性可以用下划线分隔。

3. 命名示范

为了加强认识,无论是正确,还是错误的,建议都运行看看,其实在开发工具中,如果标识符有错误的话,就算不运行也会有警告信息的。

# 英文字母开头的变量,值得推荐
come1 = "我是最酷的"
print(come1)
# 内置标识符当变量,不报错,但易混淆
__name__ = "内置标识符"
print(__name__)
# 中文名,没有错误,但可读性差
中文1 = "中文变量"
print(中文1)
# 数字开头,会报错
6six = "数字开头"
print(6six)
# 使用关键字,报错
False = "关键字"
print(False)
输出结果

6six = "数字开头"
^
SyntaxError: invalid syntax
4. 关键字列表

Python内置了查询关键字的命令,打开【终端】,输入python(在macOS或Ubuntu系统为python3),输入help(),输入keywords,即可获得关键字列表。

Here is a list of the Python keywords. Enter any keyword to get more help.
False class from or
None continue global pass
True def if raise
and del import return
as elif in try
assert else is while
async except lambda with
await finally nonlocal yield
break for not
学了这么多,你就不想了解一下老陈的情况?我知道,你不想,只是下面的文字,你不看也得看。呵呵~~

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。我将分享Python,前端(小程序)和App方面的编程知识。关注我,没错的。

4.3 数值类型
数值类型,掰手指都可以数出来,数来数去,也就那几种。Python3支持的有整型int、浮点型float、布尔bool型、还有复数complex。

其中整型只有int一种,表示为长整型。如若无法确定变量属于哪种数据类型时,可通过Python内置的函数type()进行查询确定。

1. 整型

整型就是指整数。整数有正数、有负数和0。在计算机中,整型可以用十进制、二进制(0B或0b开头)、八进制(0开头)、十六进制(0X或0x开头)进行表示。

进制表示中的开头是数字0,不是字母o,别搞混了。还有,在输出时,其他进制会自动转成十进制。 如果十进制要转成其他的,可使用内置函数:bin()、oct()、hex()。

# 二进制整数
a = 0b1110111
print(a)
print(type(a))
# 十六进制整数
b = 0X1b
print(b)
print(type(b))
# 十进制转成十六进制
c = 10
print(hex(c))
输出结果

119

27

0xa
2. 浮点型

带有小数点的数值是浮点型。上过幼儿园的都知道,浮点型表示的其实就是实数。它可用十进制和科学计数法表达。

Python中科学计算法表达式为: <实数>E或者e<整数>。

# 浮点数
f = 996.0
print(f)
# 确定是不是浮点型
print(type(f))
# 浮点数的科学计数法
f = 6.6e10
print(f)
输出结果

996.0

66000000000.0
3. 复数

复数,由实数和虚数组成,一定要有j字母出现才算复数,而且j的前面得有数字。大多数编程语言是没有复数这个数据类型的,至于Python会出现,可能是考虑到微电子、空间、平面等领域的计算。平时编程很少会用到,了解一下即可。

# 复数类型表达
c = 182-16j
# 确定数据类型
print(type(c))
# 实数部分 182.0
print(c.real)
# 虚数部分 -16.0
print(c.imag)
输出结果


182.0
-16.0
4. 布尔

布尔是特殊的整型,0表示False,其他的表示True。布尔值只有两种,非真(True)即假(False),真真假假,假假真真,乐在其中。

# 我是真的,真的…
b = True
print(b)
# 确定数据类型
print(type(b))
# 改成假b = False
print(b)
输出结果

True

True
4.4 字符串
在开发过程中,经常会用到字符串来存储字符内容。在其他编程语言中用成对双引号" "声明字符串,用成对单引号' '声明单个字符,而Python没有这种区别,它无论单个或多个字符都用字符串表示。字符串除了普通的内容,还有转义和原生。为了方便操作,Python提供了很多函数。

1. 声明

Python可用单个双引号"或单引号',也可以用三个双引号"""或单引号'''声明字符串。推荐使用双引号。细心的你,不知注意到没?--三个双引号或单引号,不是注释用的吗?怎么字符串也用这个。是的,把内容赋值给变量时,就表示字符串。

# 用单个双引号
a = "双引号"
print(a, type(a))
# 用单个单引号
b = '单引号'
print(b, type(b))
# 用三个双引号
c = """三个双引号"""
print(c, type(c))
# 用三个单引号
d = '''三个单引号'''
print(d, type(d))
输出结果

双引号
单引号
三个双引号
三个单引号
2. 转义

有些符号,如双引号"、单引号',本身已有特殊含义,如要输出它们,就需要进行转义处理。Python跟其他编程语言一样,也是用反斜杠\来进行的。

# 用\n进行换行
i = "第1行,\n第2行。"
print(i)
# 用\"输出双引号
say = "我说:\""
print(say)
输出结果

第1行,
第2行。
我说:"
如果转义内容用的比较多时,样子会很难看,工作量也大了一些,当需要多个反斜杠转义时,则使用原始字符 r或R。

# 用r表示原始内容
path = r"c:\software\now\test"
print(path)
输出结果

c:\software\now\test
3. 去掉空格

删除前面的空格符用lstrip()函数,后面的用rstrip(),前后都删除的,用strip()。还有一种不限位置的删除方法,那便是用replace()函数。

# 删除前面空格
a = " abc"
print(a.lstrip())
# 删除后面的空格
a = "abc "
print(a.rstrip())
# 删除前后的空格
a = " abc "
print(a.strip())
# 多次空格,包括中间
a = " a b c "
print(a.replace(" ", ""))
# replace()替换内容
cool = "你最帅!"
print(cool.replace("你", "我"))
输出结果

abc
abc
abc
abc
我最帅!
4. 占位符

字符串内容中,不变化的直接放在里面,会改变的那部分,可用占位符先占着,等到使用时再去变更。

# 用{}占位
i = "Welcome to {}.".format("Python")
print(i)
# 用{下标}占位
i = "I like {0}.".format("code", "music")
print(i)
# 用{关键字}占位
i = "row={row:d}".format(row=1)
print(i)
# 用列表填充占位内容
i = "I like {0[0]} and {0[1]}.".format(["Python", "iOS"])
print(i)
输出结果

Welcome to Python.
I like code.
row=1
I like Python and iOS.
5. 子字符串

Python通过指定区间的方式,截取出子字符串。可从左到右,也可以从右到左。正数表示从左边开始,负数表示从右边开始,用中括号[]和:指定截取范围,[0:4]表示从位置1开始,截取4个长度。负数用绝对值计算,像[-4:-1],表示从倒数第4个位置开始,截取 4-1 = 3个长度。

# 字符串内容
s = "123456789"
# 输出内容
print(s)
# 从第1位开始,截取长度4
print(s[0:4])
# 从第4位开始,截取到最后
print(s[3:])
# 取出第6位内容
print(s[5])
# 截取全部,等于没截取
print("--"+s[:]+"--")
# 从倒数第4位开始,截取长度3
print(s[-4:-1])
# 从倒数第3位开始截取到最后
print(s[-3:])
# 截取倒数第1个字符
print(s[-1])
输出结果

123456789
1234
456789
6
--123456789--
678
789
9
6. 内容分割

分割,就是通过指定某个字符,进行字符串分割,结果返回数组。Python用split()函数进行内容分割,可指定分割次数,默认是所有。它的语法是:str.split(str="", num=string.count(str))。

# 字符串内容
s = "1-2-3-4-5"
print(s.split("-"))
# 分割1次
print(s.split("-", 1))
输出结果

['1', '2', '3', '4', '5']
['1', '2-3-4-5']
7. 查找

从字符串当中,查找是否存在指定的字符串内容。

(1) 用find()函数进行查找,找到返回下标值,找不到返回-1,还可以从指定某个位置开始查找,它语法是: str.find(str, beg=0, end=len(string)) 。

# 字符串内容
s = "Welcome to Python."
print(s.find("a"))
print(s.find("c"))
# 从指定范围进行查找
print(s.find("e", 5, 7))
输出结果

-1
3
6
(2) 用index()函数进行查找,找到返回下标,找不到报错,它的语法是: str.index(str, beg=0, end=len(string)) 。 报错的话,需要进行异常处理,所以建议用find()函数。

# 字符串内容
s = "Welcome to Python."
print(s.index("a"))
print(s.find("c"))
输出结果

print(s.index("a"))
ValueError: substring not found
(3) 判断是否是指定的字符串开头,是的话,返回True,否则返回False。可以从指定的范围进行查找,它的语法是:str.startswith(str, beg=0,end=len(string))。

# 字符串内容
s = "I am a handsome boy."
# 找到,返回True
print(s.startswith("I"))
# 从指定范围查找,找不到,返回False
print(s.startswith("I", 2, 6))
# 没找到,返回False
print(s.startswith("You"))
输出结果

True
False
False
(4) 判断是否是指定的字符串结束,是的话,返回True,否则返回False。可以从指定的范围进行查找,它的语法是:str.endswith(str, beg=0,end=len(string))。

# 字符串内容
s = "I am a handsome boy."
# 找到,返回True
print(s.endswith("."))
# 从指定范围进行查找,找不到,返回False
print(s.endswith(".", 2, 6))
# 没找到,返回False
print(s.endswith("e"))
输出结果

True
False
False
8. 大小写

英文单词,大小写转换。可以从大写转成小写,也可以从小写转成大写。

(1) 通过upper()函数,把字母全部转换化为大写。

# 字符串内容
s = "You are a handsome guy."
# 全部转成大写
print(s.upper())
输出结果

YOU ARE A HANDSOME GUY.
(2) 通过lower()函数,把字母全部转化成为小写。

# 字符串内容
s = "You are a handsome guy."
# 全部转成小写
print(s.lower())
输出结果

you are a handsome guy.
(3) 用title()函数把每个单词的第一个字母转为大写。

# 字符串内容
s = "You are a handsome guy."
# 每个单词首字母转为大写
print(s.title())
输出结果

You Are A Handsome Guy.
(4) 用capitalize()函数把第一个字母转为大写,其他的全部为小写。

# 字符串内容
s = "you are A handsome guy."
# 第一个字母转为大写,其他的全为小写
print(s.capitalize())
输出结果

You are a handsome guy.
9. 字符串倍数

Python字符串,可通过*来输出倍数字符串内容,像 “good”* 3 ,表示输出3次good。可用乘法赋值运算符:*= ,精简表示。

# 字符串内容
s1 = "good"
count = 3
# 输出倍数字符串内容
s1 = s1 * count
print(s1)
# 通过乘法赋值运算符输出
s2 = "nice"
s2 *= count
print(s2)
输出结果

goodgoodgood
nicenicenice
10. 字符串补齐

字符通过ljust(len,str)向左对齐, rjust(len,str)向右对齐,center(len,str)中间对齐,内容用str补齐长度。zfill(width)指定字符串长度,右对齐,前面补充0,这个在开发过程中会经常见到,实用。

# 字符左对齐
a = "n"
print(a.ljust(9, "b"))
# 字符右对齐
print(a.rjust(9, "c"))
# 字符中间对齐
d = a.center(9, "d")
print(d)
# 正数左边补0
z = "5".zfill(4)
print(z)
# 负数也可补0
z = "-6".zfill(4)
print(z)
输出结果

nbbbbbbbb
ccccccccn
ddddndddd
0005
-006
好了,再码字下去,我手都要骨折了,你还不转发,支持我一下?

基础语法,内容不多,为了减轻你的学习重力,我特意分了上了两部分,下部分,下午发出。别的就不多说,你关注我就对了。

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可以加我Q群867067945我将分享Python编程知识。关注我,没错的。
本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
#python##Python编程从入门到实践##程序员#