davis7713 发表于 2017-4-2 09:23:36

如何让用户输入的名字不区分大小写


小鱼老师你好,

1. 我想请教一下如何在下列的程序基础上增加一段代码实现让用户输入的名字不区分大小写,比如输入了"dg", "Dg","dG", 都能够确认输入正确?
2. 如果输入不正确,如何增加循环让用户继续输入呢?
====================================
print ('Guess who am i ?')
temp = input ('Pls type my name : ')
if temp == ("DG"):
    print ("You have just typed a name = " + temp)
    print ('you are right !')
else:
    print ('pls try again !')
print('welcome to play again !')
================================

Davis

新手·ing 发表于 2017-4-2 09:45:38

while 1:
    print ('Guess who am i ?')
    temp = input ('Pls type my name : ')
    if temp == ("DG") or temp == ('dg') or temp == ('Dg') or temp == ('dG'):
      print ("You have just typed a name = " + temp)
      print ('you are right !')
      break
    else:
      print ('pls try again !')
    print('welcome to play again !')

pl_014 发表于 2017-4-2 10:44:02

高级点的字符串比较函数可以设置是否大小写敏感。
也可以把输入的字符串与待比较的字符串(用户名)全部转为大写或小写进行比较。

davis7713 发表于 2017-4-2 11:28:50

谢谢老师
如何用代码实现下列方法呢?

高级点的字符串比较函数可以设置是否大小写敏感。
也可以把输入的字符串与待比较的字符串(用户名)全部转为大写或小写进行比较。

pl_014 发表于 2017-4-2 11:38:00

davis7713 发表于 2017-4-2 11:28
谢谢老师
如何用代码实现下列方法呢?



我不是老师

第一种方法需要找库,不使用运算符而是使用函数进行比较。
第二种方法或者对字符串的每个字符进行迭代,迭代时,如果是ascii码的话,先判断单个字符是否是大写或小写字符,然后ch-'a'+'A'可以将小写字符转换为大写字符,ch-'A'+'a'可以将大写字符转换为小写字符,最后将转换后的字符拼成一个新的字符串。
或者找转换整个字符串的函数。


到python官方,找python字符串相关的函数与工具。

gopythoner 发表于 2017-4-2 12:19:14

#循环开始
while True:
    print ('Guess who am i ?')
    # --------加了个方法,这个方法是把所有大写变为小写
    temp = input('Pls type my name : ').lower()
    # --------这个地方直接把判断条件变成小写就行了,因为上面已经把你的输入变成小写了
    if temp == ("dg"):
      print ("You have just typed a name = " + temp)
      print ('you are right !')
      #循环结束的条件满足就退出
      break
    else:
      print ('pls try again !')
      print('welcome to play again !')

试一下
Guess who am i ?
Pls type my name : test
pls try again !
welcome to play again !
Guess who am i ?
Pls type my name : DG
You have just typed a name = dg
you are right !

Process finished with exit code 0

davis7713 发表于 2017-4-2 20:06:04

谢谢你,我是初学的,你的水平绝对是我的老师了,周末愉快!!!

星若有泪 发表于 2017-4-6 16:39:57

我添加了一个识别输入格式的功能print ('Guess who am i ?')
temp = input ('Pls type my name : ')
while not temp.isalpha():
    print("输入格式有误,请重新输入:")
    temp = input("")                     #若输入的不是字母 需要重新输入(英文不好,见谅)
while True:
    if temp == ("DG") or temp == ("Dg") or temp == ("dg") or temp == ("dG"):
      print ("You have just typed a name = " + temp)
      print ('you are right !')
      break
    else:
      print ('pls try again :', end = " ")
      temp = input("")
print('welcome to play again !')
页: [1]
查看完整版本: 如何让用户输入的名字不区分大小写