python基础(2)——运算符 & 构造函数 & 预置型函数 & if

一、运算符

1、复合赋值算术运算符

运算符 说明
  y += x 作用等同于 y = y + x
  y -= x 作用等同于 y = y - x
  y *= x 作用等同于 y = y * x
  y /= x 作用等同于 y = y / x
  y //= x 作用等同于 y = y // x
  y %= x 作用等同于 y = y % x
  y **= x 作用等同于 y = y ** x

2、比较运算符

  <  小于
  <= 小于等于
  > 大于
  >= 大于等于
  == 等于
  != 不等于

语法:
  左表达式 > 右表达式
说明:
  比较运算符通常返回布尔类型的值
示例:
  100 < 200 # True
  100 >= 200 # False
  1 + 5 == 2 + 4 # True
  0 <= 100 <= 200 # True

二、数值对象的构造(创建)函数

float(obj) 用字符串或数字转换为浮点数,如果不给出参数,则返回0.0

int(x, base=10) 或 int(x=0) 用数字或字符串转换为整数,如果不给出参数则返回0,base为进制转换的底数

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

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

函数调用:
  函数名(传参列表)
说明:
  函数调用表达式,一定会返一个对象的引用关系

bool(x) 返回假值的情况
bool(x) 用于显式获取x的布尔值

假值情况:
None 空值
False 布尔假值
0 0.0 0j 所有数字零
------以下后面会讲-----
'' 空字符串
[] 空列表
() 空元组
{} 空字典
set() 空集合
... # 一切空的容器对象bool(x)取值都为False

 


三、预置数值型函数

abs(x)  取x的绝对值
round(number[,ndigits]) 对数值进行近似的四舍五入,ndigits是小数向右取整的位数,负数表示向左取整
pow(x, y, z=None)  相当于 x ** y 或 x ** y % z

# 此示例示意round的用法 
x = 123.456789
print(round(x))
print(round(x, 2))  # 123.46
print(round(123.455, 2))   # 123.45
print(round(x, -1))  # 120.0
print(round(x, -5))  # 0.0
round

help()  查看函数帮助
>>> help(函数名)

小结:
  id(x) 返回整数的x对象的地址
  float(x)
  int(x, base=10)
  complex(r=0, i=0)
  bool(x)

 

基本输入函数 input
input('提示字符串') 返回用户输入的字符串('提示字符串'可以为空)

示例见:

s = input("请输入一些文字: ")
print('您刚才输入的文字是:', s)
s2 = input()
print("您第二次输入的是:", s2)
r = input("请输入一个整数: ")
r = int(r)
print(r, "/ 2= ", r / 2)

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

示例见:

print(1, 2, 3, 4)  # 等同于print(1, 2, 3, 4, sep=' ')
print(1, 2, 3, 4, sep='#')
print(1, 2, 3, 4, sep='')  # 1234
print("hello world", sep='####')  # 分隔符无效

print(1, 2, 3, 4, end='\n')
print(5, 6, 7, 8, end='$$$$$$$')
print("abcd", end='\n\n\n')

练习:
1. 今天是小明的20岁生日, 假设每年有365天,计算它过了多少个星期天,余多少天(不要求精确)

days = 20 * 365
print('它过了', days // 7, '个星期天')
print("", days % 7, '')

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

hour = input("请输入小时: ")
hour = int(hour)  # 将输入的字符串数据转换为整数

minute = int(input("请输入分钟: "))
second = int(input("请输入秒数: "))
s = hour * 60 * 60 + minute * 60 + second
print("距离凌晨过了", s, '')

练习:
输入两个整数,分别用变量 x 和 y绑定
1) 计算这两个数的和,并打印结果
2) 计算这两个数的积,并打印结果
3) 计算x 的 y次方并打印结果

x = int(input("请输入x: "))
y = int(input("请输入y: "))
print(x, '+', y, '=', x + y)
print(x, '*', y, '=', x * y)
print(x, '**', y, '=', x ** y)
View Code

 

语句 statement

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

显示换行
折行符 \
折行符必须放在一行的末尾,来示意解释执行器的下一行也是本行的语句
示例见:

x = 1 + (2 * 3) + 4 \
+ 5 + 6 + 7

print(x)

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

# 此示例示意隐式换行 () 可以隐式折行
x = 1 + (2
    * 3) + 4 + 5 + 6 + 7

print(x)  

if 语句

问题:
有两条语句
print("是偶数")
print("是奇数")
如何只让其中一条语句执行并打印出结果?
  作用:
让程序根据条件选择性的执行某条语句或某些语句
语法:
if 真值表达式1:
语句块1
elif 真值表达式2:
语句块2
elif 真值表达式3
语句块3
...
else:
语句块4
说明:
elif子句可以有0个,1个或多个
else子句可以有0个或1个,且只能放在此if语句的最后
示例见:

#  输入一个数,判断这个数是奇数还是偶数,并打印出来
x = int(input("请输入一个整数: "))
if x % 2 == 1:
    print(x, '是奇数')
else:
    print(x, '是偶数')
if1.py
# 任意输入一个数字,用程序来判断这个数是正数,负数还是零
n = int(input("请输入一个数: "))
if n > 0:
    print('您输入的是正数')
elif n < 0:
    print("您输入的是负数")
else:
    print("你输入的是零")
if2.py

 

练习:
任意输入一个整数
1) 判断这个数是否大于100
2) 判断这个数是否小于0
3) 判断这个数是否在80~100之间

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

# 1) 判断这个数是否大于100
if n > 100:
    print(n, "大于100")
else:
    print(n, "不大于100")

# 2) 判断这个数是否小于0
if n > 0:
    print(n, '大于0')
else:
    print(n, '不大于0')
# 3) 判断这个数是否在80~100之间
if 80 <= n <= 100:
    print(n, '在80~100之间')
else:
    print(n, '不在80~100之间')

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

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

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

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

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

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

示例见:

m = int(input("请输入月份(1~12): "))
if 1 <= m <= 12:
    if m <= 3:
        print("春季")
    elif m <= 6:
        print("夏季")
    elif m <= 9:
        print("秋季")
    else:
        print("冬季")
else:
    print("您输错了")

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

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

n = int(input("请输入一个数: "))
# 方法1
if n > 0:
    r = n  # 正数的情况
else:
    r = -n  # 负数的情况

# 方法2
r = n  # 先绑定
if r < 0:  # 如果是负数,进行符号取反
    r = -r

print("绝对值是:", r)

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

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

# 此示例示意pass语句的用法
# 输入一个学生的成绩.如果成绩不在0~100之间,则提示错误
score = int(input("请输入学生成绩: "))
if 0 <= score <= 100:
    pass
else:
    print("不合法的成绩!")

布尔运算

运算符:
not and or

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

布尔与操作 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


布尔或操作 or
语法:
x or y
注:
x, y 代表表达式
作用:
优先返回真值对象
当x为True时,返回x, 否则返回y
示例:
True or True # True
True or False # True
False or True # True
False or False # False
score = int(input('请输入学生成绩:'))
if score < 0 or score > 100:
print("成绩不合法")
思考:
score = input("请输入学生成绩:") or '0'
score = int(score)
请问这是什么意思?

score = input("请输入学生成绩:") or '0'
score = int(score)

print("成绩是:", score)

 

正负号运算符
+ (正号) - (负号)

一元运算符

语法:
+ 表达式
- 表达式
示例:
a = 5
b = -a
c = +a

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

 1 km = int(input("请输入公里数: "))
 2 # 方法1
 3 if km <= 3:
 4     pay = 13
 5 elif 3 < km <= 15:
 6     pay = 13 + 2.3 * (km - 3)
 7 elif km > 15:
 8     pay = 13 + 2.3 * (km - 3) + 0.5 * 2.3 * (km - 15)
 9 
10 # 方法2
11 pay = 13
12 if km > 3:
13     pay += 2.3 * (km - 3)
14 
15 if km > 15:
16     pay += 0.5 * 2.3 * (km - 15)
17 
18 print("您需要支付", round(pay), '')
练习1

  2. 输入一个学生的三科成绩(只要三个数,不要求科目)
     1) 打印出最高分是多少?
     2) 打印出最低分是多少?
     3) 打印出平均分是多少?

 1 a = int(input("请输入第一科成绩: "))
 2 b = int(input("请输入第二科成绩: "))
 3 c = int(input("请输入第三科成绩: "))
 4 
 5 # 方法1
 6 if a > b:
 7     if a > c:
 8         print("最高分是:", a)
 9     else:
10         print("最高分是:", c)
11 else:
12      if b > c:
13         print("最高分是:", b)
14     else:
15         print("最高分是:", c)
16 
17 # 方法2
18 zhuida = a  # 先假设a最大
19 if b > zhuida:
20     zhuida = b
21 
22 if c > zhuida:
23     zhuida = c
24 
25 print("最高分是:", zhuida)
练习2

  3. 给出一个年份,判断是否为闰年并打印
     每四年一闰,每百年不闰,四百年又闰:
     如:
     2016年 闰年
     2100年 非闰年
     2400年 闰年

year = int(input("请输入年份: "))

if year % 400 == 0 or (year % 4 == 0
                       and year % 100 != 0):
    print(year, '是闰年')
else:
    print(year, '不是闰年')
练习3

posted on 2018-09-18 00:32  破天荒的谎言、谈敷衍  阅读(83)  评论(0)    收藏  举报

导航