Python语言基础与应用-北京大学-陈斌-P29-28-计算和控制流:控制流:上机:基本计算程序-给定字符串s和数字n,打印把字符串s向右移动n位的新字符串-上机代码
上机代码:
# 输入一个字符串
user_str = input("请输入一个字符串:")
# 计算用户输入字符串的长度
user_str_len = len(user_str)
# 用户输入移动位数user_number,并检测是否越界
user_number = int(input("请输入需要移动的位数:"))
while user_number > user_str_len:
print("\n您的输入有误,请重新输入。")
user_number = int(input("请输入需要移动的位数:"))
"""
以下3行是测试区域,可以不写。
print("用户输入的字符串user_str:",user_str)
print("用户输入的字符串长度user_str_len:",user_str_len)
print("用户需要移动的位数user_number:",user_number)
"""
i = -user_number # i 当作 user_str 的下标
j = 0 # j 当作 result_list 的下标
result_list = []
while i != 0:
result_list.append(user_str[i])
j += 1
i += 1
while j < user_str_len:
result_list.append(user_str[i])
j += 1
i += 1
"""
以下2行是测试区域,可以不写。
print("result_list")
print(result_list)
"""
# 把列表转换为字符串
result_str = "".join(result_list)
print(result_str)
print(type(result_str))
结果:
>>> %Run move.py
请输入一个字符串:abcd
请输入需要移动的位数:1
dabc
<class 'str'>
>>>
>>> %Run move.py
请输入一个字符串:mnbol
请输入需要移动的位数:2
olmnb
<class 'str'>
>>>