python_ 运算符与分支结构
# 运算符与分支结构
### 运算符
- 赋值运算符
- 用'='表示,左边只能是变量。
- 算术运算符
- +、-、*:加、减、乘
- /:除法运算,结果是浮点数
- //:除法运算,结果是整数
- %:求余
- **:求幂
- 复合运算符
- +=、-=、*=、/=、//=、%=、**=
- 示例:`a += b`等价于`a = a + b`
- 关系运算符
- `>、>=、<、<=、==、!=`
- 表达式:由操作数和运算符构成的式子
- 关系表达式:由操作数和关系运算符构成的式子
- 关系表达式是有值的:符合数学逻辑值为真(True)、不符合数学逻辑值为假(False)
- 逻辑运算符
- 与(and):两边的表达式同时为真,结果才为真。
```python
a = 20
# 通用写法
# print(a>=10 and a<=100)
# 特有写法
print(10 <= a <= 100)
b = 10
print(b%3 == 0 and b%5 == 0)
```
- 或(or):两边的表达式一个为真,结果就为真。
```python
year = int(input('请输入一个年份:'))
print((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
```
- 非(not):用于取反表达式,真变假,假变真。
- 经常伴随着隐式类型转换
- 使用not是为了简化书写
- 成员运算符
- in、not in:判断一个值是否在另一个变量中
- 说明:通常用在字符串、列表、元组、集合、字典等成员的判断
- 示例:
```python
lt = [1, 2, 3]
print(8 in lt)
print(8 not in lt)
d = {'name': 'ergou', 'age': 18}
```
# 字典成员判断的是键
print('name' in d)
```python
- 位运算符(了解)
- &:按位与,对应的数据位同时为1,结果上对应的位才为1
- |:按位或,对应的数据位一个为1,结果上对应的位就为1
- ^:按位异或,对应的数据位相同时结果上的位为0,不同时结果上位为1
- ~:按位取反,数据的每一位,0变1,1变0
- <<:按位左移,左移一位相当于乘以2
- >>:按位右移,右移一位相当于除以2
- 优先级与结合性
- 语法中没有明确规定运算符的优先级与结合性,即使明确说了你也不一定能记得住。
- 建议:使用时不用刻意记录优先级与结合性,当需要明确指定时添加括号即可。
### 流程控制
- 说明:
- 按照程序的执行流程,程序可以分为三种结构:顺序结构、分支结构、循环结构
- 顺序结构:代码按照从上到下的顺序依次执行,没有语法要求。
- 代码层次:python中的代码块不是通过大括号表示的,而是通过缩进来表示。
- 分支结构(if-else)
- 格式1:适合于生活中的条件执行问题
```python
if 表达式:
语句块
```
> 执行流程:当程序执行到if语句时,首先判断表达式的真假。若表达式的值为真,则指定缩进的语句块;若表达式的值为假,则跳过语句块执行后面的内容。
- 格式2:适合于解决生活非此即彼的问题
```python
if 表达式:
语句块1
else:
语句块2
```
> 执行流程:当程序执行到if-else语句时,首先判断表达式的值真假。若表达式的值为真,则执行语句块1;若表达式的值为假,则执行语句块2.
- 格式3:适合于解决生活中多种选择的问题
```python
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式n:
语句块n
else:
语句块
```
> 1. elif的个数没有限制
> 2. else可以省略
> 3. 所有的语句块最多只能执行一个
### 字符串格式化
- 示例:
```python
name = '二狗'
like = '王大花'
age = 18
# 格式化
# %s:字符串
# %d:整数
# %f:浮点
# %c:字符
print('俺叫%s,暗恋%s,她今年%d岁' % (name, like, age))
# python特有的格式化方案,推荐使用
print('俺叫{},暗恋{},她今年{}岁'.format(name, like, age))
print('俺叫{2},暗恋{1},她今年{0}岁'.format(name, like, age))
print('俺叫{l},暗恋{n},她今年{a}岁'.format(n=name, l=like, a=age))
```
### ASCII
- 说明:美国信息交换标准代码,就是用一个数字代表一个字符的表示形式。
- 函数:
```python
# 根据字符获取ASCII码
print(ord('A'))
# 根据ASCII码的值获取字符
print(chr(97))
```
### 列表操作
- 示例:
```python
lt = [1, 2, 3, 4, 5]
print(lt[0])
print(lt[-1])
print(lt[1:3])
print(len(lt))
# 修改
lt[0] = 100
# 追加,在列表的末尾添加
# lt.append(200)
# 整体作为一个元素添加
# lt.append([200, 300])
# 将可迭代对象中的每一个元素依次添加到列表
lt.extend([200, 300])
# 在指定位置插入元素
lt.insert(2, 250)
# 删除
# 根据下标删除元素
del lt[0]
# 根据值进行删除
lt.remove(250)
# 返回并删除执行下标的元素,默认最后一个
last = lt.pop(3)
print(last)
lt = [1, 2, 3, 4, 5, 1]
# 根据元素,查找下标(第一个)
print(lt.index(1))
# 统计元素出现的次数
print(lt.count(1))
# 逆序
lt.reverse()
print(lt)
lt = [5, 8, 3, 1, 9]
# 排序,默认升序,可以通过reverse参数指定倒序排
lt.sort(reverse=True)
print(lt)
```
### 集合操作
- 示例
```python
s = {'生辉', '学轩', '俊峰', '鹏基', '二狗'}
# 添加元素
s.add('晓富')
# 删除
# s.remove('二狗')
# 删除不存在的元素时会报KeyError错
# s.remove('狗蛋')
# 有就删除,没有也不报错
# s.discard('狗蛋')
# 返回并删除
# print(s.pop())
# 清空元素
s.clear()
# print(s)
s1 = {'小马', '小芳', '小敏'}
s2 = {'小杜', '小王', '小敏'}
# 并集,捕获改变原集合
# print(s1.union(s2))
# 交集,不会改变原集合
# print(s1.intersection(s2))
# 交集,然后覆盖原集合
# s1.intersection_update(s2)
# 差集,不会改变原集合
# print(s1.difference(s2))
# 差集,然后覆盖原集合
# s1.difference_update(s2)
# print(s1)
# 判断是否没有交集
print(s1.isdisjoint(s2))
# 判断是否是另一集合的子集
print(s1.issubset(s2))
# 判断是否是另一集合的父集/超集
print(s1.issuperset(s2))
```
### 字典操作
- 示例
```python
d = {'name':'ergou','age':18}
#获取成员
print(d.get('name','默认'))
#修改元素
#元素存在直接更改
#d['name'] = '二狗'
#元素不存在则添加
#d['height'] = 180
#更新,存在的覆盖,不存在的添加
#d.update({'name':'二狗','height': 180})
#删除
#del d['age']
#返回后删除
#print(d.pop('age'))
#清空
#d.clear()
print(d)
```
### 练习:
- 从终端获取一个年份,判断是否是闰年,是就打印'xxx年是闰年',不是就打印'xxx年不是闰年'
- ```python
s = int(input("请输入一个年份:"))
if s % 100 !=0 and s%4 ==0 or s % 400 == 0 :
print(s,"年是闰年")
else:
print(s,"年不是闰年")
```
- 输入两个整数,打印较大值
- ```python
i = int(input("请输入一个整数:"))
j = int(input("请输入一个整数:"))
if i > j :
print(i)
else:
print(j)b
```
- 输入三个整数,按照从小到大的顺序打印
- ```python
i = int(input("请输入一个整数:"))
j = int(input("请输入一个整数:"))
b = int(input("请输入一个整数:"))
lt = []
lt.append(i)
lt.append(j)
lt.append(b)
lt1 = sorted(lt)
print(lt1[0],lt1[1],lt1[2])
```
- 输入一个三位数,顺序打印个位、十位、百位上的数
- ```python
i = int(input("请输入一个整数:"))
print(int(i%10,),int(i%100//10,),int(i//100,))
```
- 输入一个整数,判断是否既能被3整除,又能被7整除
- ```python
i = int(input("请输入一个整数:"))
print()
if i % 3 ==0 and i % 7 ==0 :
print(i,"既能被3整除,也能被7整除")
else:
print(i,"不能即被3整除,又被7整除")
```
- 输入一个字符,是大写转换为小写,是小写转换为大写,其它字符原样输出
- ```
i = input("请输入一个字符:")
print(i.swapcase())
```
python_ 运算符与分支结构的更多相关文章
- python 运算符与分支结构
运算符与分支结构 运算符 赋值运算符 用'='表示,左边只能是变量 算术运算符 +.-.*:加.减.乘 /:除法运算,结果是浮点型 //:除法运算,结果是整型 %:求余 **:求幂 复合运算符 +=. ...
- Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)
一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...
- Java入门(1) —— 变量、运算符、分支结构和程序员思维的理解
1.计算机语言的发展史: 机器语言:机器语言是指一台计算机全部的指令集合. 汇编语言:为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母.符号串来替代一个特定的指令的二进制 ...
- java 基础 02 数据类型、运算符、分支结构
内容: (1)数据类型 (2)运算符 (3)分支结构 1.数据类型 java语言中的基本数据类型:byte.short.int.long.float.double.boolean.char. 1.1布 ...
- day03 Java_运算符_分支结构
列表: 运算符的练习:算术.关系.逻辑.赋值.字符串连接.条件 分支结构的练习:if结构 分支结构的练习:if...else结构 参考 运算符的练习:算术 输出几个整数取模,验证结果 声明两个整型变量 ...
- Python基础—03-运算符与分支结构
运算符与分支结构 运算符 赋值运算符 用'='表示,左边只能是变量 算术运算符 +.-.*:加.减.乘 /:除法运算,结果是浮点型 //:除法运算,结果是整型 %:求余 **:求幂 复合运算符 +=. ...
- c语言基础表达式, 关系运算符, 逻辑运算符, 位运算符, 数据的取值范围, 分支结构(if...else, switch...case)
1.表达式: 表达式的判断是有无结果(值), 最简单的表达式是一个常量或变量, 如:12, a, 3 + 1, a + b, a + 5 都是表达式 2.BOOL(布尔)数据类型: c语言中除了基本数 ...
- 十一、 BOOL类型、分支结构和关系运算符
BOOL类型:表示非真即假.只有两个值:YES和NO,而二进制只识别二进制数,所以,将YES替换为“1”,NO替换为“0” BOOL数据类型占一字节的空间内存 BOOL数据类型输出为:%lu:输入为: ...
- JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构
JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...
随机推荐
- Math.random()随机生成x~y间的数字
JS如何随机产生数字呢?这就用到了Math.random()方法,它能够随机产生0~1间的数字,这个数可能为0,但会小于1. 那么,如果我想要大于等于1小于10之间的随机整数呢?需要分为以下几步: 1 ...
- stixel-world代码解读
下边缘的求法应该是使用的第二篇论文的方法 上边缘的求法应该是使用的第一篇论文的方法 这是求上边缘的代码: std::vector<float> integralMembership(vma ...
- 机器学习实战之Logistic回归
Logistic回归一.概述 1. Logistic Regression 1.1 线性回归 1.2 Sigmoid函数 1.3 逻辑回归 1.4 LR 与线性回归的区别 2. LR的损失函数 3. ...
- python读取mat文件
一.mat文件 mat数据格式是Matlab的数据存储的标准格式.在Matlab中主要使用load()函数导入一个mat文件,使用save()函数保存一个mat文件.对于文件 load('data.m ...
- 第10章 新建工程-库函数版—零死角玩转STM32-F429系列
第10章 新建工程—库函数版 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...
- mysql 数据库设计规范
MySQL数据库设计规范 目录 1. 规范背景与目的 2. 设计规范 2.1 数据库设计 2.1.1 库名 2.1.2 表结构 2.1.3 列数据类型优化 2.1.4 索引设计 2.1.5 分库分表. ...
- python基础数据类型之字典的操作
一. 字典的简单介绍字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key- ...
- Linux基础知识与命令1(su passwd)
一.Linux的基本原则 1.linux由一个个目的单一的小程序组成,我们一般需要组合小程序来完成复杂的任务 2.Linux的一切都是文件(文件类似于一棵树,包括外设,接口) 3.Linux尽量避免捕 ...
- C语言进阶——变量属性05
C语言变量属性: C语言的变量可以有自己的属性 在定义变量的时候加上“属性”关键字 “属性”关键字指明变量的特有意义 语法:property type value_name; auto关键字: aut ...
- POJ:3190-Stall Reservations
传送门:http://poj.org/problem?id=3190 Stall Reservations Time Limit: 1000MS Memory Limit: 65536K Total ...