我是第一名 发表于 2020-10-17 23:19:46

如何运用循环写

求助啊,,

疾风怪盗 发表于 2020-10-18 01:15:27

while True:
    str1=input('输入小写字母:')
    if 'a'<=str1<='z':
      print(f'{str1}的大写字母是:{str1.upper()}')
    else:
      print(f'{str1}它不是一个小写字母')

风过无痕1989 发表于 2020-10-18 03:05:27

本帖最后由 风过无痕1989 于 2020-10-18 03:07 编辑

C语言答案在此

// 输入一个字符,判断其是否是小写字母。如果是小写字母,则输出其大写;否则输出“它不是小写字母"。
// 注意:
// 1、要能循环输入,即解决回车字符的影响。
// 2、要能解决输入多个字符的情况。如输入"iuy"3个字符后再回车,只对输入的"i"(即第一个字符)进行判断,忽略后面的"uy"。

#include<stdio.h>
void main()
{
      char ch,cha;
      char b = "";
      while(1)
      {
            printf("请输入一个字符,");
            scanf("%c",&ch);
          getchar();                                     // 接收回车键
            b = ch;                                    // 将接收到的字符存入字符数组
          ch = b;                                     // 将数组的第一个元素赋给变量 ch;
            fflush(stdin);                                 // 清除键盘缓冲区
          if('a' <= ch && ch <= 'z')
          {
                        cha = ch - 32;
          }
          else
          {
                        printf("%c它不是一个小写字母\n",ch);
                        printf("\n");
                        continue;
          }
          printf("%c的大写字母是:%c\n",ch,cha);
          printf("\n");
      }
}

乐乐学编程 发表于 2020-10-18 07:37:11

为什么要使用 fflush(stdin) 函数清除键盘缓冲区呢?

风过无痕1989 发表于 2020-10-18 10:25:58

乐乐学编程 发表于 2020-10-18 07:37
为什么要使用 fflush(stdin) 函数清除键盘缓冲区呢?

因为他的程序要循环使用,若不清除的话,下一次有可能使用到残留在键盘缓冲区里字符。昨晚我在调试程序时就出现了,输入 iuy 时,当次完善地输出了大写字母 I ,可紧接着输出了大写字母 U,于是,就不得不考虑在ch读到数据后,要清除掉本次的输入

嘉岳呀 发表于 2020-10-18 18:33:06

for i in "可迭代对象":
    print(i)

乐乐学编程 发表于 2020-10-19 23:22:23

风过无痕1989 发表于 2020-10-18 10:25
因为他的程序要循环使用,若不清除的话,下一次有可能使用到残留在键盘缓冲区里字符。昨晚我在调试程序时 ...

明白了,谢谢!
页: [1]
查看完整版本: 如何运用循环写