print输出带空格问题

今天在用print(a,b,c)同时输出变量a、b、c的时候发现输出结果默认在变量间加了空格:

a b c

经查找资料后发现该方法没法去掉空格,于是改用print(a+b+c)即可。注意当a、b、c为数字时应先str()方法转化。

大小写转化问题 

请编写程序,首先统计输入字符串中的大写字母,小写字母的个数, 然后将输入的字符串中,大写字母转换为小写字母,小写字母转换为大写字母。 程序输出两行内容: 第一行为大写字母小写字母的个数(空格分隔); 第二行为输入字符串大小写互换后的结果。

  初次尝试使用replace方法将大小写直接在原字符串中进行替换,但发现一直过不了。后来才发现replace会将字符串中所有相同字符一起替换了,这样就导致了多次替换最终抵消成没有替换的效果。如:LjlJ变换后还是LjlJ.

upper=0
lower=0
c=input()
for i in c:
    if 65<=ord(i)<=90:
        upper+=1
        c=c.replace(i,i.lower())
    elif 97<=ord(i)<=122:
        lower+=1
        c=c.replace(i,i.upper())
print(upper,lower)
print(c)

于是采用第二种方法,直接构造新的列表将转换后的字符逐个进入,最后再用join方法合并成字符串。改进后:

upper=0
lower=0
c=input()
c1=[]
for i in c:
    if 65<=ord(i)<=90:
        upper+=1
        i=i.lower()
    elif 97<=ord(i)<=122:
        lower+=1
        i=i.upper()
    c1.append(i)
c1=''.join(c1)
print(upper,lower)
print(c1)

str.index(' ')查找某字符第一次出现的索引

str.count('' )统计某字符出现次数