如何运用循环写
求助啊,, while True:str1=input('输入小写字母:')
if 'a'<=str1<='z':
print(f'{str1}的大写字母是:{str1.upper()}')
else:
print(f'{str1}它不是一个小写字母')
本帖最后由 风过无痕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");
}
} 为什么要使用 fflush(stdin) 函数清除键盘缓冲区呢? 乐乐学编程 发表于 2020-10-18 07:37
为什么要使用 fflush(stdin) 函数清除键盘缓冲区呢?
因为他的程序要循环使用,若不清除的话,下一次有可能使用到残留在键盘缓冲区里字符。昨晚我在调试程序时就出现了,输入 iuy 时,当次完善地输出了大写字母 I ,可紧接着输出了大写字母 U,于是,就不得不考虑在ch读到数据后,要清除掉本次的输入 for i in "可迭代对象":
print(i) 风过无痕1989 发表于 2020-10-18 10:25
因为他的程序要循环使用,若不清除的话,下一次有可能使用到残留在键盘缓冲区里字符。昨晚我在调试程序时 ...
明白了,谢谢!
页:
[1]