Elements-of-Python01_Input/Output
(内容包括输入input,输出print,注释comment,预测类型转换eval,命名与赋值Name & Bestow)
输入Input 和 输出Print
Python中利用input() 和 print() 可以进行在命令行内的输入和输出。
输入input
【从标准输入读入一行文本】input()函数可以从命令框中读到外部输入,以字符串的形式储存。 比如我们想用一个12,需要用a=int(input(">>>")),在命令框中输入12。如果只采用a=input(">>>"),则a="12"字符串类型。(可以用一个内置函数type(a)来查看对象a的类型)
经常用类型转换函数把input()得到的字符串转换为期待的类型,常用到的转换函数包括:

a = int(input(">>>"))
另外,还有一种读取效率比input()更高的方式,在sys模块中,可以写为sys.stdin.readline(),这种方式不会忽略用户所输入的换行符,因此,实际使用的时候,常常使用下面的语句来去除键盘输入首尾的换行符:
import sys
a = sys.stdin.readline().strip() #可以理解为sys模块中stdin类中的readline()方法,得到的数据用strip()函数来处理,去掉换行符
输出print
【在命令框中打印一些内容】用print()函数可以把内容进行输出。
print(20201028,"Hello Python!\t"+"www","python","org",sep=".")
#可以打印任意格式的变量,变量间可以用逗号或加号间隔,
#逗号和逗号间可以加间隔符,使用间隔符参数sep=' '
name,age="Tom",25
print(f"The author's name is {name},and the age is {age}. ")
#使用f" " 可以在字符串中加{},括号中加带有变量的算式即可
print("Futhermore, {0} likes to programme, and {0} wants to succeed when {1}. ".format(name,age+1),end="")
#使用"".format() 可以在字符串中加{},括号中可以加序号、名字或什么都不加,
#后面加序号数对应的算式、名字对应的算式,或按顺序写括号中的算式
print("Cheer up,%s!Grit!"%(name))
#使用占位符进行打印
输出结果如截图所示:
几点说明:
| 格式化输出方法详解 | ||
| [:[[fill] align] [sign] [width] [.precision] [type]] | ||
| fill | 空白处字符 | 空白处你希望填的字符 |
| align | 对齐方式 | < 左对齐 > 右对齐 ^ 居中对齐 = 右对齐,正负号居左 |
| sign | 符号打印方式 | 加号 正负号都打印 减号 只打印负号,正号不打 空格 正数空格,负数负号 井号 其他进制打印进制标识 |
| width | 总宽度 | 一共需要占几个字符 |
| .precision | 小数部分精确度 | 小数点后保留多少位 |
| type | 类型 | d 整数 f 小数 e 科学计数 % 百分数 s 字符串(b二进制,o八进制,x十六进制,c转Unicode) |
首先说说填充和对齐:在输出的时候,有时需要固定的格式,如{a:&=+10.2f},表示打印a,用&符号填充空白,符号居左数字居右,正负号都显示,共占10位,小数后精确度是2位,a作为float类型输出。
另外,小数点也算格式化输出中的一位。
1. %型格式化输出
格式是 "....%s...%s..."%(var1,var2,....) 。用%s对字符串中需要填充的地方使用占位符,再用对应个数的变量将占位符以字符串形式填充,变量var1可以是任意类型。也就是说,无论什么类型,你想让它输出为字符串,你就用%s。下表是占位符的含义:
| 占位符和变量类型的对应关系 | ||
| 占位符 | 描述 | |
| %c | ASCII码 | |
| %s | 字符串 | |
| %d | 十进制整形 | |
| %f | 十进制小数 | |
| %u | 无符号十进制整形 | |
| %o | 无符号八进制整数 | |
| %x & %X | 无符号十六进制整形 | |
| %e & %E | 科学计数法 | |
| %p | 指针型 | |
| %n | 储存输出字符的数量放进参数列表的下一变量中 | |
2. format型格式化输出
格式:
- "....{}...{}...".format(var1,var2,...) (填坑),挖了几个坑,填几个参数。
- "....{0}...{1}...".format(var1,var2,...) (位置标号),前面的坑按数字顺序对应后面的参数。
- "....{a}...{b}...".format(a=var1,b=var2,...) (关键字),后面给关键字赋值。
3. f” ”型格式化输出
格式: 直接在f”…{var1}…”的字符串的大括号中,填写变量名称即可。
几点注意:
- 输出多个同一类型值时,可以用加号拼接或逗号(分隔符)分隔。
- 分隔符号(逗号)默认输出一个空格,如果想输出别的,可以在内容后面跟,sep=” ”,引号中填你想要的分隔符。
- print()函数默认换行,因为默认end=”\n”,如果不想换行,可以在内容后面跟,end=” ”,引号中填结尾符。
- 双引号单引号都可以,但是首尾引号要对应,且中间不能出现首尾用过的引号,除非中间用转义符\ 。
- 使用f' '或' '.format()时,如果字符串本身就含有大括号,会被认作挖的坑,这时候,在需要加{}处,加两次即可,变成{{}},字符串就认为用户加的是单{},且不是挖坑,而是需要输出大括号{}。
注释Comment
python有两种方法进行注释,一种是在某句前加#(行注释),一种是对段落的注释,在需要注释的段前后分别加三个引号''' (块注释)。另外,讲需要备注的若干行选中后加Ctrl+/也可以进行备注多行。注释后,计算机就读不到被注释的文本了。
#this is the first way to annotation
''' this is a way to annotate
something more than one
line.
'''
备注主要有三个作用:
- 对代码加以说明,增加代码可读性(注释不是描述代码,是说功能)
- 调试程序,被注释的程序不参与编译(raped code)
- 编写函数,类等的说明文档
eval函数
【可以理解为把字符串中的内容自动转为它应该是的数据】利用eval()函数可以轻松的进行计算字符串表达式,类型变换等功能。
import math
print(eval("3+4")) #功能类似字符串表达式计算器
a = eval("[2,4,'Hello',[1,2,3,4],math.pi,'3+4']") #功能类似类型变换
print(type(a),a,sep="\n")
b = eval(input(">>>"))
print(type(b),b,sep="\n")
命令框截图如下:

一些说明:
- eval()中可以填任何简单字符串表达式,但eval只能对最外一层的引号进行转换,之内的表达式进行运算。
- eval中的复杂功能字符串不一定能100%保证自动转换或运算正确。
命名和赋值Name & Bestow
命名应做到:字母、数字、下划线的组合,字母开头,不使用关键字,对大小写敏感,望文生义。
几种命名规范:
①Unix_C: 如your_age
②匈牙利命名法:属性(成员范围)_类型+对象描述
③驼峰命名法: 如getElementBody;
赋值号(等于号)左边是被赋值量,右边是值。
a = 10
a=b=c=10 #链式赋值
a , b , c =1 , 1.5 , ”Tom” #系列解包赋值
另外,在Pyhton中,不仅可以对属性进行命名,如a=b对于方法也可以进行命名,如c=math.sqrt,这样,c就和math.sqrt等效,print(c(4))会输出2.0。
一些说明:
- 根据系列解包赋值,如果要交换变量a和变量b的值,代码是 a,b=b,a
- 命名常常会有几个单词(如:time of date),如果变量或方法可以取timeOfDate,如果是类或函数可以取TimeOfDate。 (首字母大写的是类和方法,小写的是函数和类) 也可以用time_of_date和Time_of_date
如果您觉得Tom写得不错或者不好,欢迎批评或点赞。
Elements-of-Python01_Input/Output的更多相关文章
- Printing multipage output
Printing known-length multipage output Using the PrintDataGrid control for multipage grids Example: ...
- Spark Rdd coalesce()方法和repartition()方法
在Spark的Rdd中,Rdd是分区的. 有时候需要重新设置Rdd的分区数量,比如Rdd的分区中,Rdd分区比较多,但是每个Rdd的数据量比较小,需要设置一个比较合理的分区.或者需要把Rdd的分区数量 ...
- List 用法和实例(转载)
写在粘贴复制前:英文的感觉也可以,也能看的懂,多看看英文资料没坏处的 Problem. You have questions about the List collection in the .NET ...
- C# 泛型List用法
C# List Examples by Sam Allen - Updated September 6, 2009 Problem. You have questions about the List ...
- C# List 用法与示例
Problem. You have questions about the List collection in the .NET Framework, which is located in the ...
- 4.3 Reduction代码(Heterogeneous Parallel Programming class lab)
首先添加上Heterogeneous Parallel Programming class 中 lab: Reduction的代码: myReduction.c // MP Reduction // ...
- ACM——线性表操作
线性表操作 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:2795 测试通过:589 描述 线性表是n个元素 ...
- RDD.scala(源码)
---- map. --- flatMap.fliter.distinct.repartition.coalesce.sample.randomSplit.randomSampleWithRange. ...
- 《Velocity 模板使用指南》中文版[转]
转自:http://blog.csdn.net/javafound/archive/2007/05/14/1607931.aspx <Velocity 模板使用指南>中文版 源文见 htt ...
- Hard Process(二分)
Hard Process Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submi ...
随机推荐
- drf Serializer使用
drf序列化 在前后端不分离的项目中,可以使用Django自带的forms组件进行数据验证,也可以使用Django自带的序列化组件对模型表数据进行序列化. 那么在前后端分离的项目中,drf也提供了数据 ...
- Linux下更新JDK版本
date: 2018-11-18 11:04:13 updated: 2018-11-18 11:04:13 1.输入 su 进入管理员权限 2.输入 rpm -qa | grep jdk 查看当前系 ...
- 转 js调用提交表单。
今天做网银支付的时候,需要做到点击支付的时候提交订单,然后新窗口打开支付界面. 思路1:window.open(''),这个直接被pass了,因为银行的服务一般都是需要post数据的.就算是可以用ge ...
- FFmpeg滤镜使用
滤镜(filter)详细介绍参考官方文档. 常用的滤镜功能,像图像加水印/字幕.去logo.图形旋转缩放等,但滤镜不仅仅包括视频部分,还包括音频处理的,像变声变调.声场控制(重低音/留声机/摇滚等效果 ...
- Spring MVC json配置
接口类的Controller,一般返回的是json数据,而Spring MVC中默认返回的string,而jsp页面的话,会按配置中自己行匹配转义字符串为对应的jsp文件. @Controller @ ...
- python 作业 批量读取excel文件并合并为一张excel
1 #!/usr/bin/env python 2 # coding: utf-8 3 4 def concat_file(a,b): 5 #如何批量读取并快速合并文件夹中的excel文件 6 imp ...
- 【总结】nginx基础
一.nginx简介 1.什么是nginx? Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,支持高达 50,000 个并发连接数.功能:反向代理,负载均衡,动静分离 ...
- Java学习的第五十四天
1.例13.1二次函数的解 import java.util.Scanner; public class Cjava { public static void main(String[]args) { ...
- Java学习的第十五天
1.今天复习了第四章的内容 重新看了看方法参数问题,final修饰的关键字 2.今天没问题 3.明天学习多态变化
- 微服务通信之ribbon实现原理
前言 上一篇我们知道了feign调用实现负载均衡是通过集成ribbon实现的.也较为详细的了解到了集成的过程.现在我们看一下ribbo是如何实现负载均衡的.写到这里我尚未去阅读源代码,我在这里盲猜一下 ...