第三章 基本数据类型
目录
文章目录
3.1 计算重量
weight = eval(input('请输入你的体重(kg):'))
for i in range(10):
weight_earth = weight + 0.5 * (i + 1)
weight_moon = weight_earth * 0.165
print('未来第 {} 年地球体重为 {:.2f} kg,月球体重为 {:.2f} kg'.format(i + 1, weight_earth, weight_moon))
3.2 天天向上(7天为一周期)
ability = 1 # 初始能力值为1
consecutive_days = 0 # 连续学习天数
current_day = 1 # 当前周期的天数
for i in range(365):
consecutive_days += 1
current_day += 1
# 每7天为一个周期
if current_day > 7:
current_day = 1
# 如果中断学习,重置连续学习天数
if current_day == 1:
consecutive_days = 0
# 如果连续学习天数小于等于3,能力值不变
if consecutive_days <= 3:
ability = ability
# 如果连续学习天数大于3,每天能力增长为前一天的1%
else:
ability *= 1.01
# 每个周期的最后一天也需要计算
if current_day == 7:
consecutive_days = 0
ability *= 1.01
print("365天后的能力值为:", round(ability, 2))
3.3 天天向上续(10/15天休息一天)
def rest_day_interval(n):
ability = 1 # 初始能力值为1
consecutive_days = 0 # 连续学习天数
current_day = 1 # 当前周期的天数
for i in range(365):
consecutive_days += 1
current_day += 1
# 每7天为一个周期
if current_day > 7:
current_day = 1
# 如果中断学习,重置连续学习天数
if (consecutive_days - 1) % n == 0 and consecutive_days != 1:
consecutive_days = 0
# 如果连续学习天数大于等于4并小于等于7,每天能力增长为前一天的1%
if 7 >= consecutive_days >= 4:
ability *= 1.01
# 如果连续学习天数小于等于3,能力值不变
else:
pass
print("固定每{}天休息1次,365天后的能力值为:{:.2f}".format(n, ability))
if __name__ == '__main__':
rest_day_interval(10)
rest_day_interval(15)
3.4 回文数判断
代码一:
# 定义一个函数,用于判断一个字符串是否是回文字符串
def is_palindrome(string):
# 判断字符串是否和其反向拷贝相等,如果相等,则说明字符串是回文字符串,返回 True;否则返回 False
return string == string[::-1]
# 获取用户输入的字符串
string = input("请输入一个字符串:")
# 调用函数判断字符串是否是回文字符串
palindrome = is_palindrome(string)
# 根据判断结果输出相应的信息
if palindrome:
print(string, "是一个回文树!")
else:
print(string, "不是一个回文数!")
代码二:
def is_palindrome(n):
# 将输入的数转换为字符串
s = str(n)
# 判断字符串的前半部分是否等于后半部分反转后的结果
return s[:2] == s[-1:-3:-1]
if __name__ == '__main__':
num = int(input("请输入一个5位数:"))
if is_palindrome(num):
print("{}是回文数".format(num))
else:
print("{}不是回文数".format(num))
3.5 田字格输出
for i in range(11):
if i == 0 or i == 10:
print("+" + "+".center(9, "-") + "+")
elif i % 5 == 0:
print("+" + "+".center(9, "-") + "+")
else:
print("|" + "|".center(9) + "|")
3.6 文本进度条
import time
def progress_bar():
print("Starting ... ", end="", flush=True) # 打印起始文本,不换行
for i in range(10): # 模拟进度
print("=", end="", flush=True) # 打印进度条,不换行
time.sleep(0.5) # 暂停一段时间,模拟程序执行
print(" Done!") # 打印结束文本
progress_bar()
3.7 文本风格(省略)
3.8 安装第三方库(省略)
注:上述代码仅供参考,若有问题可在评论区留言!