python进阶之路4基本运算符、格式化输出
内容回顾
- PEP8规范
代码编写规范及美观
python注释语法
平时养成写注释的习惯
1.警号
2.三个单引号
3.三个双引号
常量与变量
1.变量语法结构
变量名 赋值符合 数据值
2.底层原理
1.先看赋值符合右侧
2.再看赋值符号左侧
3.变量名的命名规范
1.数字、字母、下划线
2.数字不能开头
3.变量名尽量做到见名知意
4.变量名尽量不要与关键字冲突
4.变量名命名风格
下划线
驼峰体
大驼峰
小驼峰
5.常量
全大写
python基本数据类型
int整型
float浮点型
str字符串
四种定义方式
list列表
索引取值
dict字典
按键取值
基本数据类型之布尔值bool
1.用来判断事物的对错 是否可行 主要用于流程控制中
2.只有两种状态
True 对的 真的 可行的
False 错的 假的 不可行的
3.python中所有的数据都自带布尔值
布尔值为False的数据有: 0 None '' [] {}
布尔值为True的数据有:除了上面的都是True
4.存储布尔值的变量名一般推荐使用is 开头
is_delete = False
is_alive = True
"""
很多程序中提供的注销账户的功能 其实底层并没有删除数据 而是修改了数据的状态
id username password phone is_delete
1 jason 123 110 1
2 kevin 321 120 0
"""
基本数据类型之元组tuple
1.也称为‘不可变’的列表
元组内作业绑定的内存地址不能修改
2.小括号括起来 内部存放多个数据值 数据值与数据值之间逗号隔开 数据值可以是任何数据类型
3.代码实现
t1 = (11, 22, 'jason')
4.元组与列表的对比
# l1 = [11,22,33]
# print(l1[0]) # 获取索引0对应的数据值
#
# l1[0] = 666
# print(l1) # [666, 22, 33]
# t1 = (11,22,33)
# # print(t1[0])
# t1[0] = 999
# print(t1) # 报错
t1 = (11, 22, [111, 222])
t1[2][1] = 666
print(t1) # (11, 22, [111, 666])
"""
A.直接报错
B.(11, 22, [111, 666])
C.不知道 超出了认知
"""
5.元组内如果只有一个数据值
# t1 = (1)
# t2 = (11.11)
# t3 = ('jason')
# print(type(t1),type(t2),type(t3)) # <class 'int'> <class 'float'> <class 'str'>
# t1 = (1,)
# t2 = (11.11,)
# t3 = ('jason',)
# print(type(t1),type(t2),type(t3)) # <class 'tuple'> <class 'tuple'> <class 'tuple'>
"""
建议:以后在使用可以存放多个数据值的数据类型时 如果里面暂时只有一个数据值 那么也建议你加上逗号
"""
基本数据类型之集合set
1.集合只能用于去重和关系运算
pass
2.集合内数据只能是不可变类型
pass
3.大括号括起来 内部存放多个数据值 数据值与数据值之间逗号隔开 数据值不是k:v键值对
4.代码实现
s1 = {1,2,3,4,5,6}
5.定义空集合与空字典
{} 默认是字典
set() 定义空集合加关键字
与用户交互
"""
以前银行取钱只能拿着存折去柜台跟小姐姐交流才可以
你想干嘛 我想取钱
请输入密码 滴滴滴密码
想取多少钱 我想取一个亿
...
随后程序代替了小姐姐跟我们交互
ATM机器
"""
1.获取用户输入
input
# 获取用户输入
username = input('请输入您的用户名>>>:')
"""
1.先执行input获取用户输入
2.将输入的数据绑定给变量名username
3.以后资啊程序中就可以使用变量名反复调用用户数据
"""
强调:input获取到的数据都会统一处理成字符串类型
2.输出内部信息
print
1.括号内既可以放数据值也可以放变量名 并且支持多个逗号隔开即可
2.print自带换行符
换行符:\r\n \n(斜杠与字母组合到一起可能会产生特殊的含义)
3.print也可以切换结束符
print(数据,end='默认是\n')
扩展:python2与python3中两个关键字的区别
python2中
input方法需要用户自己提前指定数据类型 写什么类型就是什么类型
raw_input方法与python3中input一致 输入的统一处理成字符串
python2中
print方法有两种使用方式
print 数据值
print(数据值)
格式化输出%s %d
提前定义好一些内容 将来需要使用的时候可以具备修改
eg:奖状、录取通知书、合同
代码实现
在现实生活中大部分情况下使用下划线提示别人填写内容
但是在程序中需要使用占位符:%s %d
info = '%s同志你好'
'''单个占位符'''
# info = '%s同志你好'
# print(info % 'Jason') # Jason同志你好
# print('%s同志你好' % 'tony') # tony同志你好
# print(info % ('jason',))
# print('%s同志你好' % ('tony',))
'''多个占位符'''
# des = '姓名:%s 年龄: %s 爱好:%s'
# print(des % ('jason', 18, 'read'))
# print('姓名:%s 年龄:%s 爱好:%s' % ('tony',18,'rap'))
'''注意事项:有几个占位符就需要几个数据值'''
# print('my name is %s my age is %s' % ('jason',)) # 少了不行
# print('my name is %s my age is %s' % ('jason', 18, 'read')) # 多了不行
'''不同占位符的区别'''
# demo1 = '%s您好 您本月的话费是%s 余额是%s' # %s常见数据类型都支持
# print(demo1 % ('jason', 100, 10000000000000))
# demo2 = '%d您好 您本月的话费是%d 余额是%d' # %d只支持数字类型
# print(demo2 % ('tony', 1000000000, -100000))
'''其他占位符'''
print('%08d'% 123) # 00000123
print('%08d'% 1234324324) # 1234324324
基本运算符+ - * / **幂次方% 取余 //取整
1.数学运算符
+ - * / % // **
简化写法
n = 10
n += 1 # n = n + 1
n -= 1 # n = n - 1
n *= 1 # n = n * 1
n /= 1 # n = n / 1
n %= 1 # n = n % 1
n //= 1 # n = n // 1
n **= 1 # n = n ** 1
2.比较运算符
< > <= >= ==(等于号) !=(不等于)
常用赋值符 交叉赋值、 链式赋值、解压赋值
name_list = ['jason', 'kevin', 'tony', 'oscar']
'''low的写法'''
# name1 = name_list[0]
# name2 = name_list[1]
# name3 = name_list[2]
# name4 = name_list[3]
'''解压赋值语法'''
# name1, name2, name3, name4 = name_list
# print(name1, name2, name3, name4)
'''解压赋值在使用的时候 正常情况下需要保证左边的变量名与右边的数据值个数一致'''
# a, b = name_list # 变量名少了不行
# a, b, c, d, e = name_list # 变量名多了也不行
'''当需要解压的数据个数特别多 并且我们只需要使用其中的几个 那么可以打破上述的规则'''
# a, *b = name_list # *会自动接收多余的数据 组织成列表赋值给后面的变量名
# print(a) # jason
# print(b) # ['kevin', 'tony', 'oscar']
# a, c, *b = name_list
# print(a)
# print(c)
# print(b) # ['tony', 'oscar']
# a, *b, c = name_list
# print(a) # jason
# print(b) # ['kevin', 'tony']
# print(c) # oscar
'''当数据值不准备使用的时候 可以使用下划线作为变量名绑定'''
a, *_, c = name_list
print(a,c)
逻辑运算符 and or not
'''主要配合条件一起使用'''
and 与
and连接的多个条件必须全部成立 结果才成立
eg:
你去相亲提要求:身高必须是160以上、长相必须好看、家里必须有钱、性格必须温柔 身高 and 长相 and 有钱 and 温柔
1 > 2 and 4 < 8 and 10 < 1 and 1 == 2
"""如果条件中全部由and组成那么判断起来非常的简单 只要发现一个不成立 结果就不成立 """
print(1 < 10 and 666) # 666 成立
print(1 < 10 and 2 < 8) # True 成立
print(111 and 222) # 222 成立
如果需要你准确的说出具体的结果值 那么需要按照下列方式
"""如果and左边的条件是成立的 那么就完全取决于右边的条件
右边如果直接是数据值 那么结果就是该数据值 如果是含有表达式 则为布尔值"""
or 或
or连接的多个条件只要有一个成立 结果就成立
eg:
你去相亲提要求:要么家里有钱 或者家里有势 或者长得完美 或者对你死心塌地 有钱 or 有势 or 好看 or 专一
1 > 2 or 4 < 8 or 10 < 1 or 1 == 2 如果条件中全部由or组成那么判断起来非常的简单 只要发现一个成立 结果就成立
# print(1 < 10 or 666) # True
# print(666 or 1 > 10) # 666
print(0 or False) # False
print(0 or 111) # 111
规律用and
not 非
取反
类似于说反话
"""
三者混合使用的时候有优先级之分 但是我们不需要记忆优先级 应该通过代码的形式提前规定好优先级
eg: 先乘除有加减 但是可以使用括号来改变优先级
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
"""
成员运算符in
判断成员在不在个体内
# name_list = ['jason', 'kevin', 'oscar', 'jerry']
# print('tony' in name_list) # False
# print('tony' not in name_list) # True
# print('j' in name_list) # False 列表最小单位是数据值 不能再细分
# s1 = 'hello world'
# print('d' in s1) # 字符串最小单位是单个单个的字符
d1 = {
'username': 'jason',
'pwd': 123
}
print('jason' in d1) # False 字典成员运算只有键参与
print('username' in d1) # True 'username' 'pwd'
身份运算符 is ==
"""
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)
s1 = 'jason jason jason'
s2 = 'jason jason jason'
print(s1 is s2)
不同的环境下可能优化的程度不一样
"""
了解
值相同 内存地址可能不同
内存地址相同 值肯定相同
"""
python进阶之路4基本运算符、格式化输出的更多相关文章
- python中的循环和编码,运算符, 格式化输出
1.while循环 现在让我们来看看python中的while循环 格式为 while 条件 循环体 (break) (continue) 中断循环的关键字有break和continue, brea ...
- Python进阶之路---1.5python数据类型-字符串
字符串 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; ...
- python全栈 流程控制;while 循环 格式化输出 运算符 及编码
python全栈开发 1循环 2break和continue的区别 3格式化输出 4运算符 5编码 一.流程控制while循环 while条件: 代码块(循环体) 1.死循环; while True; ...
- Python学习笔记:第2天while循环 运算符 格式化输出 编码
目录 1. while循环 continue.break和else语句 2. 格式化输出 3. 运算符 3.1 算数运算 3.2 比较运算符 3.3 赋值运算符 3.4 逻辑运算符 3.5 成员运算符 ...
- Python进阶之路---1.2python版本差异
Python2.*与python3.*版本差异 作为一个初学者,我们应该如何选择python的版本进行学习呢,这两个版本有什么区别呢,接下来让我们简单了解一下,以便我们后续的学习. Python版本差 ...
- python摸爬滚打之day02----while循环,运算符,格式化输出
1.while循环 1.1 结构:while +条件判断: while 循环体 else: 条件不成立时语句块 while...else...是一个循环整体,当循环条件成立时执行while循环体内容 ...
- python基础之数据类型,交互,格式化输出,基本运算符
数据类型 1.什么是数据类型? 变量值才是我们存的数据,所以数据类型指的是变量值的种类 2.为何数据要分类? 变量值是用来保存现实世界中的状态的,那么针对不同的状态,就应该用不同类型的数据去表示 3. ...
- Python自动化--语言基础2--运算符、格式化输出、条件语句、循环语句、列表、元组
运算符包括:算术运算符.比较运算符.赋值运算符.逻辑运算符.成员运算符.身份运算符 算术运算符 % 取模(余数) // 取相除的整数部分 / (5/2=2.5) 比较运算符 == 等于 ! ...
- python自动化--语言基础二运算符、格式化输出、条件语句、循环语句、列表、元组
运算符包括:算术运算符.比较运算符.赋值运算符.逻辑运算符.成员运算符.身份运算符. 算术运算符 % 取模(余数) // 取相除的整数部分 / (5/2=2.5) 比较运算符 == 等于 ...
- Python自动化运维之4、格式化输出、文件对象
Python格式化输出: Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[P ...
随机推荐
- 关于IOC容器
1.什么是 IOC (1)控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理 (2)使用 IOC 目的:为了耦合度降低
- 解决console控制台反复打印“WebSocket connection to ws://localhost:9528/sockjs-node/107/uadaszgz.websocket failed:Invalid frame header
element-admin-vue 项目console台一直报websocket连接失败 解决办法 1.vue.config.js中配置devServer.proxy的ws为false (我没成功) ...
- JavaScript基础&实战(3)js中的流程控制语句、条件分支语句、for循环、while循环
文章目录 1.流程控制语句 1.1 代码 1.2 测试结果 2.弹窗提示输入内容 2.1 代码 2.2 测试结果 3.条件分支语句 3.1 代码 3.2 测试结果 4.while和 do...whil ...
- JUC(8)Stream流式计算
文章目录 1.ForkJoin 1.ForkJoin ForkJoin 在JDK1.7 ,并执行任务!提高效率,大数据量 大数据:Map Reduce (把大任务拆分为小任务) ForkJoin特点: ...
- 十九、Service Ingress
Service Ingress Ingress-Nginx github 地址:https://github.com/kubernetes/ingress-nginx Ingress-Nginx 官方 ...
- Redis 先操作数据库和先删除缓存, 一致性分析
初始状态: 数据库和缓存中v=10 第一种,先删除缓存在操作数据库: 线程1准备更新数据库的值v=20,先删除缓存, 此时线程2进来, 缓存未命中,查询数据库v=10, 写入缓存v=10, cpu回到 ...
- JIRA操作之JQL
搜索功能 Jira的搜索功能非常强大,有专用的搜索语言JQL(Jira Query Language).Jira的Python库是基于JQL语法搜索的,返回的是搜索到的问题列表. jira.searc ...
- webpack4--按需加载
在做单页面应用的过程中,通常利用webpack打包文件,将依赖的外部问价单独打一个vendor.js.这样就会有个问题,这个文件会随着你引用的包的增多,体积会越来越大.在路由中利用import 引用文 ...
- vscode代码部署
前言 在本地环境中开发代码时,经常需要将代码上传到服务器环境中,在环境中构建并调试程序.如果手动使用scp.ftp等文件传输程序将代码上传至环境,一次两次还好,反复多次操作则有些繁琐. 为了方便进行本 ...
- 5 分钟速通 SVG
前言 SVG对不少前端来说就是一个熟悉的陌生人,此篇博客是我学习完SVG后做的一个小总结,帮助我快速回忆SVG相关内容. 它不能帮你精通 SVG,但是可以帮你快速了解SVG的一些核心内容,不会迷失在一 ...