Python的基础语法

篇文章的目的是整理Python入门的基础语法知识点。

Python编码规范

1. 命名规则

标志符的概念:
开发人员在程序中自定义的一些符号和名称。标识符是自己定义的,如变量名 、函数名等。由字母,数组或者下划线组成。

标识符的规则:
1.标识符中可以包含字母、数字、_, 但是不能使用数字开头,例如name1,_name1是正确的,然而 1names是错误的。

2.Python中不能使用关键字和保留字来作为标识符 。
python一些具有特殊功能的标识符,这就是所谓的关键字关键字,是python已经使用的了,所以允许开发者自己定义和关键字相同的名字的标识符

3.命名方式
• 驼峰命名法
小驼峰式命名法:第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
大驼峰式命名法:每一个单字的首字母都采用大写字母,例如:FirstName、LastName
• 下划线命名法
不过在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如 get_url buffer_size

2. 代码的书写规则

代码的缩进:
代码缩进是指通过在每行代码前输入空格或者制表符来表示每行代码之间的层次关系。而Python语言没有花括号或者begin…end…分割代码块,仅使用冒号和代码缩进区分代码之间的层次结构。通常使用IDE开发工具例如前面介绍过的Pycharm会自动缩进代码,补齐冒号,提高编码效率。
这边仅仅是提出来供大家注意,不要因为代码的缩进问题导致了不期望的结果

注释和语句的分隔
注释是代码的一部分,用于对代码解释说明,例如创建及修改时间等。Python的注释标记是# ,如果知识对于一行代码注释,使用#加若干空格,后面的整行语句就都被注释掉了。对于一段代码说明信息等也是用#,段落之间用#号行分割,Python会忽略#行的内容,跳过这些注释行来执行后面的内容,三引号也可用于注释说明。
例如:
Python的基础语法_第1张图片
语句的分隔:
分号是C,Java等语言中标识语句结束的标志,Python 也支持分号作为语句的结束标志,但是已经不是必需的了,python中的分号可以省略,主要通过换行来识别语句的结束。
print(“Hello Python”)
print(“Hello Python”);
这两句是等价的。
但是如果在一行写多个够,就必须用分号分隔不然python识别不出语句的间隔。例如
x = 1; y = 1; z = 1;
虽然分号可以使用但是不推荐,python倾向于用分行表示分隔,一行只书写一条语句,便于阅读和理解程代码程序。

Python同样支持多行写一条语句,使用“\”作为换行符,例如SQL语句,由于SQL语句较长换行书写更容易阅读与理解,例如
Python的基础语法_第2张图片

3.变量及变量在内存中的原理

变量的概念:
变量是计算机内存中的一块区域。变量可以存储任何值而且值可以改变,命名规则在文章开篇已经说明过。

变量的赋值:
Python中的变量不需要声明,变量的赋值操作就是变量的声明和定义的过程。通俗的说法是Python在给一个变量赋值时,首先解释器会给这个值分配一个内存空间(存储了这个对象的id、type、value),然后将变量指向这个值的地址(也可描述为id(变量),那么当我们重新给变量赋值的的时候,解释器又会给新的值分配一个内存空间,再将变量指向这个新值的地址(id),所以Python改变的是变量所指向的地址,而内存空间里的值(value)是保持不变的。即变量是对象的引用,当给变量a,b赋予相同的值即可说明它们指向同一块内存区域,下面用代码说明一下
Python的基础语法_第3张图片
从结果的显示来看,说明a指向的是不同的内存区域,所以说python改变的是变量所指向的地址,而非内存区域中的数值
Python的基础语法_第4张图片
如上图所示,给变量b赋值b=3,然后变量a,b指向同一块内存区域,也可简单的说是引用了同一个对象。对于python中写保护的对象(不可变)应该都可以内存分配应该都可以这么理解,至于可变序列(列表,字典)内存的分配可自行敲代码验证。

查阅资料知,在C语言中变量所分配到的地址是内存空间中一个固定的位置,当我们改变变量值时,对应内存空间中的值也相应改变(也就是给变量重新赋值改变的是内存地址中的数值,而非简单的改变指向)。

4.数据类型

Python有几种内置的数据类型–数字,字符串,元组,列表和字典。当前主要先说明一下数字和字符串。

数字
Python3的数字类型分为整型,浮点型,布尔型,分数类型,复数类型。使用python编写程序时,不需要申明变量的类型。由pytho内置的基本数据类型来管理变量,在程序的后台实现数值与类型的关联,以及类型转换等操作,可由type函数来查看数字的类型

Python的基础语法_第5张图片
整数和小数
整数 : 所有整数 例如 : a = 1 b = 100 c =999 都是int类型
小数常量 : 所有小数 例如 a = 1.2 b=6.66 用float类型表示

字符串
字符串是由数字、字母、下划线组成的一串字符
注意
• 单引号或双引号不能混合使用
• Python中用一对双引号或者一对单引号包裹的内容就是字符串
• 三引号是python中比较特别的语法,三引号中可以属于单引号,双引号以及换行等字符,并且会保留字符串的格式,示例如下
Python的基础语法_第6张图片
Python的基础语法_第7张图片
转义字符
如果要输出含特殊字符的字串(单引号,双引号等)的字符,需要使用转义字符 \ ,转义操作只需要在特殊字符前面加上 \ 即可。
例如使用单引号表示字符串时,字符串内容又包含有
str = ’ he say ‘Hello Python’ ’
print(str)
单引号是特殊字符 ,需要转义, 输出结果he say ‘Hello Python’

使用双引号或者三引号可以直接输出含有特殊字符的字符串,不需要转义字符
str = “he say ‘Hello Python’”
print(str)
输出结果he say ‘Hello Python’

str = ‘’‘he say ‘Hello Python’ ‘’’
print(str)
输出结果he say ‘Hello Python’
使用三引号表示字符串的时候,单引号后面要留一个空格从而时python可以识别出三引号,不然连在一起就是四引号,python无法正确识别。

这里还要提一句 r’ ‘, 引号内的字符串可以原样输出,不需要转义
str = r’\t你好 ’
print(str)
输出结果 \t你好

格式化字符串(这里我觉得还是很重要的)
• 第一种格式化字符串 拼串
s1 = "hello "
s2 = “python”
s = s1 + s2
print(s)
#输出结果 hello python

• 第二种格式化字符串 参数传递
s = “hello python”
print(“s =”,s)
#输出结果 s = hello python

• 第三种格式化字符串 占位符
• %s 字符串占位
• %f 浮点数占位
• %d 整数占位
s = “hello python”
print(“字符串%s的长度%d” % (s,len(s)))
#输出结果 字符串hello python的长度12

• 第四种格式化字符串 f’{变量}’
s = “hello python”
print(f’学习python的第一个程序名是{s}’)
#输出结果学习python的第一个程序名是hello python

• str.format ()
s = “hello python”
print(‘这是我的第一个程序名{}’.format(s))
#输出结果这是我的第一个程序名hello python

字符串的其他操作列举一些如下,感兴趣的可自行玩一下
• len() 字符串的长度
• max() 最大值
• min() 最小值
• split()分割字符串
• join()拼接字符串
• find()查找字符串
• replace() 替换字符串
• partition() 把字符串分割为三部分
• 去空格
• s.strip() 左右两边去空格
• s.lstrip() 去左边空格
• s.rstrip() 去右边空格
• 字符串大小写
• s.upper() 全部大写
• s.lower() 全部小写
• s.isupper() 判断是不是大写
• s.islower() 判断是不是小写

Python的基础语法_第8张图片
作业如下
1.a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现

#交换引用
a,b = 6,8
print(a,b)
print(id(a),id(b))
a,b = b,a
‘’’
元组的借用
c = a,b
print(type©)
print(id©)
d = b,a
print(type(d))
print(id(d))
‘’’
print(a,b)
print(id(a),id(b))

#引入中间变量
a,b = 6,8
print(a,b)
print(id(a),id(b))
c = a
a = b
b = c
print(a,b)
print(id(a),id(b))
#打印变量c的引用地址
#print(id©)

2 完成字符串的逆序以及统计
• 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
• 打印出字符串长度
• 使用切片逆序打印出字符串

account = input(“请输入你的账户信息:”)
if(len(account)> 30):
print(“输入有误!当前账户长度%d超出30个字符” % len(account))
account = input(“请再次输入长度不超过30个字符账户信息:”)
print(“第二次输入请确认%s ,长度为%d” % (account, len(account)))
else:
print(f"输入完成请确认{account} ,长度为{len(account)}")
print(“反向输出账户信息如下{}”.format(account[::-1]))

############################添加while循环
while True:
account = input(“请输入你的账户信息:”)
if(len(account)>30):
print(“输入有误!当前账户长度%d超出30个字符” % len(account))
continue
else:
print(f"输入完成请确认{account} ,长度为{len(account)}")
print(“反向输出账户信息如下{}”.format(account[::-1]))
break

3 要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入
• 用户名长度6-20,用户名必须以字母开头
• 密码长度至少6位,不能为纯数字,不能有空格

import re
print(“欢迎来到注册页面”)
username = input(“请输入用户名:”)
if(len(username)>= 6 and len(username)<= 20):
begin = re.match("^[a-zA-Z]",username)
if(begin):
print(f"用户名{username}合法!!!")
password = input(“请输入登录密码:”)
if(len(password)<6):
print(“输入的密码%s长度%d不合法,最少6个字符” % (password, len(password)))
else:
pwdCheck1 = re.match("(^\d{1,}$)",password)
# print(“pwdCheck1=”, pwdCheck1)
pwdCheck2 = re.search("[\s]",password)
# print(“pwdCheck2=”, pwdCheck2)
if(pwdCheck1):
print(f"输入的密码{password}不合法!不能为纯数字")
elif(pwdCheck2):
print(f"输入的密码{password}不合法!不能含有空格")
else:
print(f"输入的密码{password}合法,完成注册。")
else:
print(“用户名必须以字母开头!!请重新输入”)
else:
print(“用户名长度{}过长,请重新输入”.format(len(username)))

你可能感兴趣的:(python,字符串)