python
假设 s = '李晓明城'输入 李晓明 或者 明城 总之如果输入的是这个s的一部分,就把s打印出来,
我不知道该咋办。
我知道我写的是错误的。
while True:
simi = input('请输入名字的一部分:')
for i in ls1:#ls1是姓名组成的列表
if simi in i:
print(i)
我就是想找相似的名字 本帖最后由 louxinghao 于 2021-9-3 14:18 编辑
可以直接用 in 来判断
s = '李晓明城'
while True:
simi = input('请输入名字的一部分:')
if simi in s:
print(s)
break 这个逻辑没啥问题
s = '李晓明城'
ls1 =
while True:
simi = input('请输入名字的一部分:')
for i in ls1:#ls1是姓名组成的列表
if simi in i:
print(i)
逃兵 发表于 2021-9-3 14:18
这个逻辑没啥问题
s = '李晓明城'
>>> if '李城' in s:
print(True)
else:
print(False)
False 赵从文芜湖123 发表于 2021-9-3 14:21
s = '李晓明城'
>>> if '李城' in s:
print(True)
名字的部分可能不会挨着
s = '李晓明城'
while True:
simi = input('请输入名字的一部分:')
for i in simi:
print(i)
if i in s:
print(s)
输入只要有一个字在s里就打印s s = '李晓明城'
k = True
simi = input('请输入名字的一部分:')
for i in simi:
if i not in s:
k = False
if k:
print(s)
输入的字符,都是s的一部分就会打印s,出现不是s的部分就不会打印s 灰晨 发表于 2021-9-3 14:26
输入只要有一个字在s里就打印s
可是我感觉我想的是有几个字,在s中,才打印出来。
因为我在核对名单,有些名字,名单中没有,我需要一个一个去找。核对的名单中,比如李红珠(造的),名单中就没有,只有李无珠和李有珠(造的),所以我想的是,输入李红或者李珠或者红珠来搜索。 灰晨 发表于 2021-9-3 14:31
输入的字符,都是s的一部分就会打印s,出现不是s的部分就不会打印s
wow好像 很有道理哎
我去试试 本帖最后由 灰晨 于 2021-9-3 14:46 编辑
赵从文芜湖123 发表于 2021-9-3 14:32
可是我感觉我想的是有几个字,在s中,才打印出来。
因为我在核对名单,有些名字,名单中没有,我需要一 ...
s = ['李无珠','李有珠','红猪']
x = input('输入名字的一部分')
for i in s:
for j in x:
if j in i:
print(i)
break
s = '李晓明城'
ls1 =
while True:
simi = input('请输入名字的一部分:')
for i in ls1:#ls1是姓名组成的列表
if set(simi) <= set(i):
print(i)
names = ['17','18','19','20']
ls = []
ls1 = []
for name in names:
fi = open(name + '级学生汇总.csv','r')
for line in fi:
line = line.replace('\n','')
ls.append(line.split(','))#把csv转化成列表
for i in ls:
ls1.append(i)#所含全部的学生姓名.
while True:
ls2 = []
flag = False
simi = input('请输入名字的一部分:')
for i in ls1:
n = 0
for k in simi:
if k in i :
n = n + 1
if n == len(simi):
ls2.append(i)
if len(ls2) == 0:
print('没有找到相似的名字.')
if len(ls2) != 0:
print('相似的名字为{}'.format(ls2)) 费了老鼻子劲了 赵从文芜湖123 发表于 2021-9-3 15:21
names = ['17','18','19','20']
ls = []
ls1 = []
这是我自己弄得,我感觉比较好的解决了这个问题。 可以考虑一下使用正则表达式
import re
re.match(pattern, string)# pattern是匹配的正则表达式,string是要匹配的字符串 洛阳城 发表于 2021-9-3 15:23
可以考虑一下使用正则表达式
没学过,哈哈哈 本帖最后由 傻眼貓咪 于 2021-9-3 23:32 编辑
Python 簡單就是美,為何複雜化呢?2行代碼{:10_249:}{:10_249:}
s = '李晓明城'
if all(): print(s) 傻眼貓咪 发表于 2021-9-3 23:31
2行代碼
这是哪方面?因为我是初学的,不大懂。 本帖最后由 傻眼貓咪 于 2021-9-8 16:21 编辑
赵从文芜湖123 发表于 2021-9-8 14:51
这是哪方面?因为我是初学的,不大懂。
這是有關判斷符與布林值運用方法(in,all(),bool())
# bool() 返回布林值
print(bool(1 == 3)) # False
# in 如字面上意思,判斷元素是否在數組裡,列表裡或字符串裡等等
arr =
print(3 in arr) # True
# all() 判斷數組裡/列表裡全部元素是否為 真(True),否則返回 假(False)
res =
print(all(res)) # False
页:
[1]