Python入门基础(三)输入、输出及字符串详解

您所在的位置:网站首页 python如何让用户输入字符串后保存文件 Python入门基础(三)输入、输出及字符串详解

Python入门基础(三)输入、输出及字符串详解

2023-08-11 15:21| 来源: 网络整理| 查看: 265

Python入门基础(三)输入、输出及字符串详解 输入输出语句输入输出常规输出原样输出格式化输出三引号格式化%格式化format格式化 字符串类型创建字符串字符串操作符字符串驻留机制(Intern机制)实现原理启用时机 常见函数

输入输出语句 输入

Python使用函数input()从标准输入读取一行文本即键盘读取,以此来读入用户的输入信息。

msg=input('请输入:') print(msg)

注意: 通过input()接收的数据默认为str类型,如需转换数据类型,可使用对应数据类型函数转为指定类型,如int(input(’ 请输入数字:’))

输出 常规输出

Python中的数据输出主要是通过内置函数print()来实现,print()有两个重要参数:sep和end,sep表示插入两值之间的字符串,end表示追加到末尾的字符串,print()默认是带换行,可通过给end赋值取消换行,通常是end=’’。

i1=10 i2=20 print(i1)#常规输出 print(i1,i2)#输出多个值使用逗号分隔 print(i1,i2,sep='----',end='*')#两个值之间用虚线分隔,末尾加*号,取消换行 print(i2+i1) 原样输出

有些特定的字符串中可能会含有转义字符,但我们又不希望转义字符起作用,如正则表达式,这时候我们就需要原样输出如print(r’\n’)。

print(r'1\n2')#原样输出1\n2 print('1\n2')#1回车2 print(r'1\t2')#原样输出1\t2 print('1\t2')#1 2 格式化输出

日常生活中,有时候不仅仅是要单纯输出信息,还要保证格式,Python提供了三种方法实现格式化输出。

三引号格式化

三引号在不赋值的情况下是注释功能,在赋值的情况下则是格式化输出功能

msg=""" 你好! Python! """ print(msg) %格式化

可以用如下的方式,对格式进行进一步的控制:

%[(name)][flags][width].[precision]typecode

(name)为命名

flags可以有+,-,’ ‘或0。+表示右对齐。-表示左对齐。’ '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充。

width表示显示宽度

precision表示小数点后精度

格式符描述%s字符串形式输出%r字符串形式输出%c单个字符形式输出%b二进制整数形式输出%d十进制整数形式输出%i十进制整数形式输出%o八进制整数形式输出%x十六进制整数形式输出%e保留小数点后6位有效数字,指数形式输出%g整数大于6位时指数形式输出,否则原样输出,小数默认保留6位有效数字%f浮点数形式输出% %输出%

示范例子:

import math print(1,'%d'%math.pi)#整数 print(2,'%f'%math.pi)#6位有效数字小数 print(3,'%g'%math.pi)#6位长度小数 print(4,'%e'%math.pi)#6位有效数字指数 print(5,'%.2f'%math.pi)#2位有效数字3.14 print(6,'%.*f'%(3,math.pi))#*指代括号第一个数据,%.*f==%.3f print(7,'%010.2f'%0.5)#保留两位有效数字并左填充8位保证10个长度 print(8,'%+10.2f'%0.5)#右对齐显示正号左填充5个空格保证10个长度 print(9,'%-10.2f'%0.5)#左对齐有填充空格保证10个长度 print(10,'这是第%(n)d条数据'%{'n':10})#通过字典的key来填充 format格式化

Python中最为常见的就是通过format()函数配合{}实现格式化输出。 format函数格式如下: {参数序号:格式控制符} 格式控制符: , 格式表控制符

名称描述填充可以填充任意数据,数字、字母、符号…对齐三个符号,右对齐,^居中对齐,千位分隔符,如10,000宽度任意正整数精度.号开头,表示保留小数位数类型整数类型:b、c、d、o、x、X,浮点数类型:e、E、f、%

类型表

符号描述b输出整数的二级制形式c输出整数对应的Unicode字符d输出整数的十进制形式o输出整数的八进制形式x输出整数的小写十六进制X输出整数的大写十六进制e输出浮点数的e指数形式E输出浮点数的E指数形式f输出浮点数%百分比形式输出浮点数

示范例子:

import math #无参情况,format函数会将参数依次填充,默认第一个参数索引为0,format的参数只能比{}多,不能少! print("1-->{}".format(123)) print("2-->{}\t{}".format(123,456))#123填入第一个{},456填入第二个{},以此类推 #有参情况 print("3-->{1}\t{0}".format(123,456))#指定位置,将456填充到第一个{},123填充到第二个{} #整数 print("4-->{:,}".format(1000000)) print("5-->{:b}".format(123))#二进制形式输出 print("6-->{:c}".format(123))#Unicode形式输出 print("7-->{:d}".format(123))#十进制形式输出 print("8-->{:x}".format(123))#十六进制小写形式输出 print("9-->{:X}".format(123))#十六进制大写形式输出 #浮点数 print("10-->{:e}".format(3.1415))#e指数形式输出浮点数,默认6位小数 print("11-->{:E}".format(3.1415))#E指数形式输出浮点数,默认6位小数 print("12-->{:f}".format(3.1415))#浮点数指数形式输出浮点,数默认6位小数 print("13-->{:%}".format(3.1415))#百分比指数形式输出浮点数,默认6位小数 print("14-->{0:.2f}\t{1:.2f}".format(math.pi,0.123456))#指定位置,并保留2位小数,浮点数形式输出 print("15-->{:>10.2f}".format(math.pi))#右对齐,宽度10,填充空格,保留2位小数,浮点数形式输出 print("16-->{:*{:*^10.2f}".format(math.pi))#居中对齐,宽度10,填充*,保留2位小数,浮点数形式输出

注意: 有填充时必须要有对齐

字符串类型 创建字符串

1、单引号、双引号或三引号都可以创建字符串

s1='你好' s2="你好" s3='''你好''' s4="""你好"""

2、str()函数创建

a=10 s=str(a) print(s)

3、+拼接创建字符串

s="num:"+'10' print(s)

4、创建长字符串

s='123456' \ '78910' \ '111213' print(s) 字符串操作符

a=‘abc’ b=‘xyz’

符号描述+字符串拼接 如a+b=>‘abcxyz’*字符串重复 如a*3=>‘abcabcabc’[]获取字符串中某个字符如a[1]=>‘b’[:]截取字符串如a[0:2]=>‘ab’in如果字符在字符串中返回True,否则返回False ,如’c’ in a=>Truenot in如果字符不在字符串中返回True,否则返回False,如’d’ not in a=>Truer/R字符串原样输出,如print(r’\n’)=>’\n’ 字符串驻留机制(Intern机制)

Python为了优化效率,使用了Intern机制,intern机制是值相同的字符串对象会保存一份到字符串存储池中,这个池子是共用的,也是不可改变的。

实现原理

实现 Intern 机制的方式非常简单,就是通过维护一个字符串储蓄池,这个池子是一个字典结构,如果字符串已经存在于池子中了就不再去创建新的字符串,直接返回之前创建好的字符串对象,如果之前还没有加入到该池子中,则先构造一个字符串对象,并把这个对象加入到池子中去,方便下一次获取。

启用时机

1.在shell中示例,并非全部的字符串都会采用intern机制。仅仅包括下划线、数字、字母的字符串才会被intern。

>>> a='hello' >>> b='hello' >>> print(a is b) True >>> a='hello123' >>> b='hello123' >>> print(a is b) True >>> a='hello_123' >>> b='hello_123' >>> print(a is b) True >>> a='hello 123' >>> b='hello 123' >>> print(a is b) False

2、变量拼接时

>>> s1='a' >>> s2='abc' >>> print(s1+'bc' is s2)#s1是变量,只有运行时才会拼接,所以不被intern False >>> s1='a' >>> s2='abc' >>> print('a'+'bc' is s2)#'a'+'bc'编译时就变成'abc'了,所以是同一字符串 True

3、pycharm中只要是同一字符串都会被intern。

常见函数 函数名描述string.count(str[start,end])返回str在string中出现的次数,可指定范围string.find(str[start,end])在string中查找str,有就返回第一次出现的下标,没有就返回-1,可指定范围string.rfind(str[start,end])右边查找,作用同find,可指定范围string.index(str[start,end])同find,但找不到会报错,可指定范围string.rindex(str[start,end])右边查找,作用同index,可指定范围string.upper()将字符串中所有字母大写string.lower()将字符串中所有字母小写string. strip()去除字符串左右的空格string.lstrip()去除字符串左边的空格string.rstrip()去除字符串右边的空格string.replace(str1,str2[,max])将字符串中的str1替换为str2,最多可替换max次string.split(str[,max])将字符串按照str分隔,最多可分隔max次str.join(seq)将序列通过str连接成一个字符串string.startswith(str[start,end])判断字符串是否以str开头,可指定范围string.endswith(str[start,end])判断字符串是否以str结尾,可指定范围string.swapcase()将字符串中的大写变小写,小写变大写


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3