Day 02
一.运算符
1.比较运算符
- 例: > < == != >= <=
python中比较大小是同类型数据之间比较大小。
比较大小的到的值是布尔值 - 例:
print(3 > 4) # 得到的结果是False
- 问题:为什么python能够比较大小?
- python 使用的编码值叫万国码:unicode,其是ASCII编码的拓展
数字0-9对应的十进制编码值为:48-57
A-Z对应的十进制编码为:65-90;a-z对应的十进制编码值为:97-122 - 例:
- python 使用的编码值叫万国码:unicode,其是ASCII编码的拓展
print('a' > 'A') # 得到的结果是True
- == (绝对等于) !=(不等于) >= (大于等于) <=(小于等于)
print(0 != 1) # 得到的结果是True
print(0 == 1) # 得到的结果是False
print(3 >= 2) # 得到的结果是False
- 例题:判断年份是否为闰年
year = 2004
resuit = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
# 得到的结果是True
2.赋值运算符
-
计算方式:先算等号右边,再给等号左边赋值
+常用符号 : = , +=, -= ,*= , /= , //= , %=, **= -
例:
a = 10
a += 5
# a=a+5
a **= 2
print(a)
a %= 2
# a=a%2
print(a)
# 得到的值为 225 1
3. 复合赋值运算符
- 例:
a *= a + 3
# a = a * (a + 3)
print(a)
# 得到的值为 4
4. 运算符优先级 :
a.先算小括号整体。
b. *大于 / % // 大于 + -
c. 算数运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
-
round(参数1,参数2)–> 参数1等于数值,参数2等于保留的小数位数。
-
练习1:华氏度和温度的转换:C = (F - 32)/1.8
解析:
F = 94
C = round((F - 30) / 1.8, 1)
print(f'{F}华氏度等于{C}摄氏度')
# 结果为 94华氏度等于35.6摄氏度
- 练习2:根据指定的圆的半径,计算圆的周长和面积
解析:
r = 5
pi = 3.14
c = round(2 * pi * r, 1)
s = pi * r ** 2
print(f'半径为{5}的圆形,周长为{c},面积为{s}')
二.简单的数据类型转换
数字和布尔值的数据类型转换
1.布尔值的转换
- 所有的数据都可以转换为布尔值(bool)
- bool()
- 例
print(bool(0), bool(1), bool(-1))
print(bool(''), bool([]), bool({}), bool(None))
# a. 0转换为False,非0全是Ture
# b. 所有的空值对象全是False
2.数字转换
整型(int)
a.布尔值可转换为整型:False–> 0, Ture–1
- 例:
print(int(bool(100))) #-->1
b.浮点型转换为整型:向小取整
print(int(0.1)) # -->0
print(int(.1)) # -->0
print(int(1.)) # -->1
c.字符串可以转整型:去掉引号是一个整数的字符串可转换为整型。
print(int('1'))
# print(int('1.0')) invalid literal for int() with base 10: '1.0'
3.浮点型
floot()
a.整型转浮点型
例:
print(float(1))
b.去掉引号是数字的字符串可以转换为浮点型。
例:
print(float('.9'))
print(float('9.9'))
c.布尔值可转换为浮点型
例:(False–> 0.0, Ture–1.0)
print(int(bool(0.1))) # -->1.0
# bool() int() float() str() list()等 ---> 构造器语法
三.分支结构
1.单分支结构
- 分支结构关键词:if else elif
- 单分支结构: if else
- 案例:账号密码登录
例:
from keyword import kwlist
print(kwlist)
username = input('请输入用户名:')
password = input('请输入密码:')
# 用户名是admin并且密码是123456,身份验证成功;否则身份验证失败。
if username == 'admin' and password == '123456':
print('身份验证成功')
else:
print('身份验证失败')
由案例可得出:单分支结构语法
if 条件:
代码段1
else
代码段2
缩进:一般把缩进看作四个空格,一个程序的缩进必须保持一致。(出现缩进的前一行代码必定带:)
习题1: 判断一个年份是否是闰年?
解析:
year = int(input('请输入年份:'))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f'f{year}是闰年')
else:
print(f'{year}是平年')
2.多分支结构 elif
- 多分支结构语法:
if 条件1:
代码段1
elif 条件2:
代码段1
…(可使用多个elif)
else:
代码段n
例:
year = int(input('请输入年份:'))
if year % 4 == 0 and year % 100 != 0:
print(f'f{year}是闰年')
if year % 400 == 0:
print(f'f{year}是闰年')
else:
print(f'{year}是平年')
3.嵌套分支
-
知识点1:随机模块:random
-
知识点2:随机数:randint(a,b),—randint 能够生成[a,b]范围内的整数
-
嵌套分支语法:
if 条件1:
代码段
if 条件:
else:
代码段 -
案列:判断一个数字是否是偶数,如果是偶数,在判断其是否是3的倍数。
from random import randint
num = randint(0, 100)
if num % 2 == 0:
print(f'{num}偶数')
if num % 3 == 0:
print(f'{num}是3的倍数') # 可嵌套多层,但嵌套多层可读性不强
else:
print(f'{num}奇数')
4.三目运算符
- 三目运算符语法:
变量=‘结果1’ if 条件 else ‘结果2’
条件成立,结果为结果1,反之为结果2 - 特点;较为简化
- 例:判断一个人是否成年
# 单分支写法
age = 17
if age < 18:
print('未成年')
else:
print('成年')
# 三目运算符写法
result = '成年' if age >= 18 else '未成年'