Python输入输出流学习笔记

Python的输入与输出

一、输入

(一)输入函数input()

函数用途: 函数input()主要用于接收单个输入
函数参数: 函数括号中可以填写输入的提示语(非必要),提示语与输入内容位于同一行

a = input("Please enter your name")

运行结果:

Please enter your name

(二)输入数据的类型

input函数会将输入默认转换成字符串类型,如果需要接收整型或浮点型变量,则需要使用类型转换函数

# 输入字符串
a = input()
# 输入整数
b = int(input())
# 输入浮点数
c = float(input())

注意如果输入是浮点数,字符串类型的浮点数(例如"23.4")就不能直接转成整型,否则将会出现报错
需要先将其转换成浮点数,然后再转换成整数。但字符串类型的整型(例如"23")可以直接转换成浮点型(23.0)

# 输入浮点数并直接舍弃小数位转换成整型
d = float(input())
d = int(d)
# 输入浮点数并将其按照四舍五入的规则转成整型
e = float(input())
e = round(e)

(三)输入数字的进制

如果输入的数字是2进制、8进制、16进制等其他进制表示的整数,则可以使用int(num, base = 10)函数进行进制转换,int函数默认转换成10进制。此外,还有以下函数可用于进制转换

  • a = hex(a) :将10进制整数转成16进制整数
  • a = oct(a) :将10进制整数转成8进制整数
  • a = bin(a) :将10进制整数转成2进制整数
# 接收2进制整数
a = int(input(), 2)
# 接收8进制整数
a = int(input(), 8)
# 接收16进制整数
a = int(input(), 16)

如果输入的数是浮点数,需要转换成10进制浮点数
则可使用fromhex()函数将字符串直接转换成浮点小数

a = "0x1.47ae51bp+3"
# 转换成10进制浮点数
a = float.fromhex(a)

(四)接收若干个元素(数量已知)

情况一 若干个元素不在同一行,以换行符间隔

使用for循环多次读取

# 输入格式:
# 3
# 4
# 1
# 5
# 接收输入元素总数
n = int(input())
# 初始化一个空列表存储多个元素
elements = []
for i in range(n):
    a = int(input())
    elements.append(a)
情况二 若干个元素在同一行

使用map()、split()实现读取,其中split()函数有一个字符串类型的参数,表示以该字符分割输入,默认值为" ",表示以空格键分割

# 输入样例:23 4 11 55
m, n = map(int, input().split())
# 输入样例:23,4,11,55
m, n = map(int, input().split(","))

(五)接收若干个元素(数量未知)

情况一 若干元素不在同一行,以换行符间隔

使用while循环多次读取,需要设定一个结束读取的标志

# 输入格式:
# 3
# 4
# 1
# 5
# 创建空列表
elements = []
# 设定while循环
while True:
    temp = input()
    # 如果用户没有输入,直接按下换行键则停止循环
    if not temp:
        break
    elements.append(temp)
情况二 若干元素在同一行

同一行的多个元素可以使用空格键、逗号等符号间隔,可以使用split()函数将其存入列表中

# 将数据以一整个字符串的形式存入字符串变量
elements = input()
elements_list = []
elements_list = elements.split(", ")
# 将字符串列表转换成整型列表
elements_int = [int(i) for i in elements_list] 

二、输出

Python的输出主要使用print()和wirte()函数

(一) print()函数用法

print()函数没有返回值,括号内填入要输出的内容,print()有自动换行功能,两个print()函数将分别在上下两行输出结果

  1. 输出单个元素
a = 24
print(a)
  1. 输出列表
    print()函数可以通过读取列表名直接在一行之内输出整个列表,列表元素之间以", "分割,列表两端有方括号标明列表范围
elements = [12,4,2,3,55]
print(elements)
# 输出结果
# [12, 4, 2, 3, 55]
  1. 插入值
name = 'student'
age = 99
# 方法一
print(f'My name is {name},and I am {age} years old.')
# 方法二
print('My name is {},and I am {} years old.'.format(name, age))

(二) write()函数用法

write()需要指定输出为标准输出流还是文件输出流
write()也在括号中填写需要输出的内容,不同的是,write函数中换行需要借助换行符\n显式换行。

  1. 标准输出流
import sys
name = 'student'
age = 99
# 方法一
sys.stdout.write(f'My name is {name},and I am {age} years old.')
# 方法二
sys.stdout.write('My name is {},and I am {} years old.'.format(name, age))

运行结果:

My name is student,and I am 99 years old.My name is student,and I am 99 years old.

  1. 文件输出流
    write()结合open()函数可以实现对其他文件的读取与修改,open()函数主要有两个参数,第一个参数是目标文件的相对路径或绝对路径,第二个参数是操作的类型mode。
    mode有多个值,默认为 ‘r’(只读)。其他常用的模式包括 ‘w’(写入)、‘a’(追加)、‘rb’(二进制读取)等。
name = 'student'
age = 99
with open("output.txt", "w") as file:
    file.write('My name is {},and I am {} years old.'.format(name, age))

三、格式化字符串

(一)字符串常用语法

用于将两个字符串相连

name = 'Stan'
code = '23'
newstr = name+code  # newstr = 'Stan23'

用于将某一字符串重复n次形成新的字符串

s = 'stan'
another = s*2 # another = 'stanstan'   
  1. [start = 0:stop:step = 1]
    切片常用于截取字符串指定位,它不改变原字符串且有三个参数,
    注意截取的区间左闭右开,[start,stop)
    start:默认值为0,注明新串的起始位置
    stop:注明新串末尾字符的后一位的索引
    step:注明截取的步长,默认值为1

(二)字符串格式化函数

  1. capitalize()
    用途: 将字符串的首字母大写
    是否改变原字符串:否
  2. title()
    用途: 将字符串中每一个单词的首字母大写
    是否改变原字符串:否
  3. upper()
    用途: 将字符串中所有字母大写
    是否改变原字符串:否
  4. lower()
    用途: 将字符串中所有字母小写
    是否改变原字符串:否
  5. strip()
    用途: 去除字符串两边的空白符
    是否改变原字符串:否

你可能感兴趣的:(Python学习笔记,python,学习,笔记)