python请输入你的名字请输入你的年龄_Python 读取用户指令和格式化打印实现解析...

一、读取用户指令

当你的程序要接收用户输入的指令时,可以用input函数: name = input("请输入你的名字:")

print("Hi " + name)

5f38790d22fc86872e6d4e5aa8b1a240.png

程序中只要有input函数就会等待用户输入完并按回车键之后才会继续往下执行代码

注:input()函数接收得到的值只是字符串,即使你输入的是数字或者其他数据类型的值,它也会把数字按照字符串处理,即接收得到值只会字符串。

二、格式化打印

假设现在需要打印出以下格式的内容,该怎么实现呢? ------------ Infomation of Kwan ------------

Name : Kwan

Age : 21

Sex : male

Job : Python

----------------- End ----------------

你会发现,如果用字符串的拼接方法很难实现这种格式的输出,而且如果是用户自己输入对应信息的话,要更改其中的内容也很不方便。

Python提供了一种很实用的方法来解决这一问题,只需要把要打印的内容的格式先准备好,由于里面的信息是需要用户自己输入的,因此可以先放置占位符,再把字符串里的占位符与外部的变量做个映射关系就好了。 name = input("请输入姓名:")

age = input("请输入年龄:")

sex = input("请输入性别:")

job = input("请输入工作:")

info = '''

------------ Infomation of Kwan ------------

Name : %s

Age : %s

Sex : %s

Job : %s

----------------- End ----------------

''' % (name, age, sex, job) # 要按照对应的顺序放置参数

print(info)

4434e19bb744ee4ce2faa1e745a4366d.png

%s代表的就是字符串的占位符,除此之外,还有%d,是数字的占位符,%f是浮点数占位符,如果把上面的例子中的Age处用%d的话,那就需要将age变量先转成数字类型才能用,因为age通过input接收到的数字是字符串。

9665f6dadf97d2a9b6706cc3b21109e9.png

从上图可看出,输入数字得到的却是str类型,即字符串。

注:input接收的所有输入的内容都是字符串格式

可以使用数据类型的转换来处理这一问题 age = int (input("请输入年龄:")) # 一定要要纯数字的字符串才能使用int方法转换 age_int = 21

age_str = str(age_int) # 数字也可转换成字符串

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现步骤: 1. 导入必要的库,包括opencv、numpy、os等 2. 定义函数读取文件夹中的所有图片并进行骨架化处理 3. 定义函数,将骨架化图像进行曲线拟合,并输出拟合后的图像 4. 定义函数,将拟合后的图像保存到指定文件夹中 5. 调用函数实现批量处理图片 代码如下: ```python import cv2 import numpy as np import os # 读取文件夹中的所有图片并进行骨架化处理 def skel_batch(folder_path): # 获取文件夹中的所有图片路径 file_list = os.listdir(folder_path) for file in file_list: # 判断是否为图片文件 if file.endswith('.jpg') or file.endswith('.png'): # 读取图片 img = cv2.imread(os.path.join(folder_path, file)) # 转换为灰度图 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 二值化 ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 骨架化 size = np.size(thresh) skel = np.zeros(thresh.shape, np.uint8) element = cv2.getStructuringElement(cv2.MORPH_CROSS, (3, 3)) done = False while not done: eroded = cv2.erode(thresh, element) temp = cv2.dilate(eroded, element) temp = cv2.subtract(thresh, temp) skel = cv2.bitwise_or(skel, temp) thresh = eroded.copy() zeros = size - cv2.countNonZero(thresh) if zeros == size: done = True # 显示骨架化图像 cv2.imshow('Skeleton', skel) cv2.waitKey(0) cv2.destroyAllWindows() # 将骨架化图像进行曲线拟合,并输出拟合后的图像 def curve_fitting(skel): # 轮廓检测 contours, hierarchy = cv2.findContours(skel, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) # 提取轮廓 cnt = contours[0] # 进行曲线拟合 rows, cols = skel.shape [vx, vy, x, y] = cv2.fitLine(cnt, cv2.DIST_L2, 0, 0.01, 0.01) lefty = int((-x*vy/vx) + y) righty = int(((cols-x)*vy/vx)+y) # 绘制直线 line = cv2.line(skel,(cols-1,righty),(0,lefty),(255,255,255),1) # 显示拟合后的图像 cv2.imshow('Fitting', line) cv2.waitKey(0) cv2.destroyAllWindows() return line # 将拟合后的图像保存到指定文件夹中 def save_batch(folder_path, save_path): # 获取文件夹中的所有图片路径 file_list = os.listdir(folder_path) for file in file_list: # 判断是否为图片文件 if file.endswith('.jpg') or file.endswith('.png'): # 读取图片 img = cv2.imread(os.path.join(folder_path, file)) # 转换为灰度图 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 二值化 ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 骨架化 size = np.size(thresh) skel = np.zeros(thresh.shape, np.uint8) element = cv2.getStructuringElement(cv2.MORPH_CROSS, (3, 3)) done = False while not done: eroded = cv2.erode(thresh, element) temp = cv2.dilate(eroded, element) temp = cv2.subtract(thresh, temp) skel = cv2.bitwise_or(skel, temp) thresh = eroded.copy() zeros = size - cv2.countNonZero(thresh) if zeros == size: done = True # 进行曲线拟合 line = curve_fitting(skel) # 保存拟合后的图像 cv2.imwrite(os.path.join(save_path, file), line) # 批量处理图片 folder_path = './images' # 输入文件夹 save_path = './result' # 输出文件夹 skel_batch(folder_path) # 骨架化处理 save_batch(folder_path, save_path) # 曲线拟合并输出 ``` 注意事项: 1. 需要提前创建好输入文件夹和输出文件夹 2. 输入文件夹中的图片必须为jpg或png格式的 3. 输出文件夹中的图片格式与输入文件夹中的图片格式相同

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值