上节内容回顾

1.python的注释

# 单行注释  pycharm快捷键:ctrl+?
'''多行注释'''
"""多行注释"""

2.python的编码规范(PEP8)

利用pycharm自动格式化代码的功能反向推导规范要求
1.单行注释如果跟在代码后面
警号跟代码空两格 注释内容与警号空一格
2.符号左右两边如果有数据/变量
两边都应该空一格
快捷键:Ctrl+Alt+L

3.变量与常量的基本使用

1.目的是为了让计算机能够记录事物的状态
2.变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符
3.等号 = 运算符左边是一个变量名,等号 = 运算符右边是存储在变量中的值(先看赋值符号的右边,再看赋值符号的左边)
# 在python中没有真正意义上的常量,在其他编程语言有真正的常量

4.名字的命名规范,风格

1.只能包含数字、字母、下划线
2.数字不能开头
3.不能与关键字冲突
4.尽量做到见名知意
5.两种风格
(1)下划线
name_from_db = 'zhang'
(2)驼峰体
NameFromDb = 'zhang'
nameFronDb = 'zhang'

5.基本数据类型,整型,浮点型,字符串

"""数据类型就类似于是事物的多种不同的状态(表现形式)"""
1.整型 int
age = 18
2.浮点型 float
weight = 180.5
3.字符串 str
name = 'zhang'

本章内容概要

1.基本数据类型

2.与用户交互

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

4.运算符

本章内容详解

1.基本数据类型

1.1数据类型之列表(list)

1.本质
能够存储多个数据 并且能够方便的获取整体或者局部
2.基本使用
l1 = [1, 2, 3, 4, 5]
3.语言描述
中括号括起来 内部可以存放多个数据值 数据值与数据值用逗号隔开 数据值可以是任意数据类型
如:l2 = [1, 1.2, 'zhang', [1, 2]]
4.索引取值
name_list = ['张三', '李四', '王二']
'''索引取值:在IT领域数字的起始位置通常是从0开始 现实生活中是从1开始'''
print(name_list)
结果:['张三', '李四', '王二'] #全部
print(name_list[0])
结果:张三 #张三
print(name_list[2])
结果:王二 #王二
print(name_list[0:2]) #切片
结果:['张三', '李四']
# print(name_list[100]) # 索引超出范围直接报错
例:取8
取8
l1 = [1, 2, [3, 4, 5, [6, 7, 8], 9]]
'''遇到复杂构造的数据 先明确整体有几个数据值 然后再一步步拆分'''
# 1.先取8所在的小列表
print(l1[2]) # [3, 4, 5, [6, 7, 8], 9]
l2 = l1[2] # 将索引取值获取到的数据绑定给l2
# 2.再获取8所在的小小列表
print(l2[3]) # [6, 7, 8]
l3 = l2[3] # 将索引取值获取到的数据绑定给l3
# 3.变成了最简单的索引取值情况
print(l3[2])
'''熟练之后 上述可以简写成一步完成'''
print(l1[2][3][2])

1.2数据类型之字典(dict)

1.本质
能够存储多个数据 并且能够方便的获取整体或者局部 并且数据具有对于解释
2.基本使用
info_dict = {'姓名': 'jason', '年龄': 18, '爱好': 'read'}
3.语言描述
大括号括起来 内部可以存放多个数据 数据的组织形式是K:V键值对
K是对V的描述性性质的信息 一般是字符串
V是真实的数据值 可以是任意数据类型
4.按K取值
info_dict = {'姓名': 'jason', '年龄': 18, '爱好': 'read'}
'''字典取值:字典无法使用索引取值(因为字典是无序的) 可以使用按K取值'''
print(info_dict['姓名']) # jason
print(info_dict['年龄']) # 18
print(info_dict['家产']) # K不存在直接报错
练习 取age
data = {'name': 'jason', 'others': [111, 222, {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}]}
(1)
print(data['others']) # [111, 222, {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}]
l1 = data['others']
print(l1[2]) # {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}
l2 = l1[2]
print(l2['a3']) # [123, {'name': 'jason1', 'age': 18}]
l3 = l2['a3']
print(l3[1]) # {'name': 'jason1', 'age': 18}
l4 = l3[1]
print(l4['age'])
(2)
print(data['others'][2]['a3'][1]['age'])

1.3数据类型之元组(tuple)

1.本质
能够存储多个数据 并且能够方便的获取整体或者局部
与列表的区别在于元组内数据值不能"直接修改" 而列表可以
所以元组有一个小外号>>>:不可变的列表
2.作用
一般用于存储一些只能看不能改的数据
3.基本使用
t1 = (1, 2, 3)
4.语言描述
小括号括起来 内存可以存放多个数据值 数据值与数据值之间逗号隔开
数据值可以是任意数据类型
5.与列表对比
l1 = [1, 2, 3]
t1 = (1, 2, 3)
print(l1[0])
print(t1[0])
l1[0] = 'zhang' # 将列表索引0重新绑定数据值jason
print(l1) # ['zhang', 2, 3]
t1[0] = 'tony' # 将元组索引0重新绑定数据值tony 直接报错!!!
print(t1)

1.4数据类型之集合(set)

1.本质
集合只用于去重和关系运算
去重:自动去除重复的数据
关系运算:判断两个集合之间数据的关系(共同好友 共同点赞)
2.基本使用
s1 = {1, 2, 3, 4, 5}
3.定义空集合
d1 = {}
s1 = {}
print(type(d1)) # dict
print(type(s1)) # dict
ss = set() # 必须使用关键字才能定义空集合
print(type(ss))

1.5数据字典之布尔值(bool)

1.本质
用来表示事物是否可行 是否正确 是否合理
总共就两个值
2.基本使用
is_right = True # 真 可以 正确
is_delete = False # 假 不可以 错误
3.详细介绍
布尔值看似很简单 很少见 其实在程序中是最多的 也是使用频率最高的
存储布尔值的名字一般使用is开头
4.布尔值类型转换
程序中所有的数据类型都可以转成布尔值
布尔值为False的数据有
0 None 空字符串 空列表 空字典 ...
除上述之外所有的数据对于的布尔值都是True
5.所有的编程语言都有布尔值 只不过关键字和值可能有变化(了解)
typeof true
'boolean' # js中就不一样

2.与用户交互

1.输入
向计算机传递信息
input() # 获取用户输入
name = input('请输入您的用户名>>>:')
"""
1.先获取用户输入的数据
2.再赋值给左边的名字name
3.之后就可以通过名字name反复的使用用户输入的数据
"""
print(name)
input获取到的用户输入都会转成字符串类型
2.输出
计算机向外界输出信息
print() # 打印数据值
print(123) # 括号内可以直接放数据值
name = 'zhang'
print(name) # 括号内也可以放名字
print(123,321,323) # 括号内也可以一次性打印多个值
print(name1,name2,name3,name4)
print(123,name,3333,name1)
"""
换行符:\n \r \r\n end=''
最早起的换行是 \r\n
后面简化成了 \n \r(不同的操作系统可能会有变化)
不用版本的解释器
python3.X print()
python2.X print
"""

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

info = "亲爱的xxx你好!你xxx月的话费是xxx,余额是xxx"

在python中如果想要占位 需要使用占位符
%s: 支持所有数据类型替换 (以后我们使用最多的就是%s)
info1 = "亲爱的%s你好!你%s月的话费是%s,余额是%s"
print(info1 % ('zhang', 5, 100, 999999999999))
print("亲爱的%s你好!你%s月的话费是%s,余额是%s" % ('tony', 5, 999, -100)) %d: 只支持给数字占位
info2 = "亲爱的%d你好!你%d月的话费是%d,余额是%d"
print(info2 % (123, 5, 100, 999999999999))
print("亲爱的%d你好!你%d月的话费是%d,余额是%d" % (123, 5, 999, -100)) 产生固定位数的数据(总共8位 不够则使用0填充)
print('%08d' % 123) # 00000123

4.运算符

4.1算数运算符

以下假设变量a=10,变量b=20

# 变种情况
a = 10
a = a + 10 可变写 a += 10
a = a - 10 可变写 a -= 10
a = a * 10 可变写 a *= 10
a = a / 10 可变写 a /= 10

4.2比较运算符

以下假设变量a为10,变量b为20

4.3多种赋值符号

例1:
x = 10
y = x
z = y
# 链式赋值
x = y = z = 10
例2:
m = 1
n = 2
# 让m绑定n绑定的数据值 让绑定m绑定的数据值
m = n
n = m
print(m)
print(n)
#错误,结果m,n都为2
'''方式1:利用中间变量'''
a = m
m = n
n = a
print(m, n)
'''方式2:交叉赋值'''
m, n = n, m
print(m, n)
例3:
name_list = ['zhang', 'tony', 'kevin']
# 用三个不同的名字存储三个不同的人名
name1 = name_list[0]
name2 = name_list[1]
name3 = name_list[2]
'''解压赋值:赋值符号的左边至少有两个及以上的名字 才能称之为解压赋值'''
name1, name2, name3 = name_list
#述操作需要保证左边的名字和右边的数据值 个数一致
"""特殊情况 带解压的数据非常的多"""
l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99]
a, b, *c, d = l1 # *在解压赋值的时候会自动将多余的数据值组织成列表赋值给*号后面的变量名
print(a) # 11
print(b) # 22
print(c) # [33, 44, 55, 66, 77, 88]
print(d) # 99
*a, b, c = l1
print(a) # [11, 22, 33, 44, 55, 66, 77]
print(b) # 88
print(c) # 99

作业

1.获取用户信息并打印出下列格式
------------ info of XXX -----------
Name : XXX
Age : XXX
gender : XXX
Job : XXX
------------- end ----------------- 解:
name = input('请输入您的名字:')
age = input('请输入您的年龄:')
gender = input('请输入您的性别:')
job = input('请输入您的工作:')
info1 = '''
------------ info of %s -----------
Name : %s
Age : %s
gender : %s
Job : %s
------------- end -----------------
''' % (name, name, age, gender, job)
print(info1)

print(info1 % (name, name, age, gender, job))

print('''
------------ info of %s -----------
Name : %s
Age : %s
gender : %s
Job : %s
------------- end -----------------
''' % (name, name, age, gender, job))

2.自行研究输入输出在python2和python3中的区别
'''python2现在几乎不用 但是我们得知道它的一些特性'''
2.1.输入的区别
python3只有一个input() 并且都转成字符串类型
python2有两个获取用户输入的方式
input()
输入的数据必须自己加上数据的特征 输啥就是啥
>>> name = input('name>>:')
name>>:123
>>> type(name)
<type 'int'>
>>> name = input('name>>:')
name>>:zhang
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'zhang' is not defined
>>> type(name)
<type 'int'>
>>> name = input('name>>:')
name>>:'zhag'
>>> type(name)
<type 'str'> 还能够识别一些简单的代码(了解即可)
raw_input()
等价于python3里面的input 接收的数据都会转成字符串
2.2.输出的区别
python3只有print()一种用法
python2有两种用法 print print()

最新文章

  1. 解决play-1.4.0在linux或mac下提示No such file or directory的问题
  2. 移动APP 中文输入法下的搜索优化
  3. 用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed,probable Oracle Net admin error
  4. libharu 源码编译 VS2010
  5. MySQL Server类型之MySQL客户端工具的下载、安装和使用
  6. 【转】Linux系统性能分析命令
  7. Oracle JDBC版本区别(转)
  8. C利用宏语言(#,##,do…while(0)盛大)
  9. hdu_1429_胜利大逃亡(续)(BFS状压)
  10. jQuery生成元素(table)并绑定样式和事件
  11. Qt5中this application has requested the runtime to terminate it in an unusual way 无法运行问题的解决
  12. 盒子模型、IFC、BFC和Collapsing margins
  13. Spring Boot(十二)单元测试JUnit
  14. Benchmarking Apache Kafka: 2 Million Writes Per Second (On Three Cheap Machines)
  15. 使用webdriver+urllib爬取网页数据(模拟登陆,过验证码)
  16. python类的内建方法
  17. 第十六单元 yum管理RPM包
  18. js面向对象实例
  19. LAB4
  20. PHP查询登录中的sql注入

热门文章

  1. Ajax错误处理
  2. C# 中托管内存与非托管内存之间的转换
  3. Java面试整理(精简版)
  4. Java 线程安全 与 锁
  5. Halo 开源项目学习(六):事件监听机制
  6. stm32F103C8T6通过写寄存器点亮LED灯
  7. python3 获取函数变量
  8. 面试官问:浏览器输入 URL 回车之后发生了什么?
  9. Java 14中对switch的增强,终于可以不写break了
  10. 5分钟了解二叉树之AVL树