Python语法
Python基础语法(if语句、for循环、while循环)
1.几个概念
1.1表达式
- 表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合
- 表达式特点
表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响
如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出
1.2 语句
- 一个语法上自成体系的单位,它由一个词或句法上有关连的一组词构成
- 语句的执行一般会对程序产生一定的影响,在交互模式中不一定会输出语句的执行结果
1.3程序(program)
- 程序就是由一条一条的语句和一条一条的表达式构成的。
2.标识符
2.1关键字
- python一些具有特殊功能的标识符,这就是所谓的关键字关键字,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符
2.2标识符概念
-
开发人员在程序中自定义的一些符号和名称。标识符是自己定义的,如变量名 、函数名等
-
组成:由26个英文字母大小写,数字 0-9 符号 _$
-
标识符的规则:
- 标识符中可以包含字母、数字、_,但是不能使用数字开头 例如:name1,name_1_name1 ,1name(不行)
- Python中不能使用关键字和保留字来作为标识符
-
命名方式
-
驼峰命名法
- 小驼峰式命名法: 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
- 大驼峰式命名法: 每一个单字的首字母都采用大写字母,例如:FirstName、LastName
-
下划线命名法
- 不过在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如 get_url buffer_size
-
3.基本数据类型
python支持3种不同的数值类型:整数、浮点数、复数、布尔
1、整数:
python可以处理任意大小的整数,包括负整数,写法与数学写法相同,
在python中经常以十进制表示(0d),有时也用十六进制(0x)、八进制(0o)、
二进制(0b)表示。
python的整数长度为32位,并且通常是连续分配内存地址空间的。
2、浮点数:
浮点数也就是小数,按照科学记数法表示时,浮点数的小数点位置是可变得,
如:1.28*10^9和12.8*10^8是相等的。对于很大或很小的浮点数,必须用科学
记数法表示,把10用e代替,1.28*10^9就是1.23e9,或者12.8e8,0.000012可以写成1.2e5。
整数与浮点数的转换
int --> float float(a=1) 整数转换成浮点数
float --> int int(a=1.1) 浮点数转换成整数
3、复数:
复数由 实数部分 和 虚数部分 构成,可以用 a + bj,或者 complex(a,b) 表示,复数的
实部a 和 虚部b 都是浮点数。
4、布尔:
在python中布尔型只有2个值,True 和 False,用bool()表示。bool(0) 和bool(0.0)
布尔值是 False,其他为 True;空字符串的 bool 值为 False,其它的都为 True。
注意空格字符串为 True;空列表的 bool 值为False,其它的都为True;None 的
bool 值永远为 False。
and、or、not 运算都属于bool运算。
4.变量
-
变量是计算机内存中的一块区域,存储规定范围内的值,值 可以改变,通俗的说变量就是给数据起个名字。
-
变量命名规则
- 变量名由字母、数字、下划线组成要符合标识符的命名规范
- 数字不能开头
- 不能使用关键字
-
变量的运算
- 变量的运算就是正常的四则运算 ,需要注意的是在运算过程中含有浮点数,那么它返回的就是一个浮点数类型
5.字符串
-
Python字符串
-
1、字符串是以单引号’'或双引号""括 起来的任意文本,注意单引号和双引号必须成对出现。
-
2、字符串是序列数据结构 ,所以我们可以通过下标将字符串中某个字母取出来。
下标也可称为索引默认从0开始。 -
3、字符串切片 a[开始索引:结束索引:步长],步长 不能为0,也不允许为浮点数
例如:
str = “hello world”
a = str[::1]
print(a) -
4、切边左闭右开:截取从2-5位置的字符串
a=num_str[2:6]
print(a) -
5、字符串类型转换
int --> str str(a=1)
str --> int int(a=‘123’) -
6、字符串组成方式:字符串相加,字符串格式化
a = ‘1’+‘2’ 字符串相加
%s %d %f 字符串格式化
a.format() 字符串格式化
python3.6.4 引入 f’’ 字符串格式化
例如:print(f’您的信息逆序输出为:{x}’)
-
6.作业
作业1:
a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现
"""
作业1:a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现
"""
'''方法1'''
a = 6
b = 8
a, b = b, a
print(a, b)
'''方法2'''
a = 6
b = 8
c = b
a, b = c, a
print(a, b)
输出1:
作业2:
完成字符串的逆序以及统计
• 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
• 打印出字符串长度
• 使用切片逆序打印出字符串
while True:
n = input("请输入一串小于31字符的信息:")
n_len = len(n)
if len(n) < 31:
print(f'信息长度是:{n_len}')
x = n[::-1]
print(f'您输入的信息是:{n}')
print(f'您的信息逆序输出为:{x}')
break
else:
print("输入长度过长,请重新输入!")
输出2:
作业3:
要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入
• 用户名长度6-20,用户名必须以字母开头
• 密码长度至少6位,不能为纯数字,不能有空格
while True:
user_name = input("请输入用户名:")
user_password = input("请输入密码:")
if len(user_name) < 6: # 用户名长度是否小于6
print("您的用户名输入长度小于6位,请重新输入") # 用户名长度是否大于20
elif len(user_name) > 20:
print("您的用户名输入长度大于20位,请重新输入")
if user_name[0].isalpha(): # 判断用户名是否为字母开头
pass
else:
print("您的用户名首位不是字母,请重新输入")
l_password = user_password.split() # 使用split()方法去除密码中的空格
if len(l_password) == len(user_password): # 判断原密码与去除空格后的密码长度,不一样则有空格。
pass
else:
print("您的密码包含空格,请重新输入")
if len(user_password) < 6: # 判断密码长度是否小于6
print("你的密码位数小于6位,请重新输入")
elif user_password.isdigit(): # 判断密码是否是字母加数字组合
print("您的密码是纯数字,请用字母+数字组合重新输入")
输出3:
可以自行验证,代码有些繁琐,后期在优化。