4: Repetition

4-5: for c in string

** ถ้าใช้งานบนมือถือหรือ tablet แนะนำให้ใช้ Chrome หรือ Safari เท่านั้น **

แบบฝึกหัด 4-5 ข้อที่ 1

เขียนโปรแกรมตามผังงานข้าง ๆ นี้ (ลองทำความเข้าใจด้วยว่าทำอะไร ?)

___inp___ = ["abc012def789"] def input(): return ___inp___[0] t = input() s = 0 for c in t: if "0" <= c <= "9": s += 1 print(s) obj = Ex().check_for_loop(missing_msg="ต้องใช้วงวน for ตามผังงาน") obj.check_iter().has_equal_value( incorrect_msg = "ควรใช้ for c in t") for v in ["A", "ABCD", "9876543210", "A9B0C8D8E7"]: precode = "___inp___[0] ='"+v+"'" Ex().has_equal_output(pre_code=precode, incorrect_msg = "ผิด เช่น กรณี t = " + v)
แบบฝึกหัด 4-5 ข้อที่ 2

เขียนโปรแกรมตามผังงานข้าง ๆ นี้ (ลองทำความเข้าใจด้วยว่าทำอะไร ?)

___inp___ = ["P(ython), J(ava)."] def input(): return ___inp___[0] t = input() s = "" for c in t: if c in ".,()": s += " " else: s += c print(s) obj = Ex().check_for_loop(missing_msg="ต้องใช้วงวน for ตามผังงาน") obj.check_iter().has_equal_value( incorrect_msg = "ควรใช้ for c in t") for v in ["a.b,c(d)e", "abcde", "a...c,,,d((()))e"]: precode = "___inp___[0] ='"+v+"'" Ex().has_equal_output(pre_code=precode, incorrect_msg = "ผิด เช่น กรณี t = " + v)
แบบฝึกหัด 4-5 ข้อที่ 3

อ่านสตริงจาก input หนึ่งบรรทัด จากนั้นแสดงเฉพาะตัวอักษรอังกฤษในสตริงที่อ่านมาจากซ้ายไปขวา บรรทัดละตัว เช่น อ่านมาเป็น "A-B-123 &" จะแสดงแค่ A กับ B (บรรทัดละตัว)

___inp___ = ["01abcdefghijklmnopqrstuvwxy1z2AB-C=D-E-F-G-H-I-J-K-L:M:N:O:PQRSTUVWXYZ89"] def input(): return ___inp___[0] t = input() s = "" for c in t: if "a" <= c <= "z" or "A" <= c <= "Z": print(c) print(s) obj = Ex().check_for_loop(missing_msg="ควรฝึกใช้ for") obj.check_iter().has_equal_value( incorrect_msg = "ควรใช้ for c in string") Ex().has_equal_output(incorrect_msg = "ยังแสดงไม่ตรงตามโจทย์")
แบบฝึกหัด 4-5 ข้อที่ 4

อ่านสตริงจาก input หนึ่งบรรทัด จากนั้นแสดงเฉพาะตัวอักขระในสตริงที่อยู่ที่ index คี่ (ตัวซ้ายสุดคือ index 0) บรรทัดละตัว เช่น อ่านมาเป็น "*ABCDE*" จะแสดงแค่ A, C กับ E (บรรทัดละตัว)

___inp___ = ["0123456789"] def input(): return ___inp___[0] t = input() s = "" for c in t[1::2]: print(c) print(s) obj = Ex().check_for_loop(missing_msg="ควรฝึกใช้ for") obj.check_iter().has_equal_value( incorrect_msg = "ควรใช้ for c in string slice เฉพาะ index คู่") Ex().has_equal_output(incorrect_msg = "ยังแสดงไม่ตรงตามโจทย์")
แบบฝึกหัด 4-5 ข้อที่ 5

อ่านสตริงหนึ่งบรรทัดจาก input แล้วแสดงตัวอักษรในสตริงที่อ่านมาจากขวามาซ้าย บรรทัดละตัว

___inp___ = ["ABCDabcd"] def input(): return ___inp___[0] t = input() for c in t[::-1]: print(c) obj = Ex().check_for_loop(missing_msg="ควรฝึกใช้ for") obj.check_iter().has_equal_value( incorrect_msg = "ควรใช้ for c in string slice ที่กลับลำดับ") Ex().has_equal_output(incorrect_msg = "ยังแสดงไม่ถูกต้อง อ่านโจทย์ดี ๆ")
หวังว่ายังไม่ลืมนะว่า t[::-1] คือสตริงที่กลับลำดับกับสตริง t