12天搞定Python,基础语法(上)
不知你是否见过建楼房的过程,没有的话,找个时间去瞧一瞧,看一看。看过之后,你就会明白。建楼房,只有打好地基之后,才能在砌墙,建的楼层越高,打的地基就越深。
学编程也一样,要想得心应手的应用,得先打好地基。要想入门,需要先掌握好基础语法。唯有扎好马步,方可练就上乘武功。喜欢小编的小伙伴可以加小编的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
<class 'int'>
27
<class 'int'>
0xa
2. 浮点型
带有小数点的数值是浮点型。上过幼儿园的都知道,浮点型表示的其实就是实数。它可用十进制和科学计数法表达。
Python中科学计算法表达式为: <实数>E或者e<整数>。
# 浮点数
f = 996.0
print(f)
# 确定是不是浮点型
print(type(f))
# 浮点数的科学计数法
f = 6.6e10
print(f)
输出结果
996.0
<class 'float'>
66000000000.0
3. 复数
复数,由实数和虚数组成,一定要有j字母出现才算复数,而且j的前面得有数字。大多数编程语言是没有复数这个数据类型的,至于Python会出现,可能是考虑到微电子、空间、平面等领域的计算。平时编程很少会用到,了解一下即可。
# 复数类型表达
c = 182-16j
# 确定数据类型
print(type(c))
# 实数部分 182.0
print(c.real)
# 虚数部分 -16.0
print(c.imag)
输出结果
<class 'complex'>
182.0
-16.0
4. 布尔
布尔是特殊的整型,0表示False,其他的表示True。布尔值只有两种,非真(True)即假(False),真真假假,假假真真,乐在其中。
# 我是真的,真的...
b = True
print(b)
# 确定数据类型
print(type(b))
# 改成假b = False
print(b)
输出结果
True
<class 'bool'>
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))
输出结果
双引号 <class 'str'>
单引号 <class 'str'>
三个双引号 <class 'str'>
三个单引号 <class 'str'>
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编程从入门到实践##程序员#
12天搞定Python,基础语法(上)的更多相关文章
- 第4天 | 12天搞定Python,基础语法(下)
为了方便你的学习,减轻负重,我特意将基础语法分成上下两部分.希望你喜欢这种方式,如果不喜欢,你可以跟我说,反正我是不会改的,哈哈~~. 如果上部分,你还没看的话,先去看<第4天 | 12天搞定P ...
- 第12天 | 12天搞定Python,让excel飞起来
学了10多天Python基础知识了,是时候来点硬货了,看过<第1天 | 12天搞定Python,告诉你有什么用?>的老铁都知道,Python可用的领域挺多的.只是我长期待在企业,所以只能说 ...
- 第10天 | 12天搞定Python,文件操作(超详细)
在开发系统的过程中,经常会用到XML存储和传输数据,XML是一种用于标记电子文件使其具有结构性的标记语言,在博客中经常会见到. JSON是一种轻量级的数据交换格式,常被用在后端和前端的数据交互上,如你 ...
- 第1天|12天搞定Python网络爬虫,吃里爬外?
人力资源部漂亮的小MM,跑来问我:老陈,数据分析和爬虫究竟是关系呀?说实在的,我真不想理她,因为我一直认为这个跟她的工作关系不大,可一想到她负责我负责部门的招聘工作,我只好勉为其难地跟她说:数据分析, ...
- 第1天 | 12天搞定Python,告诉你有什么用?
掌握多一门编程语言,多一种选择,多一份机遇,更何况学的是人见人爱,花见花开的Python语言.它目前可占据编程语言排行榜的第3名,是名副其实的"探花郎",无论用它做什么(网络爬虫. ...
- 吾八哥学Python(三):了解Python基础语法(上)
学习一门开发语言首先当然是要熟悉它的语法了,Python的语法还算是比较简单的,这里从基础的开始了解一下. 标识符1.第一个字符必须是字母表中字母或下划线'_'.2.标识符的其他的部分有字母.数字和下 ...
- 第3天 | 12天搞定Python,用PyCharm编写代码
有了运行环境还不够,在程序的江湖里,还得有一把趁手的"兵器". 工欲善其事,必先利其器,在进行Python开发时,可选择 IDE挺多的,其中,以PyCharm. Eclipse+P ...
- 第3天 | 12天搞定Python,用VSCode编写代码
Visual Studio Code (简称 VS Code), 是一款免费并且开源的现代化轻量级代码编辑器,支持语法高亮.智能代码补全.自定义热键.括号匹配.代码片段等特性,并针对网页开发做了优化. ...
- 第2天 | 12天搞定Python,运行环境(超详细步骤)
倘若有人告诉你,他在学习Python编程,却没有安装运行环境,那你赶紧叫他滚,并离他远点,因为他在欺骗你的感情. 没有安装运行环境,程序根本无法跑起来,对错不能知根知底,试问是在学编程,还是在跟空气对 ...
随机推荐
- 关于MongoDB
启动: 启动MongoDB的方式有两种: 1.直接启动,配置参数写在命令中: mongod --dbpath=data/db --logpath=log/log.txt --fork 2.以配置文件启 ...
- 利用Z.Expressions.Eval表达式求值
Z.Expression.Eval是一个开源的(OpenSource),可扩展的(Extensible),超轻量级(Super lightweight)的公式化语言解析执行工具包. 使用方法:1.从n ...
- Linux的MySQL安装方法
第一种: APT方式安装 在ubuntu系统的apt软件仓库中,默认存在MySQL数据库 在用户模式下使用命令: apt/apt-get install mysql-server mysql-cli ...
- CUMTCTF'2020 已做wp
三天的比赛终于结束了,不知道有没有睡10个小时,感觉像中了魔一样,但也很享受这种感觉,除了没有能和我一起琢磨题目朋友.. 就最终结果而言还是有一些可惜,明明号称擅长web和misc反而是得分比例最小的 ...
- Elasticsearch数据库 | Elasticsearch-7.5.0应用基础实战
Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎.-- Elastic Stack 官网 关于Elasticsearch的"爱恨情仇" ...
- Struts2+Spring4.2+Hibernate4.3整合
一.导包 antlr-2.7.7.jarasm-3.3.jarasm-commons-3.3.jarasm-tree-3.3.jarcom.springsource.com.mchange.v2.c3 ...
- Centos-远程拷贝-scp
scp 依赖ssh协议,实现从哟个linux系统拷贝到另一个linux系统 格式 scp -P port localPath user@IP:targetPath # 如果拷贝的是文件则需要传递 -r ...
- Python练习题 035:Project Euler 007:第10001个素数
本题来自 Project Euler 第7题:https://projecteuler.net/problem=7 # Project Euler: Problem 7: 10001st prime ...
- IDEA配置jQuery,$符号不再显示黄色波浪线
在使用IDEA搭建Maven的Web环境时,编写的JQuery入口函数时,遇到了未知符号的提示,并且在前端页面js的console里报错. 以下是错误信息: 解决方案: 继续看图: 配置成功生效: ...
- 01 C语言基本介绍
C语言特点 容易上手学习 结构化语言 执行效率高 处理的工作和活动偏底层 可以在多种计算机平台上编译(类似Java的跨平台) C语言历史 目前,C 语言是最广泛使用的系统程序设计语言之一 C 语言是最 ...