文章目录 1. Input 标准输入 1.1 标准输入 1.2 阻塞状态 1.3 输入提示 1.4 获取输入字符串 1.5 输入版本差异 1. Python3 输入数据类型 2. Python2 输入数据类型 2. Print 格式化输出 2.1 输入 2.2 sep 参数 2.3 end 参数 2.4 快捷写法 2.5 格式化输出 1. 语法格式 2. 字典形式传值 3. 元组形式传值 4. 字符宽度与标志 2.6 .format 格式化输出 1. format 方法 2. 填充字符与对齐方式 3. 精度控制&进制转换与千分位格式 2.7 f 格式化输出 3. 输出字符串转义 4. 练习
1. Input 标准输入
1.1 标准输入
input ( ) 接受一个标准输入数据 , 返回为string类型 .
从标准输入中读取字符串 , 尾部换行符 ( 回车 \ n ) 被删除 . 序在执行到 input ( ) 函数时会阻塞程序的运行 , 要求输用户在运行工具窗口输入信息 ,
输入信息后 , 按下回车提交信息 , 程序继续往下运行 . input ( ) 的返回值就是用户输入的字符串信息 , 获取的数据可以用一个变量来存储 .
在默认情况下运行工具窗口就一个光标在闪烁 , 提示性不不强 ,
可以在 input 函数内中提供提示参数写入一段字符串 , 用于增强提示 .
1.2 阻塞状态
* 1. 运行下列程序之后 , 开始看不到任何效果 , 将鼠标点击到运行工具窗口 , 出现一个光标闪烁 .
input ( )
print ( 'hello world!' )
* 2. 出现光标后 , 表示进入输入状态 , 输入完毕按下回车提交输入的字符串数据 , 程序将继续执行 . 直接回车的表示提交空字符串 .
运行工具窗口显示 :
( 回车 )
'hello world!'
1.3 输入提示
在 input ( ) 函数写一个字符串 , 该字符串会出现在运行工具窗口 .
没有描述信息的话 , 输入全靠猜 , 在设置提示之后 , 简单明了 .
input ( "你好, 请看到这个信息在这里输入你的名称>>>>>: " )
print ( '久等了···' )
运行工具窗口显示 :
你好 , 请看到这个信息在这里输入你的名称 > > > > > : ( 回车 )
久等了···
1.4 获取输入字符串
获取的字符串数据可以赋值给一个变量 , 使用变量将值存储之后就行在程序中使用 .
name = input ( "你好, 请看到这个信息在这里输入你的名称>>>>>:" )
print ( name)
运行工具窗口显示 :
你好 , 请看到这个信息在这里输入你的名称 > > > > > : ( hello )
hello
1.5 输入版本差异
Python2 与 Python3 输入的存在着差异 .
Python3 所有的输入被被转换为字符串类型 .
Python2 中输入是什么数据 , 变量就是什么数据类型 . python3 的的中的 input 其实是 Python2 中的 raw_input ( ) .
raw_input ( ) 直接读取控制台的输入 , 任何类型的输入它都可以接收 .
1. Python3 输入数据类型
str1 = input ( '请在这个输入: ' )
print ( str1)
print ( type ( str1) )
运行工具窗口显示 :
请在这个输入 : ( 123 )
123
< class 'str' >
2. Python2 输入数据类型
* 1. 切换编译环境 Python 2.7 .18
str1 = input ( 'input>>>:' )
print ( str1)
print ( type ( str1) ) str2 = raw_input ( 'input>>>:' )
print ( str2)
print ( type ( str2) )
运行工具窗口显示 :
input > > > : ( 123 )
123
< type 'int' >
input > > > : ( 123 )
123
< type 'str' >
2. Print 格式化输出
2.1 输入
print ( ) 函数用于变量的输出和数据的格式化输出 .
* Python2 如果是纯数字可以省略括号 . def print ( self , * args , sep = ' ' , end = '\n' , file = None ) : args : 可以同时输出多个对象 , 对象之间使用逗号隔开 .
sep : 多个对象的间隔距离 , 默认是一个空格 .
end : 设置输出的结尾符号 , 默认为换行符 .
file : 输出位置 , 默认为当前sys . stdout ( 系统的标准化输出 ) .
print ( 1 , 2 , 3 , end= '' )
运行工具窗口显示 :
1 2 3
( 这个一个空行是 print ( ) 函数的 end参数造成的 )
2.2 sep 参数
sep : 多个对象的间隔距离 , 默认是一个空格 .
print ( 1 , 2 , 3 , sep= ' ' )
print ( 1 , 2 , 3 , sep= '' )
print ( 1 , 2 , 3 , sep= '+' )
运行工具窗口显示 :
1 2 3
123
1 + 2 + 3
2.3 end 参数
end : 设置输出的结尾符号 , 默认为换行符 .
print ( 0 , end= '\n' )
print ( 1 , end= '' )
print ( 2 , end= '*' )
print ( 3 , end= '+' )
运行工具窗口显示 :
0
12 * 3 +
2.4 快捷写法
在Pycharm中打印字符串的快捷写法 .
输出对象 . print tab键
2.5 格式化输出
1. 语法格式
将字符串中某些内容进行替换 , 再输出 .
格式化输入原理 : 利用占位符 , 先占位在把传值 , 不能多传 , 也不能少传 .
转换说明符 解释 %d、%i 转换为带符号的十进制整数 %o 转换为带符号的八进制整数 %x、%X 转换为带符号的十六进制整数 %e 转化为科学计数法表示的浮点数(e 小写) %E 转化为科学计数法表示的浮点数(E 大写) %f、%F 转化为十进制浮点数 %g 智能选择使用 %f 或 %e 格式 %G 智能选择使用 %F 或 %E 格式 %c 格式化字符及其 ASCII 码 %r 使用 repr() 函数将表达式转换为字符串 %s 使用 str() 函数将表达式转换为字符串
print ( '--> %s <--' % 18 )
print ( '--> %s <--' % [ 1 , 23 ] )
print ( '--> %s <--' % { 'a' : 333 } )
print ( '--> %d <--' % 18 )
运行工具窗口显示 :
-- > 18 < --
-- > [ 1 , 23 ] < --
-- > { 'a' : 333 } < --
-- > 18 < --
2. 字典形式传值
以字典的形式传值 , 可以打破位置的限制 .
在 % 与数据格式字符中间添加中括号 , 中括号中写字典中key的名字 .
str1 = "我的名字是 %(name)s 我的年龄是 %(age)s." % { "age" : "18" , "name" : 'kid' }
print ( str1)
运行工具窗口显示 :
我的名字是 kid 我的年龄是 18.
3. 元组形式传值
元组形式传值就是原生的样式 , 元组有多少个元素 , 就提供几个参数 .
print ( '%s %s' % ( 1 , 2 ) )
t1 = 1 , 2
print ( '%s %s' % t1)
运行工具窗口显示 :
1 2
1 2
4. 字符宽度与标志
设置输出字符的占用宽度的个数 .
标志 说明 - 指定左对齐 + 输出的数字总要带着符号;正数带+
, 负数带-
. 0 宽度不足时:数字类型补充 0, 字符类型补充空格.
% 06 d 表示 : 一共 6 位 , 位数不够 0 来凑 .
% m . nf 表示:一共m位 , 小数部分占n位 . ( m 表示最小宽度 , n 表示输出精度 . )
print ( '%06d' % 1 )
print ( '%6d' % 123 )
print ( '%6d' % 12345678 )
print ( '%10.6f' % 123.456 )
print ( "123%03s56" % 4 )
运行工具窗口显示 :
000001 123
12345678
123.456000
123 456
2.6 .format 格式化输出
1. format 方法
. format ( ) 是字符串的一个方法 , 仅 Python3 支持 , 官方推荐使用 ! .
字符串中使用 { } 中括号占位 , 使用 . format ( 参数 1 , 参数 2 , . . . ) 方法传递参数 . 使用参数的方式 :
* 1. 中括号默认是按传入顺序依次使用参数 .
* 2. 传入的参数是一个有序的集合 , 中括号中使用索引获取对应的值 .
* 3. 中括号中写变量名获取值 .
str1 = '我的名字是 {} 我的年龄是 {}.' . format ( 'kid' , 18 )
print ( str1)
str2 = '我的名字是 {0} {0} {0} 我的年龄是 {1} {1}.' . format ( 'kid' , 18 )
print ( str2)
age = 18
str3 = '我的名字是 {name} {name} {name} 我的年龄是 {age} {age}.' . format ( name= 'kid' , age= age)
print ( str3)
运行工具窗口显示 :
我的名字是 kid 我的年龄是 18.
我的名字是 kid kid kid 我的年龄是 18 18.
我的名字是 kid kid kid 我的年龄是 18 18.
2. 填充字符与对齐方式
先通过索引方式取到值 , 然后在冒号后设定填充格式 : [ 填充字符 ] [ 对齐方式 ] [ 宽度 ]
* 填充字符默认不写就是空格
齐方式 :
< 左对齐
> 右对齐
^ 居中
print ( '{0:*<10}' . format ( '开始执行' ) )
print ( '{0:*>10}' . format ( '开始执行' ) )
print ( '{0:*^10}' . format ( '开始执行' ) )
运行工具窗口显示 :
开始执行 * * * * * *
* * * * * * 开始执行
* * * 开始执行 * * *
3. 精度控制&进制转换与千分位格式
{ x : . n格式 } n 为精度
{ x : b } 二进制格式
{ x : o } 八进制格式
{ x : x } 十六进制格式
{ x : x } 千分位格式化
print ( '{salary:.3f}' . format ( salary= 1232132.12351 ) )
print ( '{0:b}' . format ( 123 ) )
print ( '{0:o}' . format ( 9 ) )
print ( '{0:x}' . format ( 15 ) )
print ( '{0:,}' . format ( 99812939393931 ) )
运行工具窗口显示 :
1232132.124
1111011
11
f
99 , 812 , 939 , 393 , 931
2.7 f 格式化输出
f 格式话输出 在 Python3 . 5 开始才推出 , 直接在括号内使用变量 .
可以使用 . format ( ) 方法的填充字符 , 对齐方式 , 精度控制 , 进制转换与千分位格式 . . .
str1 = 'hello'
num = 1800
print ( f' { str1: *^10 } { str1} { num: , } { num: x } ' )
运行工具窗口显示 :
* * hello * * * hello 1 , 800 708
3. 输出字符串转义
3.1 转义字符
转义字符 说明 \n 换行符, 将光标位置移到下一行开头. \r 回车符, 将光标位置移到本行开头. \t 水平制表符, 也即 Tab 键, 一般相当于四个空格. \a 蜂鸣器响铃.注意不是喇叭发声, 现在的计算机很多都不带蜂鸣器了, 所以响铃不一定有效. \b 退格(Backspace), 将光标位置移到前一列. \\ 反斜线 \’ 单引号 \" 双引号 \ 在字符串行尾的续行符, 即一行未完, 转到下一行继续写.
3.2 覆盖打印案例
覆盖打印 : 打印一次 , 延时 1 秒 , 在打印 ,
sed = "" 设置print不换行打印 .
\ r 将光标位置移到本行开头 , 再次打印的话将上次的内容覆盖 .
time . sleep ( 1 ) 延时一秒 .
import timeprint ( "\r离程序退出还剩%s秒" % 3 , end= "" )
time. sleep( 1 )
print ( "\r离程序退出还剩%s秒" % 2 , end= "" )
time. sleep( 1 )
print ( "\r离程序退出还剩%s秒" % 1 , end= "" )
time. sleep( 1 )
print ( "\r离程序退出还剩%s秒" % 0 , end= "" )
import time
for i in range ( 10 ) : print ( "\r离程序退出还剩%s秒" % ( 9 - i) , end= "" ) time. sleep( 1 )
4. 练习
1. 写一段程序
接收用户输入的用户名、年龄、性别 , 然后按照如下格式输出 : 我的名字是:xxx 我的年龄是:xxx 我的性别是:xxx 2. 用户输入姓名、年龄、工作、爱好 , 然后打印成以下格式
------------ info of Egon -----------
姓名 : KID
年龄 : 22
工作 : XX
爱好 : YY
------------- end -----------------
文章的段落全是代码块包裹的, 留言0是为了避免文章提示质量低. 文章的段落全是代码块包裹的, 留言1是为了避免文章提示质量低. 文章的段落全是代码块包裹的, 留言2是为了避免文章提示质量低. 文章的段落全是代码块包裹的, 留言3是为了避免文章提示质量低. 文章的段落全是代码块包裹的, 留言4是为了避免文章提示质量低. 文章的段落全是代码块包裹的, 留言5是为了避免文章提示质量低. 文章的段落全是代码块包裹的, 留言6是为了避免文章提示质量低. 文章的段落全是代码块包裹的, 留言7是为了避免文章提示质量低. 文章的段落全是代码块包裹的, 留言8是为了避免文章提示质量低. 文章的段落全是代码块包裹的, 留言9是为了避免文章提示质量低.