เลื่อนตำแหน่งอักขระในสตริง
ในแบบฝึกหัดนี้ จะสร้าง generator ที่รับสตริงเป็นอินพุต แล้วสร้างลำดับอักขระที่ถูกเลื่อนตำแหน่งไปตามจำนวนที่กำหนดใน shift ตัวอย่างเช่น สตริง 'sushi' จะให้ลำดับ 'h', 'i', 's', 'u', 's' เมื่อเลื่อนไปทางขวา 2 ตำแหน่ง (shift = 2) และเมื่อเลื่อนไปทางซ้าย 2 ตำแหน่ง (shift = -2) จะได้ลำดับ 's', 'h', 'i', 's', 'u'
เคล็ดลับ: ใช้ตัวดำเนินการ % เพื่อวนซ้ำผ่านดัชนีที่ถูกต้อง การนำไปใช้กับตัวเลขบวกหรือลบจะให้เศษที่ไม่ติดลบ ซึ่งเป็นประโยชน์เมื่อต้องเลื่อนดัชนี
ตัวอย่างเช่น พิจารณาตัวแปร string = 'python' ซึ่งเก็บสตริงที่มี 6 อักขระ:
2 % 6 = 2(ดังนั้นstring[2 % 6]คือt)0 % 6 = 0(ดังนั้นstring[0 % 6]คือp)-2 % 6 = 4(ดังนั้นstring[-2 % 6]คือo)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ฝึกทำโจทย์สัมภาษณ์งานเขียนโค้ดด้วย Python
คำแนะนำการฝึกหัด
- วนลูปผ่านดัชนีของสตริงโดยใช้ตัวแปร
len_stringที่เตรียมไว้ให้ - หาว่าอักขระใดจะสอดคล้องกับดัชนีนั้นเมื่อทำการเลื่อนตำแหน่ง
- สร้าง generator ที่เลื่อนสตริง
'DataCamp'ไปทางขวา 3 ตำแหน่ง (เช่น ได้ผลลัพธ์เป็น"ampDataC") - สร้างสตริงใหม่โดยใช้ generator แล้วแสดงผลออกมา
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def shift_string(string, shift):
len_string = len(string)
# Loop over the indices of a string
for idx in ____:
# Find which character will correspond to the index.
____ ____[____]
# Create a generator
gen = ____
# Create a new string using the generator and print it out
string_shifted = ''.____
print(string_shifted)