3.1 几个概念
表达式
- 表达式: 是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合
- 表达式特点
- 表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响
- 如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出
- 例如:
算术表达式
12 + 13
逻辑表达式
15 > 12
算术和逻辑组合的复杂表示
4 / 7 > 2
语句
- 一个语法上自成体系的单位,它由一个词或句法上有关连的一组词构成
- 语句的执行一般会对程序产生一定的影响,在交互模式中不一定会输出语句的执行结果
例如
print(123) # print
a = input('please input:') # read input
i = 5
if i < 6:
pass # 占位
print('hello')
print(a)
程序(program)
-
函数(function)
函数: 专门用来完成特定的功能的语句
- 函数长的形如:
def xxx():
def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
- 函数的分类:
- 内置函数 : 或者内建函数,这些函数,包含在编译器的运行时库中,程序员不必书写代码实现它,只需要调用既可。
- 自定义函数 : 由程序员自主的创建的函数 当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数
函数的2个要素
python一些具有特殊功能的标识符,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符
例如以下表达不合法
print = 1print(print)
查询系统关键字 ```python import keyword print(keyword.kwlist)
[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’] # 此列表不完全
**
<a name="z83Hd"></a>
### **标识符****概念**
- 开发人员在程序中自定义的一些符号和名称。标识符是自己定义的,如变量名 、函数名等
- **组成:由26个英文字母大小写,数字 0-9 符号 _$**
- **标识符的规则:**
- 1.标识符中可以包含字母、数字、_,但是不能使用数字开头 例如:name1 name_1 _name1 1name(不行)
- 2.Python中不能使用关键字和保留字来作为标识符
- 命名方式
- **驼峰命名法**
- 小驼峰式命名法: 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName,aDog
- 大驼峰式命名法: 每一个单字的首字母都采用大写字母,例如:FirstName、LastName
- **下划线命名法**
- 在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如 get_url buffer_size
<a name="mLwWi"></a>
## 变量
- 变量是计算机内存中的一块区域,存储规定范围内的值,值可以改变,通俗的说变量就是给数据起个名字。
- 变量命名规则
- 变量名由字母、数字、下划线组成要符合标识符的命名规范
- 数字不能开头
- 不能使用关键字
- 变量可以是很多的数据类型,不仅仅局限于整数(int)
- 注意 : 两个对象相等和两个对象是同一个对象是两个概念
<br />
<a name="aiSWk"></a>
### 引用变量
- 两个引用指向同一个int数据
```python
a = 10
b = 10
print(id(a), id(b))
结果:地址一样
两个引用指向同一个str数据
str1 = 'abcdefg'
str2 = 'abcdefg'
print(id(str1), id(str2))
结果:地址一样
两个引用指向同一个list数据
list1 = [1, 2, 3]
list2 = [1, 2, 3]
print(id(list1), id(list2))
结果:地址不一样
拷贝
list1 = [1, 2, 3]
list2 = list1.copy()
print(id(list1), id(list2))
结果:地址不一样
a = 1 b = 1
print(id(a),'|', id(b))
140704525715104 | 140704525715104
d = [1, 2, 3]e = [1, 2, 3]
print(id(d),'|', id(e))
2625410563520 | 2625411844288
print(d is e) # 判断的是id
print(d == e) # 判读的是值
False
True
- 任何整数在内存中有固定的位置
作业
1.a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现
# 1st approach
a, b = 6, 8print('a=', a, 'b=',b)
k = a
a = b
b = k
print('a=', a, 'b=',b)
a= 6 b= 8
a= 8 b= 6
# 2nd approach
a, b = 6, 8print('a=', a, 'b=', b)
a, b = b, a
print('a=', a, 'b=', b)
print("a= %d, b= %d" % (a,b))
a= 6 b= 8
a= 8 b= 6
a= 8, b= 6
- 完成字符串的逆序以及统计
- 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
打印出字符串长度
str1 = input('Please input a string:')
while len(str1) >= 31:
str1 = input('The string length is not less than 31, please input again: ')
print('Qualified input:', str1)
print('String length is: ', len(str1))
Please input a string:dddiieeeeeeeeeeeåpdfåclökgopejkflrplöxdkföcllldsee
The string length is not less than 31, please input again: ienisdhoifjeo
Qualified input: ienisdhoifjeo
String length is: 13
使用切片逆序打印出字符串
str2 = input('Please input a string:')
print('There reverse order: ', str2[::-1])
Please input a string:abcdefghijklmnopqrstuvwxyz
There reverse order: zyxwvutsrqponmlkjihgfedcba
- 要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印不符合的原因,并提示重新输入
- 用户名长度6-20,用户名必须以字母开头
- 密码长度至少6位,不能为纯数字,不能有空格
```python
user_name = input(‘user name:’)
check user name
while len(user_name) < 6 or len(user_name) > 20 or not user_name[0:1].isalpha(): if len(user_name) < 6 or len(user_name) > 20:
if not user_name[0:1].isalpha():user_name = input('The user name should be more than 6-20 digits, please input your user name again:')
print(‘user name:’, user_name)user_name = input('The user name should not be started with an alphabet, please input your user name again: ')
password = input(‘password: ‘)
check password
while len(password) < 6 or password.isdigit() or ‘ ‘ in password: if len(password) < 6: password = input(‘The password must be longer than 6 digits, please input your password again:’) if password.isdigit(): password = input(‘The password must not be pure number, please input your password again:’) if ‘’ in password: password = input(‘The password must not have spaces in it, please input your password again:’) print(‘password:’, password)
```python
user name:eiie
The user name should be more than 6-20 digits, please input your user name again:ieiiiiiiiiiiiiiiiiiiifjjggjj
The user name should be more than 6-20 digits, please input your user name again:4444 iieiei
The user name should not be started with an alphabet, please input your user name again: dkjrierr 4dfk
user name: dkjrierr 4dfk
password: isen
The password must be longer than 6 digits, please input your password again:icki233 i8
The password must not have spaces in it, please input your password again:4444444444444444
The password must not be pure number, please input your password again:dineikdi8'
The password must not have spaces in it, please input your password again:dieinci83kk'
password: dieinci83kk'