后面会补全,暂时只有部分,答案是自己写的,不是标准答案,仅供参考
习题三
1、 .获得用户输入的一个整数,输出该整数百位及以上的数字
s=int(input("请输入大于或等于100的整数:"))
if (s>100):
print(s//100)
else:
print("请重新输入大于或等于100的整数:")
2、 获得用户输入的一个字符串,将字符串按照空格分割,然后逐行打印出来
s=input("输入带有空格的字符串:")
m=s.split()
for i in range(len(m)):
print(m[i])
可能会遇到的问题:
for循环中的递增迭代: for index in range(len(numbers)): 对于数组的索引迭代,需要用到len()求数组的长度,用range进行索引迭代。
for i in len(index):在这句循环的时候,本来我的意思是i 递增到index 循环
但是编译报错:TypeError: 'int' object is not iterable:
Traceback (most recent call last):
File "BalancePoint.py", line 15, in <module>
for i in index:
TypeError: 'int' object is not iterable
原因:不能直接用int进行迭代,而必须加个range.
3、程序读入一个表示星期几的数字(1-7),输出对应的星期字符串和名称。例如:输入3,返回“星期三”
s=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
i=input("今天是:")
print(s[int(i)-1])
4、 设n是一任意自然数,如果n的各位数字反向排列所得自然数与n相等,则n被称为回文数。从键盘输入一个5位数字,请编写程序判断这个数字是不是回文数。
n=input("输入五位自然数:")'''input返回的是字符串类型,方便下面用连接符运算'''
m=n[4]+n[3]+n[2]+n[1]+n[0]
if eval(n)==eval(m): '''不建议用int()或者float()等函数转换,可能会导致数据丢失'''
print(n+"是回文数")
else:
print(n+"不是回文数")
5、 输入一个十进制整数,分别输出其二进制、八进制、十六进制字符串
n=int(input("输入一个十进制整数:"))
b="{:b}".format(n)
o="{:o}".format(n)
x="{:x}".format(n)
print("二进制:"+b)
print("八进制:"+o)
print("十六进制:"+x)