02: Python变量 基本输入输出 关系运算 布尔运算 条件语句

day02 笔记:

比较运算符
运算符:
< 小于
<= 小于等于

大于
= 大于等于
== 等于
!= 不等于
语法:
左表达式 < 右表达式
说明:
比较运算返回布尔类型的值
例:
20 < 100 # True
300 >= 20 # True
1 == 2 # False

x = 70
y = 70
x != y         # False
0 <= x <= 100  # True

数值对象的构造(创建)函数
float(obj) 用字符串或数字转换为浮点数,如果不给出实参,则返回0.0
float(1) #1.0
float('3.14') #3.14

int(x=0, base=10) 用数字或字符串转换为整数,如果不给出实参则返回0
int(3.14) # 3

complex(r=0.0, i=0.0) 用数字创建一个复数

bool(x) 用x创建一个布尔值(True/False)
bool(0) #False
bool(1) #True

函数调用表达式
函数名(传参列表)
说明:
函数调用是表达式,此表达式一定会返回一个对象的引用关系。如果不需要返回值时,通常返回None对象的引用关系

bool(obj) 返回假值的情况:
None 空值
Flase 假值
0, 0.0, 0j 所有的数字零

练习:
将数字3.14 用变量pi绑定
将pi变量转为整数,用变量i绑定
将 pi 变量 与 i变量相减,结果用f变量绑定

  1. 判断f是否等于 0.14? 为什么?
  2. 删除所有的变量
    (用交互模式来实现)
    解:
    a = 0.14
    pi = 3.14
    i = int(pi)
    f = pi -i
    print(f)

del a,f #删除变量a和f

内建数值型函数
abs(x) 取x的绝对值
round(number, ndigits=0) 对数值进行'四舍五入',ndigits是小数向右取整的位数,负数表示向左取整
pow(x, y, z=None) 相当于 x y 或 x y % z

abs(10) #10
abs(-10) #10

help() 函数查看帮助
help(函数名或对象名)

>> help(abs)

语句 statements
语句由一些表达式组成,通常一条语句可以独立执行来完成一部分事情并形成结果
python建议一条语句写在一行内
多条语句写在一行内需要用分号(;) 分开
示例:
print("hello")
x = 100 + 200
print(x)

写在一行内为:

print("hello"); x = 100 + 200; print(x)

显式换行:
折行符 \ (读作反斜杠)
折行符必须放在一行的末尾,来示意解释执行器下一行也是本行的语句
示例见:
statements.py

x = 100 + (200 * 300) \

  • 400 - 500 + 600
    print(x)

隐式折行
所有的括号的内容换行,称为隐式换行
括号包括() [] {}

x = 100 + 200 * 300 + (400

  • 500) + 600
    print(x)

print(1, 2, 3, 4)
print(1,
2,
3,
4)

基本输入函数 input
作用:
从标准输入设备上读取一个字符串(末尾的换行符会被删除)
格式:
input('提示字符串')
说明:
返回输入的字符串(仅python3)
提示字符串可以为空
示例见:
input.py

s = input("请输入圆的半径: ")

print(s)

r = int(s) # 将字符串转换为整数
print('半径为', r, '的圆的面积是',
3.14 * r ** 2)

print("程序结束")

基本输出函数 print
作用:
将一系列的值以字符形式输出到标准输出设备上,默认为终端
格式:
print(value, .... sep=' ', end='\n', file=sys.stdout, flush=False)
选项的关键字参数:
sep: 两个值之间的分隔符, 默认为一个空格' '
end: 输出完毕后在末尾自动追加一个字符串,默认为换行符'\n'
示例见:
print.py

print(1, 2, 3, 4) # 1 2 3 4
print() # 只打印一个换行
print(5,6,7,8)
print(1, 2, 3, 4, sep='#') # 1#2#3#4
print(1, 2, 3, 4, sep='') #1234
print(1, 2, 3, 4, sep=' ') #1 2 3 4
print(1, 2, 3, 4, sep='<===>') #1<===>2<===>3<===>34
print('======================')
print('hello!') #'hello'
print('world!', end='')
print('abcde')
print('ABCDE', end='+++++++\n')

练习:

  1. 输入两个整数, 分别用变量x, y绑定
    1) 计算这两个数的和,并打印结果
    2) 计算这两个数的积,并打印结果
    3) 计算x的y次方并打印结果
    如:
    请输入x: 10
    请输入y: 20
    打印如下:
    10 + 20 = 30
    10 * 20 = 200
    10 ** 20 = ...
    解:

    1. 输入两个整数, 分别用变量x, y绑定

    x = input("请输入x: ")
    x = int(x)
    y = input("请输入y: ")
    y = int(y)

1) 计算这两个数的和,并打印结果

print(x, '+', y, '=', x + y)

2) 计算这两个数的积,并打印结果

print(x, '', y, '=', x y)

3) 计算x的y次方并打印结果

print(x, '', y, '=', x y)

  1. 今天是小明20周岁的生日,假设每年有365天,计算它过了多少个星期天,余多少天

a = 20 #周岁
b = 365 #1年的天数
c = a * b #总共的天数
d = c // 7 #取敕
f = c % 7 #取余
print('过了',d,'个星期天','余',f,'天')

  1. 分三次输入当前的小时,分钟和秒数,在终端打印时此距离凌晨0:0:0 秒过了多少秒

shi = int(input("请输入时钟的点数:")) #请输入时钟的点数
fei = int(input("请输入分钟的点数:")) #请输入分钟的点数
miao = int(input("请输入时钟的点数:")) #请输入秒钟的点数

zongmiaoshu = shi 60 60 + fei 60 + miao
#时钟数
60分钟60秒+分钟数60秒+秒数
print('从0:0:0算起现在已经过了:',zongmiaosu,'秒') #输出时分秒相加的结果

if 语句:
作用:
让程序根据条件选择性的执行某条语句或某些语句
语法:
if 真值表达式1:
语句块1
elif 真值表达式2:
语句块2
elif 真值表达式3:
语句块3
...
else:
语句块
说明:
elif 可以有0个,1个或多个
else 可以有0个或1个

示例见:
if.py
if2.py

练习
输入一个整数,判断输入数是奇数还是偶数

n = int(input("请输入一个整数: "))
if n % 2 == 1:
print("这个数是奇数")
else:
print("这个数是偶数")

练习
输入一个数,用程序来判断这个数是正数,负数,还是零
n = int(input("请输入一个数: "))

if n > 0:
print('正数')
elif n < 0:
print('负数')
else:
print('零')

print("程序结束")

练习:
任意输入一个数
1) 判断这个数是否大于100

a = int(input('请输入一个整数:'))
if a > 100:
print(a,"大于100")
else:
print(a,"不大于100")

2) 判断这个数是否小于0

a = int(input('请输入一个整数:'))
if a < 0:
print(a,"小于0")
else:
print(a,"不小于0")

3)判断这个数是否在80~100之间

a = int(input('请输入一个整数:'))
if 80 < a < 100:
print(a,'在80-100之间')
else:
print(a,"不在80-100之间")

练习:

  1. 输入一个季度 1~4的整数.输出这个季度有哪儿几个月,如果输入的不是1~4的整数,则提示用户您输错了

n = int(input("请输入季度(1~4): "))
if n == 1:
print("春季有1, 2, 3月")
elif n == 2:
print("夏季有4, 5, 6月")
elif n == 3:
print("秋季有7, 8, 9月")
elif n == 4:
print("冬季有10, 11, 12月")
else:
print("您的输入有误")

  1. 输入一年中的月份(1~12) 输出这个月在哪儿个季度,如果输入的是其它数,则提示您输错了

n = int(input("请输入月份(1~12): "))
if 1 <= n <= 3:
print("春季")
elif 4 <= n <= 6:
print("夏季")
elif 7 <= n <= 9:
print("秋季")
elif 10 <= n <= 12:
print("冬季")
else:
print("您的输入有误!")

if 语句的真值表达式
if 100:
print('真值')
等同于:
if bool(100):
print('真值')

if 语句 真值表达式返回的对象要用bool(x)取值后再决定执行哪儿条语句

if 语句的嵌套
if 语句本身是由多条子句组成的一条复合语句
if 语句可以作为语句嵌套到另一个语句的内部

示例见:
改写 month.py

n = int(input("请输入月份(1~12): "))
if 1 <= n <= 12:
if n <= 3:
print('春季')
elif n <= 6:
print('夏季')
elif n <= 9:
print('秋季')
else:
print('冬季')
else:
print("您的输入有误!")

条件表达式:
语法:
表达式1 if 真值表达式 else 表达式2
作用:
根据真值表达式的取值(True/False) 来决定执行表达式1或表达式2,并返回结果
示例见:
if_else.py

商场促销,满100 减 20

money = int(input("请输入商品总额: "))
pay = money - 20 if money >= 100 else money
print("您需要支付", pay, '元')

练习:

  1. 写一个程序,输入一个数,用if语句计算这个数的绝对值并打印出来

a =int(input('请输入一个数:'))
if a >= 0:
print(a,"绝对值是:",a)
elif a <= 0:
print(- a,"绝对值是:",- a)
else:
print("你输入的数值不正确")

n = int(input("请输入一个数: "))

方法1

if n < 0:
a = -n
else:
a = n

方法2

a = n # 先用a绑定原来的数
if a < 0: # 如果a为负数,则翻转符号
a = -a # << 翻转符号
print('绝对值是:', a)

  1. 写一个程序,输入一个数,用条件表达式计算这个数的绝对值并打印出来

n = int(input("请输入一个数: "))
b = -n if n < 0 else n
print("用条件表达式计算过的绝对值是:", b)

pass 语句
作用:
通常用来填充语法空白
pass 又名空语句
语法:
pass
示例见:
pass.py

month = int(input("请输入月份: "))

如果这个月份在1~12之间,什么事都不做

如果不在1~12之间,报错误

if 1 <= month <= 12:
pass
else:
print("您的输入有误!")

布尔运算
运算符:
not and or

布尔非操作 not
语法:
not x
作用:
对表达式x进行布尔取非.如bool(x) 为True则返回False, 否则返回True
示例:
not True # 返回False
not False # 返回True

month = int(input("请输入月份: "))
if not 1 <= month <= 12:
    print('month 不在1~12之间')

布尔与操作 and
语法:
x and y
注: x, y 代表表达式
作用:
优先返回假值对象
当x的布尔值为False时,返回x, 否则返回y
示例:
True and True # True
True and False # False
False and True # False
False and False # False
0 and 0.0 # 0
1.2 and 100 # 100

布尔或操作 or
语法:
x or y
作用:
优先返回真值对象
当x为True时返回x,否则返回y
示例:
True or True # True
True or False # True
False or True # True
False or False # False
0 or 0.0 # 0.0
100 or 200 # 100

思考:
score = input('请输入学生成绩:') or '0'
score = int(score)
请问这个or是在做什么?

正负号运算符:

  • (正号)
  • (负号)
    语法:
    • 表达式
    • 表达式
      说明:
      这是一元运算符(只有一个数据参加运算)
      示例:
      a = 5
      b = -a
      c = +a

练习:

  1. 北京出租车计价:
    收费标准:
    3公里以内收费13元
    基本单价: 2.3元/公里 (超出3公里以外)
    空驶费:超过15公里后,每公里加收单价的50%的空驶费(即3.45元/公里)
    要求:
    输入公里数,打印出费用金额(以元为单位四舍五入)
    km = int(input("请输入公里数: "))

方法1

money = 0
if 0 <= km <= 3:
money = 13 # 起步
elif 3 < km <= 15:
money = 13 + 2.3 (km - 3)
else:
money = 13 + 2.3
(km - 3) + 2.3 0.5 (km - 15)

方法2

money = 13
if km > 3:
money += 2.3 (km - 3)
if km > 15:
money += 2.3
0.5 * (km - 15)
print("您需要花费:", round(money))

  1. 输入一个学生的三科成绩(三个整数):
    打印出最高分是多少?
    打印出最低分是多少?
    打印出平均分是多少?

#方法1
a = int(input("请输入第一科成绩: "))
b = int(input("请输入第二科成绩: "))
c = int(input("请输入第三科成绩: "))

if a > b > c:
print('最大是:',a,'最小是:',c)
if a > c > b:
print('最大是:',a,'最小是:',b)
if b > a > c:
print('最大是:',b,'最小是:',c)
if b > c > a:
print('最大是:',b,'最小是:',a)
if c > a > b:
print('最大是:',c,'最小是:',b)
if c > b > a:
print('最大是:',c,'最小是:',a)

print('平均分是:',(a+b+c)/3)

#方法2
a = int(input("请输入第一科成绩: "))
b = int(input("请输入第二科成绩: "))
c = int(input("请输入第三科成绩: "))

zuida = a # 先假设 a最大
if b > zuida: # 再用b去和zuida判断,如果b大,最大就是b
zuida = b
if c > zuida: #再拿c来和zuida判断,如果c大,最大就是c
zuida = c
print("最高分是:", zuida)

zuixiao = a # 先假设 a最小
if b < zuixiao: # 再用b去和zuida判断,如果b小,最小就是b
zuixiao = b
if c < zuixiao: #再拿c来和zuida判断,如果c小,最小就是c
zuixiao = c
print("最低分是:", zuixiao)

print('平均分是:',(a+b+c)/3)

  1. BMI指数(Body Mass Index) 以称身体质量指数
    BMI值计算公式:
    BMI = 体重(公斤) / 身高的平方(米)
    例如:
    一个人69公斤,身高是173公分
    BMI = 69 / 1.73**2 = 23.05
    标准表:
    BMI < 18.5 体重过轻
    18.5 <= BMI < 24 体重正常
    BMI > 24 体重过重
    要求: 输入身高的体重,打印出BMI的值并打印体重状况

tizhong = int(input('请输入体重(公斤):'))
shengao = float(input('请输入身高(公分):'))
BMI = tizhong / shengao ** 2
if BMI < 18.5:
print('结果是',BMI,'体重过轻')
elif 18.5 <= BMI < 24:
print('结果是',BMI,'体重正常')
else:
print('结果是',BMI,'体重过重')

猜你喜欢

转载自blog.51cto.com/yehaixiao/2143389