目录
Python3中使用input从键盘上获取输入,print来输出;format进行格式化。
字符串
字符串是 Python 中最常用的数据类型;使用引号 ( ' 或 " ) 来创建字符串。
以变量 a = "Hello",b = "Python"为例:
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | a + b 'HelloPython' |
* | 重复输出字符串 | a * 2 'HelloHello' |
[] | 通过索引获取字符串中字符 | a[1] 'e' |
[ : ] | 截取字符串中的一部分 | a[1:4] 'ell' |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True | "H" in a True |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | "M" not in a True |
r/R | 原始字符串:所有的字符串都是直接按照字面的意思来使用;字符串中的反斜线(\)是一个普通字符,不具有转义功能 | r'D:\temp\file\' |
输入输出
键盘输入
Python提供了input()
内置函数从标准输入读入一行文本;可以接收一个Python表达式作为输入,并将运算结果返回。
input(prompt=None,/)
-
prompt:提示信息
-
返回
str
:根据需要转换为所需类型;通过eval
可处理输入表达式
输入示例:
# 输入必须满足python表达式格式要求:必须使用逗号分割的两个值
m,n=eval(input("input two number: ")) # 'abc', 123
print(m,n) # abc 123
# 只能输入整数值
count = int(input("count: "))
print(count)
输出
Python中使用print输出值,也可以通过文件对象(引用sys.stdout)的write方法输出。print(*objects,sep='',end='\n',file=sys.stdout,flish=flase)
参数说明:
-
objects:可以一次输出多个对象(多个对象时,用逗号分隔);
-
sep:多个对象时他们之间的分隔符,默认值是一个空格;
-
end:以什么结尾,默认值是换行符
\n
;
字符串格式化
python3.6前字符串的格式化方法分为两种为:占位符(%)和format方式;从3.6开始,新增格式化字符串常量。
格式化字符串常量(F-String)
F-String在形式上是以 f
或 F
修饰符引领的字符串(f'xxx'
或 F'xxx'
):
- 以大括号
{}
标明被替换的字段:大括号内可直接填入变量,也可是表达式或函数调用; - 格式化方式与format类似
{content:format}
:如格式化两位浮点{label:.2f}; - 括号内不能使用`\`做转义;
- 在本质上是一个在运行时运算求值的表达式。
name = 'mike'
print(f"my name is {name}, upper {name.upper()}")
count = 5
print(f"total count is {count*2+3}, log {math.log2(count):.4f}")
print(f'''string example: {"I'm mike"}''')
print(f"brace example: {{5}} in brace")
# my name is mike, upper MIKE
# total count is 13, log 2.3219
# string example: I'm mike
# brace example: {5} in brace
format格式化
使用{}来标识格式化字符串,后面使用format列出对应变量。
{[name][:][[fill]align][sign][#][0][width][,][.precision][type]}
格式化符说明:
- sign:正数显示方式(+,数字前添加一个加号;-,直接显示数字,空格,数字前添加一个空格);
- 0:对数值型,指定了宽度时,用0填充高位;
- #:切换数字前导符显示方式(二进制添加'0b',八进制添加'0o',十六进制添加'0x/0X‘);
- ",":千分位分隔符;
- type:指定类型,参考%格式化(如:x十六进制,d整数,f浮点数等)
参数映射
name标识后面参数,可以:
-
空
{}
:自动顺序填充;此方式不能与索引方式混用; -
索引
{0}
:按索引填充,第一个参数为0; -
使用名称
{name}
:通过名称匹配,参数必须是name=value
样式; -
参数是复杂类型时,可直接操作子元素:如
{0[0]}
,{a[first]}
;
print("{act} {lan}{0}".format(3,lan="python",act="study")) # study python3
print("{}:{}".format('192.168.1.100',80)) # 192.168.1.100:80
print("{a[0]} {a[1]}{a[2]}".format(a=["study","python",3])) # study python3
print("{dict[act]} {dict[lan]}{dict[ver]}".format(dict={"act":"study","ver":"3","lan":"python"})) # study python3
对齐方式与精度
填充与对齐方式:
-
algin
^、<、>
:分别是居中、左对齐、右对齐 -
fill:填充内容,默认为空格
-
width:指定宽度
-
precision:指定精度(小数点后的位数),但对于
g
和G
类型,指的是有效位数(小数点前位数+小数点后位数)
print('{:*^10}'.format('分割线')) # ***分割线****
print('{0:.2f}'.format(12.567)) # 12.57
print('{0:b}'.format(10)) # 1010
print('{0:x}'.format(29)) # 1d
print('{:e}'.format(12369132698)) # 1.236913e+10
`%`格式化
Python传统使用%格式字符串:
print('%s %s%d' % ('study', 'Python', 3)) # study Python3
print('%s' % 'abc') # abc
格式符说明:
格式 | 说明 |
---|---|
%% | 百分号标记 |
%c | 字符及其ASCII码 |
%s | 字符串 |
%d | 有符号整数(十进制) |
%u | 无符号整数(十进制) |
%o | 无符号整数(八进制) |
%x | 无符号整数(十六进制) |
%X | 无符号整数(十六进制大写字符) |
%e | 浮点数字(科学计数法) |
%E | 浮点数字(科学计数法,用E代替e) |
%f | 浮点数字(用小数点符号) |
%g | 浮点数字(根据值的大小采用%e或%f) |
%G | 浮点数字(类似于%g) |
%p | 指针(用十六进制打印值的内存地址) |
%n | 存储输出字符的数量放进参数列表的下一个变量中 |
!r与%r
- {!r}就是使用format语法时候的%r。因此,我们只需要关注%r就好。
- %r表示的用repr()处理;类似于的%s表示用str()处理一样。
- 其含义就是,转成解释器可以理解的部分。
- 比如,数字,就变成str;str就变成带有引号的str
- 调用其__repr__函数
- 类似于直接用解释器或者IPython时候,直接在光标下输入变量,然后敲回车的输出。
'hello, {!r}'.format( '123')