【python基础】第05回 数据类型,交互,格式化输出,运算符
上节内容回顾
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()
【python基础】第05回 数据类型,交互,格式化输出,运算符的更多相关文章
- 开发基础 (变量、数据类型、格式化输出、运算符、流程控制、while循环)
一.变量 name = "SmallNine" 等号前面是变量名(标识符),等号后面是变量值 变量的主要作用:就是把程序运算的中间结果临时存到内存里,已备后面的代码继续调用. 变量 ...
- 『Python基础』第8节:格式化输出
现在有一个需求, 询问用户的姓名, 年龄, 工作, 爱好, 然后打印成以下格式 ************ info of Conan ************ name: Conan age: 23 ...
- Python基础灬补充(循环、格式化输出)
for循环&格式化输出 chinese_zodiac = '鼠牛虎兔龙蛇马羊猴鸡狗猪' for year in range(2000, 2013): print("%s年的生肖是:% ...
- python全栈 流程控制;while 循环 格式化输出 运算符 及编码
python全栈开发 1循环 2break和continue的区别 3格式化输出 4运算符 5编码 一.流程控制while循环 while条件: 代码块(循环体) 1.死循环; while True; ...
- python - 用户交互/数据类型/格式化输出/运算符/流程控制单双多分支
python:用户交互: 等用户输入,做反应: username=input("username:")password=input("password:")pr ...
- Python基础篇(格式化输出,运算符,编码):
Python基础篇(格式化输出,运算符,编码): 格式化输出: 格式:print ( " 内容%s" %(变量)) 字符类型: %s 替换字符串 %d 替换整体数字 ...
- python基础语法1 用户交互,基本数据类型,格式化输出,运算符
与用户交互: 输入: python2: input一定要声明你输入的类型 >>> input(">>:") >>:sean Traceba ...
- Python基础(二)--基本数据类型、格式化输出、基本运算符
一.基本数据类型 1.数字类型 #int整型 定义:age=10 #age=int(10) 用于标识:年龄,等级,身份证号,qq号,个数 #float浮点型 定义:salary=3.1 #salary ...
- Python基础 之 变量、用户交互、if条件语句、while循环语句、编码、逻辑运算
一.Python介绍 Python 崇尚优美.清晰.简单 Python是一门动态解释型的强制性定义的语言. 二.编译型和解释型的区别 编译型:一次性将所有与程序编译成二进制文件. 缺点:开发效率低,不 ...
随机推荐
- Codeforces Round #721 (Div. 2)A. And Then There Were K(位运算,二进制) B1. Palindrome Game (easy version)(博弈论)
半个月没看cf 手生了很多(手动大哭) Problem - A - Codeforces 题意 给定数字n, 求出最大数字k, 使得 n & (n−1) & (n−2) & ...
- Pytorch 实现线性回归
Pytorch 实现线性回归 import torch from torch.utils import data from torch import nn # 合成数据 def synthetic_d ...
- 【面试普通人VS高手系列】死锁的发生原因和怎么避免
一个去阿里面试的小伙伴私信我说:今天被一个死锁的问题难到了. 平常我都特意看了死锁这块的内容,但是回答的时候就想不起来. 这里可能存在一个误区,认为技术是要靠记的. 大家可以想想,平时写代码的时候,这 ...
- Protobuf在Python中的应用(序列化数据)
1.了解Protobuf Protocol Buffer是Google的语言中立的,平台中立的,可扩展机制的,用于序列化结构化数据 - 对比XML,但更小,更快,更简单.您可以定义数据的结构化,然后可 ...
- GO语言学习——切片二
使用make()函数构造切片 格式: make([]T, size, cap) 其中: T:切片的元素类型 size:切片中元素的数量 cap:切片的容量 切片的本质 切片的本质就是对底层数组的封装, ...
- centos7系统安装 VMware
安装版本: CentOS-7-x86_64-DVD-2009.iso 下载地址:阿里巴巴开源镜像 第一步:打开虚拟机,新建虚拟机引导,选择高级,下一步. 第二步:默认下一步 第三步:选择最后一项, ...
- OpenStack平台调度策略优化
OpenStack平台报错分析 在OpenStack平台经历大并发的时候,比如同一个平台,大量的用户同时创建云主机(单个用户创建大量云主机不会触发此种现象),会达到云平台的性能瓶颈,导致创建云主机报错 ...
- pyhon对excel的xls与xlsx的读取,写入
import shutilimport osfrom openpyxl import load_workbookfrom xlutils.copy import copyimport win32com ...
- 超全面!1.5w字总结50个Java经典基础面试题(已根据知识点分类)
大家好,我是fancy. 在面试中将基础问题回答好就是成功的一半. 我总结了50道经典的Java基础面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了. 小伙伴们点赞 ...
- intelij idea 好用的插件
简介 记录一下平时使用的插件 Foldable ProjectView 隐藏目录或文件 One Dark theme 主题比较好用 Gitmoji Plus: Commit Button 在 comm ...