只从文件中读取 str 对象
Reading only str objects from a file
因此,在处理我的程序时,我正在尝试读取文件,带回包含的所有信息。而另一个函数拆分列表并随机生成包含的字符串。如果不是字符串,请重试。
不幸的是,我的程序在执行此操作时出错,完全拒绝服从或只是给我一个错误,或者是的,出错了。
所以现在我正在寻找一种只读取字符串对象的方法,这样我就可以跳过检查它是否为整数的整个部分。
import random
from random import randrange
def readfile(file):
try:
f = open(file, 'r')
fil = f.readlines()
f.close()
return fil
except IOError:
print('fil finns inte')
return None
def chooseword(lista):
while True:
lista = random.choice(lista)
ordet = lista.split()
x = randrange(len(ordet))
ord = ordet[x]
try:
if ord.isalpha:
return ord
except:
print("none")
print(chooseword(readfile("file.txt")))
我试过使用 random.choice 而不是 randrange,这没有任何区别。
那么,我将如何继续只导入字符串对象,例如单词,例如:Banan 而不是 123 或 ¤%&。
谢谢
谢谢
您的代码中有很多错误。最明显的问题出在您的 chooseword
函数中。如果您读取的第一个字符串不是字母字符串,您将有一个无限循环,因为您用随机元素的值覆盖 lista
,因此,当您再次迭代循环时,您将读取相同的元素一遍又一遍,永远不会退出循环。
检查字符串是否只包含字母是一个函数调用,所以你必须调用.isalpha()
。此外,如果您点击了一个非字母字符串,那么我怀疑您希望点击例外(比如快 5 倍 :))并打印 'none'
...您的代码永远不会发生这种情况。只需使用 if, else
条件。
您的固定密码:
import random
from random import randrange
_file = file
def readfile(file):
with open(file, 'rb') as f:
try:
return f.readlines()
except:
print('fil finns inte') # not sure what your trying to catch here
def chooseword(lista):
while True:
dont_overwrite_lista = random.choice(lista)
ordet = dont_overwrite_lista.split()
x = randrange(len(ordet))
ord = ordet[x]
if ord.isalpha():
return ord
else:
print('none')
print(chooseword(readfile("file.txt")))
PS
这是罕见的代码 "refuses to obey" ;)。记住计算机是愚蠢的,它们完全按照我们告诉他们的去做。
因此,在处理我的程序时,我正在尝试读取文件,带回包含的所有信息。而另一个函数拆分列表并随机生成包含的字符串。如果不是字符串,请重试。
不幸的是,我的程序在执行此操作时出错,完全拒绝服从或只是给我一个错误,或者是的,出错了。
所以现在我正在寻找一种只读取字符串对象的方法,这样我就可以跳过检查它是否为整数的整个部分。
import random
from random import randrange
def readfile(file):
try:
f = open(file, 'r')
fil = f.readlines()
f.close()
return fil
except IOError:
print('fil finns inte')
return None
def chooseword(lista):
while True:
lista = random.choice(lista)
ordet = lista.split()
x = randrange(len(ordet))
ord = ordet[x]
try:
if ord.isalpha:
return ord
except:
print("none")
print(chooseword(readfile("file.txt")))
我试过使用 random.choice 而不是 randrange,这没有任何区别。
那么,我将如何继续只导入字符串对象,例如单词,例如:Banan 而不是 123 或 ¤%&。
谢谢
谢谢
您的代码中有很多错误。最明显的问题出在您的 chooseword
函数中。如果您读取的第一个字符串不是字母字符串,您将有一个无限循环,因为您用随机元素的值覆盖 lista
,因此,当您再次迭代循环时,您将读取相同的元素一遍又一遍,永远不会退出循环。
检查字符串是否只包含字母是一个函数调用,所以你必须调用.isalpha()
。此外,如果您点击了一个非字母字符串,那么我怀疑您希望点击例外(比如快 5 倍 :))并打印 'none'
...您的代码永远不会发生这种情况。只需使用 if, else
条件。
您的固定密码:
import random
from random import randrange
_file = file
def readfile(file):
with open(file, 'rb') as f:
try:
return f.readlines()
except:
print('fil finns inte') # not sure what your trying to catch here
def chooseword(lista):
while True:
dont_overwrite_lista = random.choice(lista)
ordet = dont_overwrite_lista.split()
x = randrange(len(ordet))
ord = ordet[x]
if ord.isalpha():
return ord
else:
print('none')
print(chooseword(readfile("file.txt")))
PS
这是罕见的代码 "refuses to obey" ;)。记住计算机是愚蠢的,它们完全按照我们告诉他们的去做。