Python基础 P1变量进阶练习

Python基础 P1变量进阶练习

1.变量帮手(input和print)

input函数

Python基础 P1变量进阶练习_第1张图片

从标准输入中读取字符串(带换行符),提示字符串将在读取输入之前打印到标准输出(不带换行符)

input标准格式

input(prompt=None, /) # prompt=None输入提示字符串

input函数返回的是一个字符串,即便用户输入一个数字,输出给变量的内容也会是一个字符串

举个栗子

a = input("请输入字符串:")
print(type(a))    

b = input("请输入数字:")
print(type(b))

Python基础 P1变量进阶练习_第2张图片

如果要输入并获取数字可以使用int()进行类型转换

a = input("请输入字符串:")
print(type(a))    

b = int(input("请输入数字:"))
print(type(b))

Python基础 P1变量进阶练习_第3张图片


print函数

Python基础 P1变量进阶练习_第4张图片

print将值打印到流或者系统上,默认情况下为stdout

print标准格式

print(*objects, sep=' ', end='\n', file=sys.stdout)

# objects:表示输出的对象,输出多个对象时,需要用逗号进行分隔
# sep:用来间隔多个对象
# end:用来设定以什么结尾,默认值是换行符\n,我们可以换成其他字符
# file: 要写入的文件对象

print可以输出不同形式的变量,包括但不局限于:数值型、布尔型、列表变量、字典变量等

print直接输出

print("hello cage")

Python基础 P1变量进阶练习_第5张图片

print变量输出

a = "hello cage"

print(a)

Python基础 P1变量进阶练习_第6张图片

print组合输出

print("hello cage " + str(5))

Python基础 P1变量进阶练习_第7张图片

print格式化输出

a = 5.3425

print("%.2f" % a)

Python基础 P1变量进阶练习_第8张图片


进阶练习

1.使用两种方法实现数字内容输入
2.分别计算两者相加、相减、相乘和相除的结果
3.使用4种方法分别输出相加、相减、相乘和相除的结果(相除结果保留2位小数)

实现效果
Python基础 P1变量进阶练习_第9张图片

源码(见附件)

2.时间差计算

strptime/strftime

strptime函数根据指定的格式把一个时间字符串解析为时间元祖,解析的格式由format来决定

strptime的基本格式

import time
time.strptime(string[, format])

# string:时间字符串
# format:格式化字符串

在使用这个函数之前,先来熟悉一下格式化字符串的符号,也就是format里面的内容

日期格式化符号表

符号 功能 范围
%y 两位数的年份 0~99
%Y 四位数的年份 000~9999
%m 月份 01~12
%d 月内中的一天 0~31
%H 24小时制小时数 0~24
%I 12小时制小时数 01~12
%M 分钟数 00~59
%S 秒数 0~59
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的的日期和时间
%j 年内的一天 1~366
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数 0~53
%w 星期(星期天为星期的开始) 0~6
%W 一年中的星期数 0~53
%x 本地相应的日期
%X 本地相应的时间
%z 当前时区的名称

举个栗子

import time

str_time = input("请输入日期(XXXX-XX-XX):")
date = time.strptime(str_time, "%Y-%m-%d")
print(date)

Python基础 P1变量进阶练习_第10张图片

strftime函数则正好相反,函数接收时间元组,并返回以可读字符串表示的当前时间(格式由format决定)

strftime的基本格式

import time
time.strftime(format[, t])
# format:格式字符串
# t:可选的参数是一个struct_time

举个栗子

import time

str_time = input("请输入日期(XXXX-XX-XX):")
date = time.strptime(str_time, "%Y-%m-%d")
print(date)
time_str = time.strftime("%Y--%m--%d", date)
print(time_str)

Python基础 P1变量进阶练习_第11张图片


datetime模块

datetime模块:提供了处理日期和时间的类,既有简单的方式,又有复杂的方式;支持日期和时间算法,但其实现的重点是为输出格式化和操作提供高效的属性提取功能。

datetime模块中的常用类

类名称 描述
datetime.date 表示日期,常用的属性有:year,month和day
datetime.time 表示时间,常用属性有:hour,minute,second,microsecond
datetime.datetime 表示日期时间
datetime.timedelta 表示两个date,time,datetime,分辨率可达到微秒
datetime.tzinfo 时区相关信息对象的抽象基类,它们由datetime和time类使用,以提供自定义时间的而调整
datetime.timezone 实现tzinfo抽象基类的类,表示与UTC的固定偏移量

这里主要介绍datetime.datetime,在后面的练习中会用到

datetime的基本用法

class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)

# year:年份(0~9999)
# month:月份(1~12)
# day:日期(1~31)
# hour:小时(0~23)
# minute:分钟(0~59)
# second:秒(0~59)
# microsecond:微秒(0~1000000)
# tzinfo:tzinfo的子类对象,如timezone类的实例

如果一个参数超出了这些范围,会引起ValueError异常(在后面练习中很有用)

举个栗子

import time
import datetime

time_str = input("请输入结束日期(格式:XXXX-XX-XX XX:XX:XX):")
date = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
print(date)
date = datetime.datetime(date[0], date[1], date[2], date[3], date[4], date[5])
print(date)

Python基础 P1变量进阶练习_第12张图片


try/expect

try/expect是用来进行异常处理的,后面会专门用一节用来讲解异常处理的,这里只需要简单的知道如何使用就可以

基本格式

try:
    # 判断是否有异常的句子
expect:
    print("抛出异常提示")

举个栗子

import time
import datetime

while True:    
    time_str = input("请输入开始日期(格式:XXXX-XX-XX):")    
    try:        
        time.strptime(time_str, "%Y-%m-%d")        
        break    
    except:        
        print("请输入正确的日期!请重新输入!")
        print("日期输入正确")

Python基础 P1变量进阶练习_第13张图片


进阶练习

使用date和datetime模块实现时间差的计算

要求:
1.输入两组年月日计算出两者之间的时间差
2.输出时间差的天数

实现效果
Python基础 P1变量进阶练习_第14张图片

但是现在的程序还有一点小问题,比如输入的内容不在正确的日期范围内,那么程序就会报错而无法正确的执行;这个时候try/expect就派上用场了

先来看看之前的程序效果:
Python基础 P1变量进阶练习_第15张图片
源码(见附件)

通过try来进行异常判断后的效果:
Python基础 P1变量进阶练习_第16张图片

输入内容有误时会要求重新输入,直到输入的内容正确后再进入下一步操作

源码(见附件)


现在可以实现日期的时间差处理,后面还可以实现包括时间的处理

要求:
1.输入两组年月日时分秒计算出两者之间的时间差
2.输出时间差
3.能够判断输入日期是否合理

实现效果:
Python基础 P1变量进阶练习_第17张图片

源码(见附件)

3.罗马数字转整数

简介
先来了解一下罗马数字的组成原理

罗马数字包括以下七种字符:

字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000

例如:III 表示 3, XV 表示15;当然也有一些特殊情况,比如 IV 表示 4 ,小的符号在大的符号前面就是 V - I ,也就是5-1 = 4,这种情况一共有6种:
I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900

那么现在就分析罗马数字与十进制整数之间的关系,将输入的罗马数字转换为十进制整数

进阶练习

主要实现思路:
1.首先映射罗马数字的符号和值
2.然后遍历罗马数字字符串(从左到右)
3.如果左边的罗马符号比右边的大或相等,那么就加上这个值
4.如果左边的罗马符号比右边的小,那么就减去这个小的值
5.最后计算的结果就是罗马数字转换后的结果

实现效果:
Python基础 P1变量进阶练习_第18张图片

源码(见附件)

你可能感兴趣的:(Python,python,开发语言,后端)