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 ...
随机推荐
- 【转】Xcode真机测试could not find developer disk image解决方法
在使用Xcode进行真机调试的时候,有时根据真机的系统不同,会出现could not find developer disk image 错误,这是由于真机系统过高或者过低,Xcode中没有匹配的配置 ...
- R 语言学习日志 1
1. CSV文件的的读取与写出 2. 数据集筛选 3. 简单随机抽样 sample函数 正文: 1. CSV文件的的读取与写出 文件读取: df2 <- read.table(" ...
- N76E003---输入捕获
输入捕获 根据芯片手册,定时器2可以作为输入捕获使用,设置非常简单,官方也提供了宏给我们使用 void Time2_cap_init(void) { /******* 输入捕获CF设置 ******* ...
- 在c#中using和new这两个关键字有什么意义?
在c#中using和new这两个关键字有什么意义?答:using 引入名称空间或者使用非托管资源, new 新建实例或者隐藏基类方法
- JS isArray、typeof、instanceof
Array.isArray() 用来检验是不是数组 var a = [1,2,3] console.log(typeof a); // object console.log(Array.isArray ...
- C# 委托知识总结【转】
1.什么是委托,为什么要使用委托 我正在埋头苦写程序,突然想喝水,但是又不想自己去掉杯水而打断自己的思路,于是我就想让女朋友去给我倒水.她去给我倒水,首先我得让她知道我想让她干什么,通知她之后我可以继 ...
- 实战 Lucene2.0
Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakarta 家 ...
- 【清真dp】cf1144G. Two Merged Sequences
成就:赛后在cf使用错误的贪心通过一题 成就:在cf上赛后提交hack数据 成就:在cf上赛后hack自己 题目大意 有一长度$n \le 2\times 10^5$的序列,要求判断是否能够划分为一个 ...
- mac安装mysql及workbench
安装mysql 登录MySQL网站 打开网站Download MySQL Community Server,选择下方的dmg文件下载 点击download,此处为8.0.11版本 然后选择no tha ...
- nginx 报错: nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
执行: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf https://www.cnblogs.com/codingcl ...