python io操作及习题

1.python输入: input(prompt=None)

Read a string from standard input. The trailing newline is stripped. 从标准输入读取一个字符串

The prompt string, if given, is printed to standard output ​ 如果给了提示字符串,将被打印到标准输出 input有没有返回值:肯定有返回值(类型:字符串)

data = input("This is first input")
# 读取到的一定是字符串,如果想使用实际数据类型,需要做类型转换
print(data, type(data))
print("input finished")

# num = None


print(*args, sep=' ', end='\n', file)
*args:arguments 参数
sep:separator 分隔符
end:end 结尾 在结尾加换行符
file:打开文件之后返回的东西


file_obj = open("file.txt", "w", encoding="utf-8")
print("this is test for file argument", file=file_obj)
file_obj.close()
姓名 年龄  家庭住址
两个 18    xxxxxxx
三个 19    xxxxxxxxxxxx

格式化输出:老的占位符
%d:  digit      整型
%f:   float      浮点型
%s:   string   字符型
"""
"""
data = 1
data2 = 2.2
data3 = "123"
print(data, data2, data3)
print(data, data2, data3)
print("data is", data, "data2 is", data2, "data3 is", data3)

# 右对齐
print("data is %d, data2 is %f, data3 is %s" % (data, data2, data3))
# 浮点数暂时后面的位数 %。1f
print("data is %d, data2 is %.1f, data3 is %s" % (data, data2, data3))
# 限制显示的宽度: %numd %nums
data = 9999
print("data is %d, data2 is %.1f, data3 is %6s" % (data, data2, data3))
print("data is %4d, data2 is %.1f, data3 is %6s" % (data, data2, data3))

# 左对齐:-
data = 1
print("data is %-4d, data2 is %.1f, data3 is %-6s" % (data, data2, data3))

# 居中对齐:+
print("data is %+4d, data2 is %.1f, data3 is %+6s" % (data, data2, data3))

2.新的格式化:format f/F "{variable_name}" {variable_name:宽度}

print(f"data is {data}, data2 is {data2}, data3 is {data3}" )
print(F"data is {data:4}, data2 is {data2}, data3 is {data3}" )
# 右对齐: >
data = 9999
print(f"data is {data:>4}, data2 is {data2}, data3 is {data3}" )
# 左对齐:<
print(f"data is {data:<4}, data2 is {data2}, data3 is {data3}" )
# 居中对齐:^
print(f"data is {data:^4}, data2 is {data2}, data3 is {data3}" )
# 填充: *
print(f"data is {data:*^4}, data2 is {data2}, data3 is {data3}" )
data = ["张三", 20, "陕西省xxx"]
data1 = ["王五五", 280, "内蒙古xxxx"]
print(f"{data[0]:<15},{data[1]:^10},{data[2]:20}")
print(f"{data1[0]:<14},{data1[1]:^10},{data1[2]:20}")

3.字符串的操作方法 序列:

str, tuple, list, set dict 长度:len:length len(obj)

str_data = "123"
print(len(str_data))

4.字符串的使用方式:

# capitalize()  首字母大写
str_data = "hollo"
print(str_data.capitalize())

# upper()  字符串全部大写
str_data = "hollo"
print(str_data.upper())

# lower()  字符串全部小写
str_data = "hollo"
print(str_data.lower())

# casefold() 返回适合无大小写比较的字符串,改成小写
str_data = "Holle"
print(str_data.casefold())

# center()  居中对齐
str_data = "holle"
print(str_data.center(10, "*"))
# ljust()   左对齐
print(str_data.ljust(10, "*"))
# rjust()   右对齐
print(str_data.rjust(10, "*"))

# count()  计数
print(str_data.count("l"))
print(str_data.count("l", 3))

# encode()  默认编码是UTF-8
str_data = "hello"
print(str_data.encode(), type(str_data.encode()))

# endswith() 查找字符串是不是以什么结尾的
print(str_data.endswith("lo"))

# expandtabs()  返回使用空格展开所有制表符的副本,其中所有的制表符都会由一个或者多个空格替换。
# 如果未指定tabsize,具体取决于当前列表位置的给定的制表符宽度。
# 每个tabsize个字符设为一个制表位则假定选项卡大小为8个字符。
str_data = "hello\tworld"
print(str_data)
print(str_data.expandtabs(tabsize=2), len(str_data.expandtabs(tabsize=5)))
print(str_data.expandtabs(tabsize=3), len(str_data.expandtabs(tabsize=5)))
print(str_data.expandtabs(tabsize=4), len(str_data.expandtabs(tabsize=5)))
print(str_data.expandtabs(tabsize=5), len(str_data.expandtabs(tabsize=5)))
print(len(str_data.expandtabs(tabsize=5)))

# format()   #格式化
# 方法:"".format(参数)----->"{}".format(参数)
data = 1
data2 = 2
data3 = 3
print(f"data is {data:*^4}, data is {data2}, data3 is {data3}")
# {}对应关系,根据你身后传参的顺序
print("data is {}, data2 is {}, data3 is{}".format(data, data2, data3))
# 也可以指定顺序: {0}, {1}, {2}
# 前提是把format传入的参数当做一个元组(data, data2, data3)
print("data is {2}, data2 is {1}, data3 is {0}".format(data, data2, data3))
# 用下标写出list_data中的值
list_data = [1, 2, 3]
print("data is {0[0]}, data2 is {0[1]}, data3 is {0[2]}".format(list_data))
# 把list_data名字传进去,这时候List_data只是参数
print("data is {list_data[0]}, data2 is {list_data[1]}, data3 is {list_data[2]}".format(list_data=[1, 2, 3]))

# replace() #替换
str_data = "计算机, 软件, 网络, 自动化, 电器"
print(str_data)
print(str_data.replace(",", "\n"))
print(str_data.replace(",", "\n", 2))

# join()  =>"".join()  #连接字符串数组,已指定的符号连成新的字符串
list_data = ["计算机", "软件", "网络", "自动化", "电器"]
print("-".join(list_data))

# isdigit()   是否为纯数字的字符串
print("123".isdigit())

# isalnum()   是否是数字和数字组成的字符串
print("1i3".isalnum())

# isalpha()   是否是纯字母的字符串
print("123".isalpha())

# strip  去除收尾的空格,默认的是空格,也可以是指定的字符
str_data = "  hello  "
print(str_data.strip())
str_data = ",,,hello,,,"
print(str_data.strip(","))

# split 分割符,根据指定的字符去分割,分割次数
str_data = "hello,world,china"
print(str_data.split(","))
print(str_data.split(",",1))

s = "123456789"
print(s[::-1])

5.输入: 请输入一个0和1组成的二进制的字符串:1101 把它转化成10进制,输出:13 s = input("请输入一个由1和0组成的二进制字符串:")

# 1101 
d = 0
# while s:    # => s:1101
#     d = d + 1 * 2^3 => 2^3
#     d = d + int(s[0]) * 2 ** (len(s)-1)
#     s = s[1:]  => 1101 => 101
#     s => 101
#     d = d + 1 * 2^2
#     d = d + int(s[0]) * 2 ** (len(s)-1)
#     s = s[1:] => 101 => 01
#     s => 01
#     d = d + 0 * 2^1
#     d = d + int(s[0]) * 2 ** (len(s)-1)
#     s = s[1:] => 01 =>1
print("转化成十进制的数为:{__3__}")

1101 = 1 * 2^0 + 0 * 2^1 + 1 * 2^2 + 1 * 2^3
s = s[1:]

=> range(start, atop, step)
# 切片
[start:stop:step]
s[1:] => s[start:] => stop和step省略掉了
      => stop: 结尾, step:1
s[1:-1:1]
s[1:]
1101 => 101
101 => s[1:] => 01
01 => s[1:] => 1
1 => s[1:] => ""
​x str_data = "1101"
print(str_data[0:])
print(str_data[1:4])
​s = input("请输入一个由1和0组成的二进制字符串:")
d = 0
while s:
    d = d + int(s[0]) * 2 **(len(s) - 1)
    s = s[1:]print("{}".format(d))
​print(bool(None), bool(""))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值