*** 开始Python学习第三课***
从基础开始Python学习(4.17)第三课
python语法中基本概念
python中的变量
python数据类型
一. Python语法中的基本概念
1. 语法中基本概念
1.1 表达式
(1)表达式:
是由数字(1 ,2, 3 …),算符(+,-,* ,/ ,%…),数字分组符号(括号),⾃由变量和约束变量等以能求得数值的有意义排列⽅法所得的组合
(2)表达式特点:
-
表达式⼀般仅仅⽤于计算⼀些结果,不会对程序产生实质性的影响
-
在交互模式中输⼊⼀个表达式,解释器会⾃动将表达式的结果输出
1.2 语句
- ⼀个语法上⾃成体系的单位,它由⼀个词或句法上有关连的⼀组词构成
- 语句的执⾏⼀般会对程序产⽣⼀定的影响(如:print(打印语句),input(输入语句)等语句)
1.3 程序
- 程序(program)就是由⼀条⼀条的语句和⼀条⼀条的表达式构成的
1.4 函数
(1)函数就是⼀种语句,函数专⻔⽤来完成特定的功能
(2)函数的形如:xxx()
(3)函数的分类:
-
内置函数 : 或者内建函数,就是由语法规定存在的函数,这些函数,包含在编译器的运⾏时库中,程序员不用单独书写代码实现它,只需要调用既可(如:print(),input(),id() …)
-
⾃定义函数 : 由程序员⾃主的创建的函数 当我们需要完成某个功能时,就可以去调用内置函数,或者⾃定义函数
# 自定义函数的格式如下
def 函数名(参数列表):
函数体
2. 标识符
2.1 关键字
python中⼀些具有特殊功能的标识符,这就是所谓的关键字,是python 已经使⽤的,所以不允许开发者⾃⼰定义和关键字相同的名字的标识(如一下部分)
2.2 标识符
(1)标识符的概念
是开发⼈员在程序中⾃定义的⼀些符号和名称。标识符是⾃⼰定义的,如变量名 ,函数名等
(2)标识符的命名
- 标识符的组成:由26个英文字母大小写(A-Z,a-z),数(0-9),下划线(_)
- 标识符的规则:
- 标识符中可以包含字母、数字、_,但是不能使用数字开头 例如: name1 name_1 _name1
- Python中不能使用关键字和保留字来作为标识符
(3)标识符的命名方式
- 小驼峰式命名法: 第⼀个单词以小写字⺟开始;第⼆个单词的首字母大写,例如:myName、aDog
- 大驼峰式命名法: 每⼀个单字的⾸字⺟都采用大写字母,例如: FirstName、LastName
- 下划线命名法:用下划线“_”来连接所有的单词,⽐如 get_url buffer_size
二. Python的变量
1. 变量的概念
1.1 变量
变量是计算机内存中的⼀块区域,存储规定范围内的值,值可以改变,通俗的说变量就是给数据起个名字
1.2 变量的命名规则
- 变量名由字母、数字、下划线组成要符合标识符的命名规范
- 数字不能开头
- 不能使⽤关键字
注意 : 两个对象相等和两个对象是同⼀个对象是两个概念
1.3 变量的运算
变量的运算就是正常的四则运算,如果在运算过程中含有浮点数,那它返回的就是⼀个浮点数类型
2. 变量在内存中的原理
变量在内存中就是⼀块特定的存储区域(地址)。
2.1 引用变量
- 两个引⽤指向同⼀个int数据 ,结果:地址⼀样
- 两个引⽤指向同⼀个str数据, 结果:地址⼀样
- 两个引⽤指向同⼀个list数据,结果:地址不⼀样
2.2 拷贝
- 拷贝后地址不⼀样
三. Python基本数据类型
1. 数字类型
1.1 整数和浮点数类型
(1)int类型 : 表示所有整数 ,例如 : a = 1, b = 100 ,c =999 都是int类型
(2)float类型 : 所有小数, 例 : a = 1.2 ,b=6.66 用float类型表示
1.2 数字类型转换
int(x) 将x转换为一个整数
float(x) 将x转换到一个浮点数
pi: 数学常量 pi(圆周率,一般以π来表示)
e: 数学常量 e,e即自然常数(自然常数)
2. 布尔值和空值
2.1布尔值和空值
- 布尔: 只有2个值⼀个是True ⼀个是False
- None常量:只有⼀个数值就是None ,也就是空值
3. 字符串
3.1 字符串类型
str类型:表示一串字符,字符是在单引号(‘ ’),双引号( " ")中的任何内容(如数字,汉字等)
var1 = 'Hello World!'
var2 = "Runoob"
var2 = "123458***"
3.2 字符串中的值
(1)Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
(2)Python 访问子字符串,可以使用方括号 [ ] 来截取字符串,字符串的截取的语法格式如下(如字符Runoob):
变量[头下标:尾下标:步长]
在字符串中,从左向右的索引值以 0 为开始值,依次向右增加;而从右向左开始的索引值从-1 开始依次向后递减(索引是从左向右依次取值)
3.3 转义字符
在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符,在反斜杠 \ 之后紧跟的符号显示原意
转义字符 | 描述 |
---|---|
\t | 横向制表符 |
\r | 回车,将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成 |
\n | 换行 |
\v | 纵向制表符 |
’ | 单引号 |
" | 双引号 |
\ | 反斜杠符号 |
r’ ’ | 在此格式中,单引号中的任何字符都显示原意,无特殊意义 |
3.4 字符串的其它操作
(1)字符串的拼接
a = '第一课'
print('python'+ a)
python第一课
可以截取字符串的一部分并与其他字段拼接
var1 = 'Hello World!'
print ("已更新字符串 : ", var1[:6] + 'Runoob!')
(2)字符串格式化
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%f | 格式化浮点数字,可指定小数点后的精度 |
%u | 格式化无符号整型 |
.format | 格式化字符串 |
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
我叫 小明 今年 10 岁!
print ("我叫{}今年 {}岁!".format('小明',18))
我叫小明今年 18岁!
4. 作业
4.1 a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现
(1)使用python的语法
a = 6
b = 8
a,b = b,a
print(a,b)
(2)使用变量的方法
a = 6
b = 8
c = a
a = b
b = c
print(a,b)
4.2 完成字符串的逆序以及统计
(1)设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
(2)打印出字符串长度
(3)使用切片逆序打印出字符串
number = input('请输入不大于31个的字符:')
while len(number) >31:
number = input('您输入的字符大于31,请重新输入:')
print(number)
print(number[::-1])
4.3 要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输⼊
⽤户名⻓度6-20,⽤户名必须以字⺟开头
密码⻓度⾄少6位,不能为纯数字,不能有空格
user_name = input('请输入用户名:')
while len(user_name) < 6 or len(user_name) >20:
user_name = input('您输入的用户名长度必须在6-20之间,请重新输入:')
while user_name[0].isalpha() == False:
user_name = input('您输入的用户名开头必须为字母,请重新输入:')
password = input('请输入用户密码:')
while len(password)< 6:
password = input('输入用户密码必须大于6位,请重新输入:')
while password.isnumeric() == True or ' ' in password:
password = input('输入用户密码不能为全数字,或包含空格请重新输入:')
print('用户名,密码正确')