疑问
---恢复内容开始---
1. 虽说dict里的setdefault方法会添加键值对
但是以下的情况如何解释:
dic1 = {"name":"zhang","age":20,"sex":"male"}
dic1.setdefault("asd") print(dic1) #得到空值 dic1.setdefault("asd",123) print(dic1)
{'name': 'zhang', 'age': 20, 'sex': 'male', 'asd': None} {'name': 'zhang', 'age': 20, 'sex': 'male', 'asd': None}
这两次都产生了None;为什么不会覆盖?
但是,分着的又不同:
print(dic1) dic1.setdefault("asd",123) print(dic1)
{'name': 'zhang', 'age': 20, 'sex': 'male'} {'name': 'zhang', 'age': 20, 'sex': 'male', 'asd': 123}
这又没有了,这是为什么
2.关于C++的putchar();
虽然这种方法我感到很垃圾,但是我还是想知道咋回事:
char a = 'f\n'; putchar(a);
请按任意键继续. . .
但是如果去掉\n的话又可以了
char a = 'f'; putchar(a);
f请按任意键继续. . .
我觉得有可能是char只容纳一个字符的问题,
但是我想换行,那怎么办?
//我想通过printf()改进一下,看看能不能进行分行,但是又出现了其他问题
char c= 'f'; printf("%c\n",putchar(c));
ff 请按任意键继续. . .
妈的出现了俩f
3. 关于python中代码对调的问题;
如果k.isalnum() == True 与k.isalpha() == True正向的话
while 1: i = input("按下任意键开始,输入'exit'退出") if i == 'exit': break a = [] while 1: j = input("请输入任意字符串") for k in j: if k.isalpha()==True: pass elif k.isalnum() == True: a.append(int(k)) print("整数的个数是%d",len(a)) break
按下任意键开始,输入'exit'退出asd 请输入任意字符串asd1212 整数的个数是%d 4 按下任意键开始,输入'exit'退出
但是如果把k.isalpha()和k.isalnum对调的话就会报错
while 1: i = input("按下任意键开始,输入'exit'退出") if i == 'exit': break a = [] while 1: j = input("请输入任意字符串") for k in j: if k.isalnum()==True: a.append(int(k)) elif k.isalpha() == True: pass print("整数的个数是%d",len(a)) break
按下任意键开始,输入'exit'退出asd 请输入任意字符串as12 Traceback (most recent call last): File "C:/Users/admin/PycharmProjects/untitled1/dict嵌套及升级.py", line 72, in <module> a.append(int(k)) ValueError: invalid literal for int() with base 10: 'a'
4.关于input()中字符的判断失效问题:
k = input("是否退出?Q/q")
if k == "Q" or 'q':
print("谢谢使用") break
是否退出?Q/q 谢谢使用
是否退出?Q/q1 谢谢使用
我无论输啥都会直接运行到最后,这个条件判断就像失效了一样