(内容包括输入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型格式化输出

格式:

  1. "....{}...{}...".format(var1,var2,...) (填坑),挖了几个坑,填几个参数。
  2. "....{0}...{1}...".format(var1,var2,...) (位置标号),前面的坑按数字顺序对应后面的参数。
  3. "....{a}...{b}...".format(a=var1,b=var2,...) (关键字),后面给关键字赋值。

3. f” ”型格式化输出

格式: 直接在f”…{var1}…”的字符串的大括号中,填写变量名称即可。

几点注意:

  1. 输出多个同一类型值时,可以用加号拼接或逗号(分隔符)分隔。
  2. 分隔符号(逗号)默认输出一个空格,如果想输出别的,可以在内容后面跟,sep=” ”,引号中填你想要的分隔符。
  3. print()函数默认换行,因为默认end=”\n”,如果不想换行,可以在内容后面跟,end=” ”,引号中填结尾符。
  4. 双引号单引号都可以,但是首尾引号要对应,且中间不能出现首尾用过的引号,除非中间用转义符\ 。
  5. 使用f' '或' '.format()时,如果字符串本身就含有大括号,会被认作挖的坑,这时候,在需要加{}处,加两次即可,变成{{}},字符串就认为用户加的是单{},且不是挖坑,而是需要输出大括号{}。

注释Comment

python有两种方法进行注释,一种是在某句前加#(行注释),一种是对段落的注释,在需要注释的段前后分别加三个引号''' (块注释)。另外,讲需要备注的若干行选中后加Ctrl+/也可以进行备注多行。注释后,计算机就读不到被注释的文本了。

#this is the first way to annotation 

''' this is a way to annotate
something more than one
line.
'''

备注主要有三个作用:

  1. 对代码加以说明,增加代码可读性(注释不是描述代码,是说功能)
  2. 调试程序,被注释的程序不参与编译(raped code)
  3. 编写函数,类等的说明文档

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")

命令框截图如下:

一些说明:

  1. eval()中可以填任何简单字符串表达式,但eval只能对最外一层的引号进行转换,之内的表达式进行运算。
  2. 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。

一些说明:

  1. 根据系列解包赋值,如果要交换变量a和变量b的值,代码是 a,b=b,a
  2. 命名常常会有几个单词(如:time of date),如果变量或方法可以取timeOfDate,如果是类或函数可以取TimeOfDate。 (首字母大写的是类和方法,小写的是函数和类) 也可以用time_of_date和Time_of_date

如果您觉得Tom写得不错或者不好,欢迎批评或点赞。

 

Elements-of-Python01_Input/Output的更多相关文章

  1. Printing multipage output

    Printing known-length multipage output Using the PrintDataGrid control for multipage grids Example: ...

  2. Spark Rdd coalesce()方法和repartition()方法

    在Spark的Rdd中,Rdd是分区的. 有时候需要重新设置Rdd的分区数量,比如Rdd的分区中,Rdd分区比较多,但是每个Rdd的数据量比较小,需要设置一个比较合理的分区.或者需要把Rdd的分区数量 ...

  3. List 用法和实例(转载)

    写在粘贴复制前:英文的感觉也可以,也能看的懂,多看看英文资料没坏处的 Problem. You have questions about the List collection in the .NET ...

  4. C# 泛型List用法

    C# List Examples by Sam Allen - Updated September 6, 2009 Problem. You have questions about the List ...

  5. C# List 用法与示例

    Problem. You have questions about the List collection in the .NET Framework, which is located in the ...

  6. 4.3 Reduction代码(Heterogeneous Parallel Programming class lab)

    首先添加上Heterogeneous Parallel Programming class 中 lab: Reduction的代码: myReduction.c // MP Reduction // ...

  7. ACM——线性表操作

    线性表操作 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:2795            测试通过:589 描述 线性表是n个元素 ...

  8. RDD.scala(源码)

    ---- map. --- flatMap.fliter.distinct.repartition.coalesce.sample.randomSplit.randomSampleWithRange. ...

  9. 《Velocity 模板使用指南》中文版[转]

    转自:http://blog.csdn.net/javafound/archive/2007/05/14/1607931.aspx <Velocity 模板使用指南>中文版 源文见 htt ...

  10. Hard Process(二分)

    Hard Process Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submi ...

随机推荐

  1. Learning Attention-based Embeddings for Relation Prediction in Knowledge Graphs

    这篇论文试图将GAT应用于KG任务中,但是问题是知识图谱中实体与实体之间关系并不相同,因此结构信息不再是简单的节点与节点之间的相邻关系.这里进行了一些小的trick进行改进,即在将实体特征拼接在一起的 ...

  2. SaaS系统怎么做物流行业年度经营报告,MVC+js+echarts实现

    前言 马上就到年底了,很多公司都要汇总这一年的经营情况,如果一个系统没有自动生成年报的功能, 需要人工手工去做年报,我相信可能是一个不小的工作量,最近我通过一个星期的时间,结合系统情况自动生成年报,全 ...

  3. soundPool声音池

    soundPool可以同时播放多个声音,但是最好文件不要超过1M,声音只能播放几秒,适合游戏混合音效 public class MainActivity extends AppCompatActivi ...

  4. JUC---03Lock(一)ReentrantLock

    1.什么是锁 在以前实现多线程的同步操作时,都是添加synchronized关键字或者synchronized代码块:而锁实现提供了比使用同步方法和语句可以获得的更广泛的锁操作.它们允许更灵活的结构, ...

  5. Spring Cloud 学习笔记 (一)-- Eureka 服务器

    开局一张图,截取了本人学习资料中的一张图,很好地展示了Eureka的架构. Eureka服务器 管理服务的作用.细分为服务注册,服务发现. 所有的客户端在Eureka服务器上注册服务,再从Eureka ...

  6. 【论文阅读】分布一致性算法Paxos 《The Part-Time Parliament》

    论文原文.翻译稿.PPt:https://1drv.ms/u/s!Ak-jGl23kTuMimOZzV-MyLQUYmsN?e=DL1xHD

  7. http接口和web service接口测试区别是什么?

    1.web service有一套完整的协议标准,其中有soap协议,用来进行消息的传递. 2.soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式 Content-type设置 ...

  8. 用GitHub Pages搭建博客(二)

    本篇介绍基本GitHub Pages的搭建流程 GitHub账号及仓库创建 登录GitHub,录入用户名.邮箱.密码,创建成功后登录进入. 注册时,邮箱建议不使用QQ邮箱.因为一些第三方部署类网站不支 ...

  9. 快速傅里叶变换(FFT)学习笔记(其二)(NTT)

    再探快速傅里叶变换(FFT)学习笔记(其二)(NTT) 目录 再探快速傅里叶变换(FFT)学习笔记(其二)(NTT) 写在前面 一些约定 前置知识 同余类和剩余系 欧拉定理 阶 原根 求原根 NTT ...

  10. Java_垃圾回收机制(未掌握)

    垃圾回收机制 任何一种垃圾回收算法一般要做两件基本事情: 发现无用的对象(没有任何变量引用该对象) 回收无用对象占用的内存空间 垃圾回收相关算法: 引用计数法, 引用可达法 分代垃圾回收机制: 不同的 ...