Python基础入门学习 第四章

第四章

4.1 对象的布尔值

Python一切皆对象,所有对象都有一个布尔值,使用内置函数bool()来获取对象的布尔值

以下对象的布尔值为False

  • False
print(bool(False))
  • 数值0
print(bool(0))
  • None
print(bool(None))
  • 空字符串
print(bool(''))
print(bool(""))
  • 空列表
print(bool([]))
print(bool(list()))
  • 空元祖
print(bool(()))
print(bool(tuple()))
  • 空字典
print(bool({}))
print(bool(dict()))
  • 空集合
print(bool(set()))

4.2 程序的组织结构

4.2.1 顺序结构

程序开始
代码1
代码2
...
代码n
程序结束

4.2.2 选择结构

4.2.2.1 单分支结构
money = 1000  # 余额
s = int(input("请输入取款金额:"))
# 判读余额是否充足
if s <= money:
    money = money - s
    print("取款成功,余额为", money)
4.2.2.2 双分支结构
s = int(input("请输入一个整数:"))
if s % 2 == 1:
    print(s, '为奇数')
else:
    print(s, '为偶数')
4.2.2.3 多分支结构
s = int(input("请输入成绩:"))
if 90 <= s <= 100:    # 这种写法是python独有的
    print('成绩等级为A')
elif 80 <= s <= 89:
    print('成绩等级为B')
elif 70 <= s <= 79:
    print('成绩等级为C')
elif 60 <= s <= 69:
    print('成绩等级为D')
elif s < 60:
    print('成绩等级为E')
else:
    print('所输入成绩不符合实际!')
4.2.2.4 嵌套if
'''
会员     >=200  8折
        >=100  9折
        不打折
非会员   >=200  9.5折
        不打折
'''
answer=input('您是会员吗?Y/N')
money=float(input('请输入您的购物金额:'))
if answer=='Y':
    if money>=200:
        print('付款金额为:', money * 0.8)
    elif 100<=money<200:
        print('付款金额为:', money * 0.9)
    else:
        print('不打折,付款金额为:', money)
else :
    if money>=200:
        print('付款金额为:', money * 0.95)
    else:
        print('不打折,付款金额为:', money)
4.2.2.5 条件表达式

条件表达式是if…else…的简写

# 从键盘录入两个整数,比较两个整数的大小
num1 = int(input('请输入第一个整数:'))
num2 = int(input('请输入另一个整数:'))
'''
if num1 >= num2:
    print(num1, '大于等于', num2)
else:
    print(num1,'小于',num2)
'''
print(str(num1)+'大于等于'+str(num2) if num1 >= num2 else str(num1)+'小于'+str(num2))

4.2.3 循环结构

4.2.3.1 pass语句

pass语句,什么都不做,只是一个占位符,用到需要写程序的地方,这样程序就不会报错

answer = input("请问您是会员吗?Y/N")
if answer == 'Y':
    pass
else:
    pass
4.2.3.2 内置函数:range()函数
  • 用于生成一个整数序列
  • 返回值是一个迭代器对象
r = range(10)
print(r)
  • 创建range对象的三种方式
    • range(stop)
      创建一个[0,stop)之间的整数序列,步长为1
    r = range(10)
    print(r)
    print(list(r))
    
    • range(start,stop)
      创建一个[start,stop)之间的整数序列,步长为1
    r = range(1, 10)
    print(list(r))
    
    • range(start,stop,step)
      创建一个[start,stop)之间的整数序列,步长为step
    r = range(1, 10, 2)
    print(list(r))
    
  • in 与 not in 判断整数序列中是否存在(不存在)指定的整数
r = range(1, 10, 2)
print(list(r))
print(6 in r)
print(8 not in r)
  • range类型的优点

    不管range对象表示的整数序列有多长, 所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop,step,只有当用到range对象时,才会去计算序列中的相关元素

4.2.3.3 while语句

选择结构的if和循环结构的while的区别:

if是判断一次,条件为true的条件执行体执行一次

while是判断N+1次,条件为true的条件执行体执行N次

# 计算1-100之间的偶数和

# 四步循环法:
# 1.初始化变量
# 2.条件判断
# 3.条件执行体(循环体)
# 4.改变变量

a = 1
sum = 0
while a <= 100:
    if a % 2 == 0:
        sum += a
    a += 1
print(sum)
a = 1
s = 0
while a <= 100:
    if not bool(a % 2):
        s += a
    a += 1
print(s)
4.2.3.4 for-in语句

in 表达从(字符串、序列等)中依次取值,又称为遍历

for-in 遍历的对象必须是可迭代对象

循环体内不需要访问自定义变量,可以将自定义变量用下划线代替

for _ in range(5):
    print("今天也要加油鸭!")
# 使用for-in求1-100之间的偶数和
sum = 0
for a in range(1, 101):
    if not a % 2:
        sum += a
    a += 1
print(sum)
#输出100至999之间的水仙花数
#水仙花数举例:153=1*1*1+5*5*5+3*3*3
for num in range(100, 1000):
    a = num // 100      # 百位
    b = num // 10 % 10  # 十位
    c = num % 10        # 个位
    if a ** 3 + b ** 3 + c ** 3 == num:
        print(num)
4.2.3.5 break语句

break语句经常和if语句一起搭配使用,直接跳出循环

# 从键盘录入密码,最多录入3次,如果正确就结束循环
for i in range(3):
    pw = input("请输入密码")
    if pw == "8888":
        print("密码正确")
        break
    else:
        print("密码错误")
# 从键盘录入密码,最多录入3次,如果正确就结束循环
a = 0
while a < 3:
    pw = input("请输入密码")
    if pw == '8888':
        print("密码正确")
        break
    else:
        print("密码错误")
    a += 1
4.2.3.6 continue语句

continue语句经常和if语句一起搭配使用,不执行后面的语句再重新开始循环

# 要求输出1到50之间所有5的倍数
for i in range(1, 51):
    if not i % 5:
        print(i)
        
for i in range(1, 51):
    if i % 5:
        continue
    print(i)
4.2.3.7 else语句

if…else… :if条件表达式不成立时执行else

for…else… 和while…else… :没有碰到break时执行else语句

# 从键盘录入密码,最多录入3次,如果正确就结束循环
for i in range(3):
    pw = input("请输入密码")
    if pw == "8888":
        print("密码正确")
        break
    else:
        print("密码错误")
else:
    print("对不起,三次密码均输入错误")
# 从键盘录入密码,最多录入3次,如果正确就结束循环
a = 0
while a < 3:
    pw = input("请输入密码")
    if pw == '8888':
        print("密码正确")
        break
    else:
        print("密码错误")
    a += 1
else:
    print("对不起,三次密码均输入错误")
4.2.3.8 嵌套循环
# 输出一个三行四列的矩阵
for i in range(3):  # 行数
    for j in range(4):  # 列数
        print('*', end='\t')  # 不换行输出
    print()  # 换行
# 输出九九乘法表
for i in range(1, 10):  # 行数
    for j in range(1, i + 1):  # 列数
        print(i, '*', j, '=', i * j, end='\t')  # 不换行输出
    print()  # 换行
4.2.3.9 二重循环中的break和continue

用于控制本层循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值