|
发表于 2021-12-1 23:29:51
|
显示全部楼层
本帖最后由 干虾皮 于 2021-12-3 00:57 编辑
我也是个菜鸟,刚开始学习,刚好学习玩了不起的分支和循环,试着解释您的程序,不一定正确,如果有错误请有经验的朋友更正
'''该程序会打印a到b数值的字符串形式,'''
s=input().split() #多输入函数#
a=int(s[0]) #输入整数1,该整数是列表S的第0个元素#
b=int(s[1]) #输入整数2,该整数是列表S的第1个元素#
for i in range(a,b+1): #循环语句,起始值是S的0个元素或者说是输入的整数1,终止值是S列表第1个元素或者说是输入的整数2,这就要求a<=b,否则循环无法执行,range#
if i==a: #如果a<=b执行了循环语句,该if语句第一次循环肯定为真#
print("{:d}".format(i),end="") #print打印函数,无需解释,解释下打印函数中的参数“{:d}”.format(i),就用i的内容替换{:d},:d格式化整数,说白了就是将整数“i”的值的转化为字符串,end参数不做解释了#
else: #第一次循环,else内容不执行,第二次开始才执行,一直执行到i==b,不是i==b+1,因为range包含起始值等于终止值-1#
print("{:d}".format(i),end="") #打印字符“i”的值的字符串,i==a+1>>i==b#
今天又学习了一张刚开始错误认为:d是普通字符,现在刚理解是格式化整数的意思,但是个人感觉好像没有意义,当然在这句的完整表达应该是print("{0:d}".format(i),end="")
我把程序更改下可能会更好理解:
a,b=(input("请输入起始和终止值:").split())
a=int(a)
b=int(b)
for i in range(a,b+1):
if i==a:
print("{}".format(i),end="")
else:
print("{}".format(i),end="")
再考虑了一下for循环中的if else语句根本没用,因为第一次循环执行的是if,后面执行的是else,鉴于此再次修改程序,这样理解就没有任何难度了
a,b=(input("请输入起始和终止值:").split())
a=int(a)
b=int(b)
for i in range(a,b+1):
print("{}".format(i),end="")
今晚现学的input().split()和str.format,以我现在的水平我更愿意把程序写成
temp1=input("请输入起始值")
start=int(temp1)
temp2=input("请输入终止值")
stop=int(temp2)
for i in range(start,stop+1):
print(str(i),end="")
心血来潮,再次修改,这样看起来更像个程序的代码
while 1>0:
temp1=input("请输入起始值")
start=int(temp1)
temp2=input("请输入终止值")
stop=int(temp2)
if stop>=start:
for i in range(start,stop+1):
if i<stop:
print(str(i),end="")
else:
print(str(i),"\n")
else:
print("请检查输入,终止值应大于起始值") |
|