python学习笔记day03

python学习笔记day03

一.example01

  • round(参数1, 参数2):保留小数位数.
  • 参数1:传入的数据(可以是公式), 参数2:保留小数位数,四舍五入
  • 实际位数比要求保留位数少时,按实际位数输出
  1. 华氏温度转为摄氏温度

C = (F - 32) / 1.8

用round()保留小数位数

F = float(input('华氏温度:'))  
C = round((F - 32) / 1.8, 2)
print(f'摄氏温度:{C}')
  1. 摄氏温度转华氏温度

用格式化输出方式保留小数位数

C = float(input('摄氏温度:'))
F = C * 1.8 + 32
print(f'摄氏温度:{F:.2f}')
  1. 给定任意半径,计算圆面积和周长

自行选择保留小数位数的方式, pi = 3.14

pi = 3.14
r = float(input('圆半径:'))
l = 2 * pi * r
s = pi * r ** 2
print(f'周长:{round(l, 2)}, 面积:{round(s, 2)}')

二.数值和布尔值

python数值:整型(int), 浮点数(float)

python布尔值:True, False

布尔值中True:任意非零数, 非空列表, 非空字符串, 非空元组, 非空集合, 非空字典

布尔值中False: 0, None, ‘’, [], (), {}

  1. 整型(int)
# 什么样的数据能转换成整型?
"""
1.字符串转整型.(去掉引号是一个整数的字符串才能够转整型)
2.浮点型转整型.(|绝对值|向小取整)
3.布尔值转整型.(True = 1, False = 0)
"""
# print(int('2.3'))         # 去掉引号是浮点数
# print(int('abc123'))      # 去掉引号不是整数
print(int('123'))			# 123
print(int(-2.3))			# -2
print(int(True))			# 1
  1. 浮点数(float)
"""
1.字符串转浮点型.(去掉引号是数值)
2.整型转浮点型.(补0)
3.布尔值转浮点型.(True = 1.0, False = 0.0)
"""
print(float('123'))			# 123.0
print(float('12.3'))		# 12.3
print(float('12.'))			# 12.0
print(float('.3'))			# 0.3
print(float(123))			# 123.0
print(float(False))			# 0.0
  1. 布尔值(bool)
# 所有数据类型都能够转成布尔值
# False:0, None, '', [], (), {},  (空值或无元素)
# True: 非0数值, 所有有元素的数据类型
print(bool(0))				# False
print(bool(None))			# False
print(bool(''))				# False
print(bool([]))				# False
print(bool(()))				# False
print(bool({}))				# False

print(bool(1))				# True
print(bool(-1))				# True
print(bool('0'))			# True
print(bool('a'))			# True
print(bool(['a']))			# True
print(bool(('a', 'b')))		# True

三.分支结构

python中分支结构关键字: if, elif, else

分支结构:哪个分支后边的条件成立,就执行哪个分支下方(缩进内)的代码块

  1. 单分支结构
"""
单分支结构语法
if 条件:
    代码块1
else:
    代码块2
"""
  • 判断一个年份是否是闰年

    • 条件1:能够被4整除,但不能被100整除

    • 条件2:能够被400整除

year = int(input('年份:'))
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    print('闰年')
else:
    print('平年')
  • 输入两个整数a和b,若a-b结果为奇数,输出结果,否则输出信息a-b的结果为偶数
    • 使用not解决
a = int(input('第1个整数:'))
b = int(input('第二个整数:'))
if not (a - b) % 2:
    print(f'{a} - {b}结果为偶数')
else:
    print(a-b)
  1. 多分支结构
"""
多分支结构语法
if 条件1:
    代码块1
elif 条件2:
    代码块2
elif 条件3:
    代码块3
......
else:
    代码块N
"""
  • 判断一个年份是否是闰年
    • 条件1:能够被4整除,但不能被100整除
    • 条件2:能够被400整除
year = int(input('年份:'))
if not year % 4 and year % 100:
    print('闰年')
elif not year % 400:
    print('闰年')
else:
    print('平年')
  1. 嵌套分支
  • 判断一个数是否是偶数,如果是偶数,再判断这个数是否是10的倍数
num = int(input('整数:'))
if not num % 2:
    if not num % 10:
        print('10的倍数')
    else:
        print('偶数')
else:
    print('奇数')
  1. 三目运算符
"""
三目运算符语法
变量 = 结果1 if 条件 else 结果2
"""
  • 判断一个数是否为偶数
num = int(input('输入整数:'))
if  not num % 2:
    if not num % 10:
        print('10的倍数')
    else:
        print('偶数')
else:
    print('奇数')

四.分支结构练习

  • 根据年龄打印成年或未成年
    • 使用三目运算符
age = int(input('年龄:'))
result = '未成年' if age < 18 else '成年'
print(result)
  • 判断一个数是否为水仙花数
  • 水仙花数(三位数):个位³ + 十位³ + 百位³ = 三位数本身
num = int(input('三位整数:'))
# 取数
a = num // 100
b = num % 100 // 10
c = num % 10
if a ** 3 + b ** 3 + c ** 3 == num:
    print('水仙花数')
else:
    print('不是水仙花数')
  • 拓展:使用字符串取数判断是否为水仙花数
num = input('三位整数:')
if int(num[0]) ** 3 + int(num[1]) ** 3 + int(num[2]) ** 3 == int(num):
    print('水仙花数')
else:
    print('不是水仙花数')
  • 输入三条边长,如果能构成三角形就计算周长
    • 两边之和大于第三边
a = float(input('第1个数:'))
b = float(input('第2个数:'))
c = float(input('第3个数:'))
if a + b > c and a + c > b and b + c > a:
    print(f'{round(a + b + c, 2)}')
else:
    print('不能构成三角形')

五.循环结构

循环关键字: for-in, while

循环次数确定,使用for-in循环,反之使用while循环

  1. for-in循环
"""
for循环语法:
for 变量 in 序列:
    代码块

序列:字符串, 列表, 元组, 集合, 字典, range()等
"""

range():序列,左闭右开,step(步长)默认为1

range(N):N为非0自然数,[0,N)

range(M, N):N一定>M,[M,N)

range(M, N, step):手动设置step, step<0时, M>N,倒序, [M, N)

step步长,表示间隔|step|(绝对值)-1取数,例如:step =2时,取数1, 3, 5, 7…

  • 计算1-100的和
sum1 = 0
for i in range(1, 101):
    sum1 += i
print(sum1)
  1. while循环
"""
语法:
while 条件:
    代码块
"""
  • 猜数字游戏
    • 1-100之间的猜数
import random
# 生成随机数
result = random.randint(1, 100)
# print(result)
num = int(input('猜数(输入1-100之间整数):'))
count = 1
while True:
    if num > result:
        num = int(input('小一点:'))
        count += 1
    elif num < result:
        num = int(input('大一点:'))
        count += 1
    else:
        print(f'猜对了,共猜了{count}次')
        break

六.作业练习

  • while循环输出0-100内所有3的倍数
n = 0
while 0 <= n <= 100:
    if not n % 3:
        print(n, end='\t')
    n += 1
# 空输出换行
print()
  • 用循环计算n的阶乘
sum2 = 1
n = int(input('输入n(正整数):'))
for i in range(1, n+1):
    sum2 *= i
print(sum2)
  • 求斐波那契数列中第n个数的值
    • 1, 1, 2, 3, 5, 8, 13, 21, 34, 55…
x, y = 0, 1
n = int(input('第几个数:'))
for i in range(n):
    x, y = y, x + y
print(x)

七.拓展

  • 求任意两个数的最小公倍数
    • 两数相乘除以最大公约数
m = int(input('第1个数:'))
n = int(input('第2个数:'))
for i in range(min(m, n), int(min(m, n) ** 0.5) - 1, -1):
    if not(m % i or n % i):
        print(m * n // i)
        break
else:
    print(m * n)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值