关于input的相关知识点
-
isdigit()函数
只能用于字符串类型,且只能检验是否整数,不能检验输入的字符串是否浮点数
只有数字字符串返回 True,包含小数、正负号、科学计数法等都会返回 False
用法:
x='+5'
x.isdigit()==False
-
isalpha()函数
来判断一个字符串是否只包含字母
my_string = "Hello123"
if my_string.isalpha():
print("字符串只包含字母")
else:
print("字符串不只包含字母")
-
filter()函数——过滤非字母
filter()
函数是Python内置函数之一,它用于过滤序列中的元素。filter()
函数接收一个函数和一个序列作为参数,将序列中的每个元素依次传入函数中进行判断,最终返回一个由使得函数返回值为True的元素所构成的迭代器。
如果需要从一个字符串中提取出只包含字母的部分,可以使用列表解析或者filter()
函数结合str.isalpha()
方法的方式,如下所示:
my_string = "Hello, 123World!"
letters_only = ''.join(filter(str.isalpha, my_string))
print(letters_only) # 输出:HelloWorld
-
break
用在while和for中,终止当前循环。
-
try
常常可以捕捉的错误类型【也可以不指定错误类型!!!】:
ZeroDivisionError:除以零的错误
ValueError:值错误,通常与数据类型转换相关
TypeError:类型错误,操作不支持的数据类型
FileNotFoundError:文件未找到错误
print("Give me two numbers, and I'll divide them.")
print("Enter 'q' to quit.")
while True:
first_number = input("\nFirst number: ")
if first_number == 'q':
break
second_number = input("Second number: ")
try:
answer = int(first_number) / int(second_number)
except ZeroDivisionError:
print("You can't divide by 0!")
else:
print(answer)
-
finally
用于定义一个在 try...except... 语句块中的可选的最后执行的代码块。
无论在 try 语句块中是否抛出异常,finally 代码块中的代码都会执行。
python可以打开的文件类型
- 逗号分隔值(CSV)pandas---pd---pd.read_csv()
- XLSXpandas---pd---pd.read_excel()
- 纯文本(txt)
- JSON pandas---pd---pd.read_json
- 图像
- ...
文本文件
pipaxing = open("pipaxing2.txt", "r")#打开文件对象,将文件对象赋值给变量 pipaxing。只读模式
lines = pipaxing.read()#调用文件对象的 read() 方法,将文件内容读取到一个字符串变量 lines 中。
pipaxing.close()#关闭文件对象,释放文件资源。
'r':读,open()的默认值就是r
'w':写,如果没有这个文件,就创建一个;如果有,就把原文件的内容清空再写入新的东西
'a':追加,不想清空原来的内容而是直接在后面追加新的内容,就用'a'这个模式【add】
'r+' == r+w(可读可写,文件若不存在就报错)
'w+' == w+r(可读可写,文件若不存在就创建)
'a+' ==a+r(可追加可读,文件若不存在就创建)
如果是二进制文件,就都加一个b:
'rb'
'wb'
'ab'
'rb+'
'wb+'
'ab+'
try:
lines = open('pi_digit.txt')
print(lines.read())
except:
print('No such file or directory')
finally:
if lines:
lines.close()
#等价于
with open(filename) as file_object:
lines = file_object.read()
read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。
- 如果文件大于可用内存,为了保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。
readlines() 自动将文件内容分析成一个行的列表.
- 例['3.1415926535\n', ' 8979323846\n', ' 2643383279\n']
- 该列表可以由 Python 的 for ... in ... 结构进行处理。去\n用line.rstrip()
readline() 每次只读取一行,通常比readlines() 慢得多。
- 仅当没有足够内存可以一次读取整个文件时,才应该使用 readline()。【通常不用,用了就用循环】
-
x = 1 with open(filename) as file_object: lines = file_object.readline() while lines: print(x) print(lines) x = x + 1 lines = file_object.readline()
关于写或者追加
with open('test.txt', 'w') as wt:
wt.write('world!')
#writelines()是对列表的操作,把一个字符串列表添加到文件中
with open(filename,'a') as file_object:
file_object.writelines(["I also love finding meaning in large datasets.\n",
"I also love creating apps that can run in a browser.\n"])
关于函数
接受任意长度的序列作为参数
*args
把第一个值给了参数一
把第二个值给了参数二
把其他的值,作为**元组**,给了参数三
def example_function(arg_1, arg_2, *arg_3):
print('\narg_1:', arg_1)
print('arg_2:', arg_2)
print('arg_3:', arg_3)
example_function(1, 2, 3, 4, 5)
任意数字作为关键词参数
**kwargs
把第一个值给了参数一
把第二个值给了参数二
把其他的值,作为**字典**,给了参数三
def example_function(arg_1, arg_2, **kwargs):
print('\narg_1:', arg_1)
print('arg_2:', arg_2)
for key, value in kwargs.items():
print('arg_3 value:', value)
example_function('a', 'b', value_3='c', value_4='d', value_5='e')