学习Python的day.13

news2024/11/25 13:31:04

输入和输出

一、输入

标准输入:从键盘输入

input(prompt=None)
# prompt: 输入的提示符,可以为空

Read a string from standard input --- 译为:从标准输入读入一个字符串,输入读取的一定是字符串,返回值就是一个字符串

那我们怎么在程序中判断输入结束了呢?

一般的情况是敲击Enter键结束

从输入获取一个你想要的类型,你必须对在输入中拿到的字符串进行强制类型转换,或者就使用eval()自动识别输入的类型。

获取输入函数帮助(获取其中的参数和详解):有相同的可以鼠标中键直接点击input(注释中不行)

help(input)

以下是一个示例:

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

从输入中获取一个整数:

#将输入的字符串进行类型转换
data = input("请输入一个整数: ")
print(data, type(data))
int_data = int(data)
print(int_data, type(int_data))

#或者直接使用eval()
data = eval(input("请输入一个整数: "))
print(data, type(data))

从输入中获取一个列表:

data = input("请输入一个列表: ")
print(data, type(data))
list_data = data.split(",")
print(list_data, type(list_data))

二、输出

标准输出:输出到屏幕上

help(print)

格式化输出:在日常使用打印的时候,我们就直接输出了。但是为了控制我们打印出来的内容简洁美观。所以要进行格式的规定。

(1)打印变量

(2)设置打印宽度,宽度为5,打印一个字符,他所占的宽度是5

(3)设置对齐方式,左对齐,右对齐,居中对齐

(4)设置填充符号,其他空白的地方默认使用空格填充,也可以使用其他符号来填充

print(f"整型为{data:*^10}, 浮点型为{data2:*^10}, 字符串为{data3:*^10}")

1、老式的格式化输出

常用的占位符输出:

%d:digit-整型
%s:str-字符串
%f:float-浮点型

data = 1
data2 = 1.1
data3 = "222"

print(data, data2, data3)

# 整型为 1, 浮点型为 1.1, 字符串为 222
print("整型为", data, "浮点型为", data2, "字符串为", data3)
# 打印变量
print("整型为%d, 浮点型为%f, 字符串为%s" % (data, data2, data3))
# 设置宽度
print("整型为%4d, 浮点型为%4.2f, 字符串为%4s" % (data, data2, data3))
# 对齐方式: 默认的对齐方式是:向右对齐
# 向左对齐: 
print("整型为%-4d, 浮点型为%-4.2f, 字符串为%-4s" % (data, data2, data3))
# 填充符号:
print("整型为%04d, 浮点型为%05.2f, 字符串为%04s" % (data, data2, data3))

输出结果展示:

 2、新式的格式化输出

在打印的字符串前加f/F, 要么加f, 要么加F,大写和小写的意思都是Format

(1)打印变量
f/F"{variable_name}"
(2)设置打印宽度
f/F"{variable_name:宽度}"
(3)设置对齐方式:
  <:向左对齐
  >:向右对齐
  ^:居中对齐
  f/F"{variable_name:对齐方式宽度}"
(4)设置填充符
f/F"{variable_name:填充符对齐方式宽度}"

data = 1
data2 = 1.1
data3 = "222"

print(40 * "*", "新的格式化输出", "*" * 40)
# 打印变量:
print(f"整型为{data}, 浮点型为{data2}, 字符串为{data3}")
# 设置宽度: 数字向右对齐,字符串向左对齐
print(f"整型为{data:4}, 浮点型为{data2:4}, 字符串为{data3:4}")
# 对齐方式
print(f"整型为{data:<4}, 浮点型为{data2:<4}, 字符串为{data3:<4}")
print(f"整型为{data:>4}, 浮点型为{data2:>4}, 字符串为{data3:>4}")
print(f"整型为{data:^10}, 浮点型为{data2:^10}, 字符串为{data3:^10}")
# 填充符
print(f"整型为{data:*<4}, 浮点型为{data2:*<4}, 字符串为{data3:*<4}")
print(f"整型为{data:*>4}, 浮点型为{data2:*>4}, 字符串为{data3:*>4}")
print(f"整型为{data:*^10}, 浮点型为{data2:*^10}, 字符串为{data3:*^10}")

输出结果展示:

(5)字符串的format方式

格式:"".format(参数)
字符串:是你们要打印的格式
参数: 你们里边要打印的变量的实际的值
(1)打印变量
""中写的是我们打印的格式
{}:不加的内容,他代表的是从format的参数中顺序去取
例:

"{} x {} = {}".format(i, j , i * j)

那么第一个{} 去对应第一个参数i,第二个{} 去对应第二个参数j,第三个{} 去对应第三个参数 i * j
{n}:n: 从0开始, {0} {1}....
     加了n:代表的是format后边参数的索引(1, 2, 3) => 0, 1, 2
例:

"{2} x {1} = {0}".format(i * j, j , i)

实际要打印的是 i x j = i * j,可以认为format的参数是一个序列
假设:我现在向format传递了一个列表 [1, 2, 3],"list的第一个元素为{0[0]}".format([1, 2 ,3 ]){key}:key:认为他是字典中的key
加了key之后,他就会根据key去format后的参数中去查找对应key的值
例:

"{key1} x {key2} = {key3}".format(key1=i, key2=j, key3=i * j)

根据{key1} => format中key1 = i 去获取i的值
(2)设置宽度
"".format() --->>> "{:宽度}".format
例:

format_str = "{0:4} x {1:4} = {2:4}, {0} x {1} = {2}"
print(format_str.format(1, 2, 1 * 2))

(3)对齐方式
"".format() --->>> "{:对齐方式宽度}".format  
 对齐方式:
      ①左对齐:<
      ②右对齐:>
      ③居中对齐:^
(4)设置填充符
 "".format() --->>> "{:填充符对齐方式宽度}".format()

底下是一些代码示例:

# 打印变量
format_str = "{} x {} = {}"
print(format_str.format(1, 2, 1 * 2))
format_str = "{0} x {1} = {2}, {0} x {1} = {2}"
print(format_str.format(1, 2, 1 * 2))

format_str = "{0[0]} x {0[1]} = {0[2]}, {0[0]} x {0[1]} = {0[2]}"
print(format_str.format([1, 2, 1 * 2]))
# print("{0[0]}".format([1, 2, 3]))
format_str = "{i} x {j} = {mul}, {i} x {j} = {mul}"
print(format_str.format(i=1, j=2, mul=1 * 2))
# 设置宽度
format_str = "{0:4} x {1:4} = {2:4}"
print(format_str.format(1, 2, 1 * 2))
# 设置对齐方式
format_str = "{0:<4} x {1:<4} = {2:<4}"
print(format_str.format(1, 2, 1 * 2))
format_str = "{0:>4} x {1:>4} = {2:>4}"
print(format_str.format(1, 2, 1 * 2))
format_str = "{0:^4} x {1:^4} = {2:^4}"
print(format_str.format(1, 2, 1 * 2))
# 填充符
format_str = "{0:-<4} x {1:-<4} = {2:-<4}"
print(format_str.format(1, 2, 1 * 2))

打印的结果:

 注:字符串中有一些方法也可以完整格式化

# 左对齐
ljust(width, fillchar=' ')
width: 宽度
fillchar: 填充字符
# 右对齐
rjust(width, fillchar=' ')
width: 宽度
fillchar: 填充字符
# 居中对齐
center(width, fillchar=' ')

代码示例:

str_data = "1"

#左对齐
#ljust(self, width, fillchar=' ', /)
print(str_data.ljust(4))
print(str_data.ljust(4, "*"))
# str_data.ljust()

#右对齐
# rjust(self, width, fillchar=' ', /)
print(str_data.rjust(4))
print(str_data.rjust(4, "*"))
# str_data.rjust()

#居中对齐
# center(self, width, fillchar=' ', /)
print(str_data.center(4))
print(str_data.center(4, "*"))
# str_data.center()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/519693.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于知识图谱的个性化学习资源推荐系统的设计与实现(论文+源码)_kaic

摘 要 最近几年来&#xff0c;伴随着教育信息化、个性化教育和K12之类的新观念提出,一如既往的教育方法向信息化智能化的转变&#xff0c;学生群体都对这种不受时间和地点约束的学习方式有浓厚的兴趣。而现在市面上存在的推荐系统给学生推荐资料时不符合学生个人对知识获取的…

多态与虚函数

多态与虚函数 多态的引入多态与虚函数多态编译时多态运行时多态 多态的原理静态联编和动态联编 多态的引入 学过C继承的话应该都知道在继承中存在一种菱形继承&#xff0c;假设存在一个类&#xff08;person&#xff09;&#xff0c;其派生出两个子类&#xff0c;分别是studen…

Template Method模式

文章目录 &#x1f4a1;前言分类优点 &#x1f4a1;问题引入&#x1f4a1;概念&#x1f4a1;例子&#x1f4a1;总结 &#x1f4a1;前言 此文是第一篇讲解设计模式的文章&#xff0c;而笔者我又不想另起一篇来概述设计模式的分类&#xff0c;作用&#xff0c;以及优点&#xff…

MySQL笔记(四) 函数、变量、存储过程、游标、索引、存储引擎、数据库维护、指定字符集、锁机制

MySQL笔记&#xff08;四&#xff09; 文章目录 MySQL笔记&#xff08;四&#xff09;函数文本处理函数日期和时间处理函数数值处理函数类型转换函数流程控制函数自定义函数基本语法 局部变量全局变量聚集函数 aggregate functionDISTINCT 存储过程为什么要使用使用创建 删除建…

调用api实现ChatGPT接口余额查询

先打个广告&#xff1a; 推荐一款不用科学上网就可以使用的ChatGPT工具&#xff1a;智能聊天助手 体验版入口&#xff1a;智能聊天助手体验版 在ChatGPT官网可以查询接口使用额度&#xff0c;但是官方并没有提供相应的API给开发者调用。但是可以通过破解的方式找到它的API。方法…

人生在世皆有过错,来一起看看Java中的异常吧!!!

Java中的异常问题详解 一、异常的概念与分类 1.异常概念 概念&#xff1a;Java异常是一个描述在代码段中发生异常的对象&#xff0c;当发生异常情况时&#xff0c;一个代表该异常的对象被创建并且在导致该异常的方法中被抛出&#xff0c;而该方法可以选择自己处理异常或者传…

Invicti v23.5 for Windows 发布 - 企业应用安全测试

Invicti v23.5 for Windows - 企业应用安全测试 Invicti Standard 11 May 2023 v23.5.0.40516 请访问原文链接&#xff1a;https://sysin.org/blog/invicti/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org Invicti 是一种自动…

[HFCTF2022]ezchain

环境分析 环境提供了docker-compose.yml&#xff0c;nginx.conf文件&#xff0c;从两个文件中可疑分析出是不出网的环境 nginx.conf&#xff1a; server { listen 80;server_name localhost;location / {root /usr/share/nginx/html; #收到/路径请求会访问/usr/sha…

Keil5----Debug时,watch1中全局变量数值不刷新问题解决方法

问题&#xff1a; 在Keil5-MDK中&#xff0c;Debug时&#xff0c;watch1中全局变量数值不刷新。 解决方法&#xff1a; 步骤1&#xff1a;进入Debug模式 将程序调试下载器&#xff08;STlink,Jlink,Ulink&#xff09;连接&#xff0c;编译程序后。 进行如下操作&#xff1a…

算法修炼之练气篇——练气十六层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

MySQL --- 多表查询

多表查询、事物、以及提升查询效率最有手段的索引 一. 多表查询 1.1 多表查询 --- 概述 1.1.1 数据准备 将资料中准备好的多表查询数据准备的SQL脚本导入数据库中。 部门表&#xff1a; 员工表&#xff1a; 1.1.2 介绍 多表查询&#xff1a;指从多张表中查询数据&#…

2023年的深度学习入门指南(13) - 写后端

2023年的深度学习入门指南(13) - 写后端 我们前面学习了用python在本机上写前端&#xff0c;也学习了使用HTML在本机写前端。同理&#xff0c;我们可以写Windows应用&#xff0c;mac应用&#xff0c;iOS应用&#xff0c;Android应用等等以适合各种终端。其实&#xff0c;最通用…

python+chrome rpc方式轻松绕过五秒盾(cloudflare)

Cloudflare 5秒盾是一种基于云技术的Web应用程序防火墙(WAF),旨在保护网站免受各种Web攻击,如SQL注入、跨站点脚本(XSS)和DDoS攻击。它能够在5秒内检测到并阻止恶意流量,并提供实时安全警报和日志记录。此外,它还提供了一系列安全功能,包括SSL / TLS加密、IP过滤、访问…

单链表你别再找我了,我怕双向链表误会

目录 带头双向循环链表的创建和初始化 创建一个新的结点&#xff08;方便复用&#xff09; 链表判空 链表打印 链表尾插 链表尾删 链表头插 链表头删 任意插入 任意删除 链表查找 链表销毁 完整代码 &#x1f60e;前言 之前我们讲了结构最简单&#xff0c;实现起来…

kettle win11 启动闪退 --启动日志

一、启动闪退 思路&#xff1a; 找原因找启动日志根据启动日志查看启动失败的原因 二、找启动日志 采用debug模式启动 查看控制台–根据控制台操作 看生成的启动日志文件 查看日志 DEBUG: Using PENTAHO_JAVA_HOME DEBUG: _PENTAHO_JAVA_HOMEE:\java8 DEBUG: _PENTAHO…

记一次靶场搭建与渗透测试

渗透目标 通过Windows7打入工作组环境&#xff0c;穿透两层内网拿到DC&#xff08;域控制器&#xff09;权限 环境搭建 环境搭建 网络拓扑 虚拟机网络配置 渗透测试 永恒之蓝外网打点 nmap -sS 192.168.2.0/24扫描外网存活主机&#xff0c;发现两台主机192.168.2.128和192…

芯片电源附近为什么放置的是0.1uF电容

日常使用情况 我们在电源滤波电路上可以看到各种各样的电容&#xff0c;100uF、10uF、100nF、10nF不同的容值&#xff0c;而在我们使用中常常会在芯片电源附近放置0.1uF电容&#xff0c;以TB67S109AFNG应用手册为例&#xff0c;其中推荐使用的也是0.1uF的电容 电容的特性 数字…

分享几款小白从零开始学习的会用到的工具/网站

大二狗接触编程也有两年了&#xff0c;差生文具多这大众都认可的一句话&#xff0c;在这里蹭一下这个活动分享一下从0开始学习编程有啥好用的工具 目录 伴侣一、Snipaste截图工具 伴侣二、Postman软件&#xff08;可用ApiPost平替&#xff09; 伴侣三、字体图标网站 伴侣四…

BlockChain-Account_TakeOver

题目描述 ECDSA 签名 假设我们的私钥为 d A d_A dA​而公钥为 Q A Q_A QA​&#xff0c; Q A d A ⋅ G Q_Ad_A\cdot G QA​dA​⋅G&#xff0c;接下来就是签名的过程&#xff0c;要签名的消息为 m m m 取 e H A S H ( m ) e HASH(m) eHASH(m)取 e e e的左边的 L n L_n L…

Baumer工业相机堡盟工业相机软件CameraExplorer常见功能使用说明二

Baumer工业相机堡盟工业相机软件CameraExplorer常见功能使用说明二 Baumer工业相机Baumer工业相机CE软件图像/视频存储功能Baumer工业相机CE软件记录日志文件功能Baumer工业相机CE软件查看图像Buffer及数据流统计信息 Baumer工业相机 Baumer工业相机堡盟相机是一种高性能、高质…