เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เลื่อนตำแหน่งอักขระในสตริง

ในแบบฝึกหัดนี้ จะสร้าง 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)
แก้ไขและรันโค้ด