今日内容总结

1.基本数据类型

布尔值bool

布尔值是用来判断对错的,我们主要用于流程控制中
布尔值只有两种表达方式:
True/False
ps:要首字母大写
Python中的所有数据都是由布尔值的
	布尔值为False的数据为L:0, None, {}, [],''
     其他所有的数据都为True
储存布尔值的变量名一般推荐使用is开头:
例:is_demo
    is_xxx
# 在很多程序中提供注销账户的功能其实底层并没有删除数据 而是修改了数据的状态
id      username password telephone is_xxx
1           2       3         4        1x
他们的现实例子就比如在夜市中拉人去下载并注册他们的APP,尽管你注销了它的账户,但是数据还是会存储在他们的数据库中.

集合set

集合它是能用于去重和关系运算
集合内的数据只能是不可变类型
集合一般是以大括号括起来表示,内部可以存储多个数据值 数据值与数据值之间用逗号分开,数据值不是字典一样的键值对。
实例:
s1 = {1, 3, 5, 7, 9}
定义空集合与字典:
{}它默认就是字典(我们大部分使用字典功能较多)
set() 表示空集合

元组tuple

元组其实与列表非常相似
列表是用中括号[]括起来表示,内部数据值由逗号分开
元组是由()括起来表示,内部数据由逗号分开,数据类型可以是任意类型
但是元组它的索引与绑定内存空间的数据值的关系不能被修改
实例:t1 = (11, 22, [1, 2], {'xiaoming':18})

元组与列表的区别 —重点重点!!!!
t1 = (11, 22, [111, 222])
t1[2][1] = 666
print(t1)
“”"

  • 如图所示,列表中的数据可以轻易替换但是元组不可以
  • 所谓元组的不可变指的是元组所指向的内存中的内容不可变

2.交互

我们在很多场景都需要交互
比如:我想去银行取钱:
我应该带着银行卡去ATM
首先插入银行卡
请选择你需要取多少钱
需不需要发票
...
1.获取用户输入信息
input()
input()可以赋值给变量名
如:
password = input('请输入您的密码:')
这样用户输入数字后就直接通过赋值符号赋值给变量名password
  # 重点:input 获取到的信息统一为字符串类型数据值
ps:在python3中是这样的,但是在python2中 获取的信息取决于用户输入的数据类型
其中raw_input方法与python3中一致,输入的内容统一为字符串类型
2.打印信息
print
1.print()中可以放数据值/变量名,并且支持多个内容,用逗号隔开
2.print自带换行功能
	换行符:\n \r (斜杠与字母组合到一起可能会产生特殊的含义)
3.print也可以切换结束符
	print('小明',end = '*')

python2 print有两种使用方式:
print 数据值
print(数据值)

使用not运算符将布尔值取反python python布尔值赋值_数据库

3.格式化输出(占位符)

# 在日常生活中我们经常会遇到一些格式化输出
比如:
签署的合同,它的大体内容是一致的,在主要信息部分并不相同
我们可以提前把固定的信息制作好,只需要填写会改变的信息即可。
代码:

info = 588
print('小明的工资为:%s' % info)

使用not运算符将布尔值取反python python布尔值赋值_开发语言_02

'''
我们可以看到%s就代替了变量名 info 的内容
我们在在交互中也说过input()可以通过赋值符号绑定给变量名
这样我们就可以让用户输入随意控制变量的值了
'''
那么在Python中我们可以提前定义好一些内容,将来需要的时候可以随时修改
多个占位符怎么实现呢?
我们看一下代码例子:
# desc = '姓名:%s 年龄:%s 爱好:%s'
# print(desc % ('jason', 18, 'read'))
# print('姓名:%s 年龄:%s 爱好:%s' % ('tony', 28, 'rap'))
'''注意事项:有几个占位符就需要几个数据值'''
# print('my name is %s my age is %s' % ('jason',))  # 少了不行
# print('my name is %s my age is %s' % ('jason', 18, 'read'))  # 多了不行

使用not运算符将布尔值取反python python布尔值赋值_数据库_03

使用not运算符将布尔值取反python python布尔值赋值_数据值_04

4.基本运算符

1.数学运算符:
它就跟我们日常生活中学的数学运算符差不多
+ 加号
- 减号
* 乘
/ 除
% 取余
// 整除
** 幂
简化写法:
x = 10 
x += 1 # x = x + 1
x -= 1 # x = x - 1
x *= 1 # x = x * 1
x /= 1 # x = x / 1 
x %= 1 # x = x % 1
x //= 1 # x = x // 1 
x **= 1 # x = x ** 1
2.比较运算符
	< (小于号)   > (大于号)   ==(等于号) !=(不等于号)

使用not运算符将布尔值取反python python布尔值赋值_数据库_05

5.常用赋值符(链式赋值、交叉赋值、解压赋值)

1.链式赋值
例如:上图
格式: x1 = x2 = x3 = 数据值
目的是让各个变量名对应的数据值相同
2.交叉赋值
例如:
它的目的是让变量a与变量b所对应的数据值互换
a = 5 b = 6
我们就可以用交叉赋值语法来写:
a,b = b,a 
或者我们可以用一个第三方变量
data = a  # data 被赋值为5
a = b    # a 被 赋值为6
b = data  # b 被赋值为 5
print(a,b)  # 6 5

使用not运算符将布尔值取反python python布尔值赋值_赋值_06

3.解压赋值:
我们在有一些数据的列表中想要取其中的数据并对应变量名我们就需要到解压赋值方法
例如:

使用not运算符将布尔值取反python python布尔值赋值_开发语言_07

解压赋值方法在使用的时候需要保证左边的变量名与右边的数据值个数一致

使用not运算符将布尔值取反python python布尔值赋值_数据库_08

'''如上图所示,如果我们不把列表里面的所有元素对应上变量名的话,是不能应用这个解压赋值方法的

但是我们如果需要解压的数据特别多,并且我们只需要其中的几个数据即可 那么我们这样做可以打破上述的规则
'''
x1,*x2 = l1 # *会接收多余的数据 组织成列表赋值给后面的变量名(x2)
# 当多余的数据不准备再使用时可以采用下划线来命名(主要是为了方便区分)
x1, *_, x2 = l1

使用not运算符将布尔值取反python python布尔值赋值_赋值_09

如图所示,通过该命令可以得到这种结果。

6.逻辑运算符

逻辑运算符是由 and or not
这三个关键字组成,一般是需要配合条件一起使用的
比如:
and  它是‘与’的意思
or  它是‘或’的意思
not 他是‘非’的意思
and  与其链接的多个条件必须全部成立,结果才可成立
'''例子:
1<5 and 5>10
由于右侧5>10条件不成立
所以print(1<5 and 5>10)的结果为False
1<5 or 5>10
由于左侧条件1<5成立
所以print(1<5 or 5>10)的结果为True
not 1<5 or 5>10
我们知道1<5 or 5>10 的值为True
not 就是取反的意思
所以print(not 1<5 or 5>10)的结果为False


三者混合使用的时候有优先级之分 但是我们不需要记忆优先级 应该通过代码的形式提前规定好优先级    eg: 先乘除有加减  但是可以使用括号来改变优先级    (3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)'''

更多实例在今日作业

使用not运算符将布尔值取反python python布尔值赋值_python_10

7.成员运算符

成员运算符主要是判断个体是否在群体内:
l1 = ['1', '3', '5', '7', '89']
print('55' in l1)  # False
print('1' in l1)  # True
# print('9' in l1)  # False 列表最小单位是数据值  不能再细分

# s1 = 'hello world'
# print('d' in s1)  # True 字符串最小单位是单个单个的字符 

d1 = {
      'username': 'jason',
      'pwd': 123
}
print('jason' in d1)  # False 字典成员运算只有键参与
print('username' in d1)  # True      'username' 'pwd'

8.身份运算符

"""
id()  返回一串数字 该数字可以看成是内存地址
"""
is		判断内存地址是否相同
==     判断数据值是否相同

# l1 = [11, 22, 33, 44, 55, 66, 77, 88]
# l2 = [11, 22, 33, 44, 55, 66, 77, 88]
# print(l1 == l2)  # True
# print(id(l1))
# print(id(l2))
# print(l1 is l2)  # False

# 小整数池
i1 = 11
i2 = 11
print(i1 is i2)
True

s1 = 'jason jason jason'
s2 = 'jason jason jason'
print(s1 is s2)
不同的环境下可能优化的程度不一样 
输出的结果可能是True或者Flase
"""
需要了解:
    值相同 内存地址可能不同
    内存地址相同 值肯定相同
"""

作业:

1.获取用户输入并打印成下列格式
------------ info of Jason -----------
Name : Jason
Age : 18
Sex : male
Job : Teacher
---------------- end -----------------
2.准备说出下列变量名v绑定的结果
v1 = 1 or 3
v2 = 1 and 3
v3 = 0 and 2 and 1
v4 = 0 and 2 or 1
v5 = 0 and 2 or 1 or 4
v6 = 0 or False and 1

v1 = 1 or 3  # 1
v2 = 1 and 3  # 3
v3 = 0 and 2 and 1  # 0
v4 = 0 and 2 or 1  # 1
v5 = 0 and 2 or 1 or 4  # 1
v6 = 0 or False and 1  # False
print(v1, v2, v3, v4, v5, v6)

info = input('请输入开头:')
name = input('请输入姓名:')
age = input('请输入年龄:')
sex = input('请输入性别:')
job = input('请输入工作:')
print(input('------------ info of %s -----------\n Name : %s \n Age  : %s \n Sex  : %s \n Job  : %s \n---------------- end -----------------' % (info, name, age, sex, job) ))

今日作业内容