Python satrdan xatlarni olib tashlash

Bu uy vazifasi. Men faqat bir dumaloqqa muhtojman.

Men ma'lum bir raqamdan tashqarida mag'lubiyat harflarini olib tashlash uchun loop yaratishga harakat qilaman.

Misol:

Enter Your String: David
Enter Your Amount: 4
Returns: Davi

Hozirgacha qilganman:

word = raw_input("Enter your string:")
amount = raw_input("Enter your amount:")
word_length = len(word)

if word_length > amount:
  for i in range(word_length):
    if s[i] > amount:

Va bu men uchun juda ko'p narsadir. word_length dan katta pozitsiyalarda joylashgan harflarni o'chirish uchun qaysi sintaksimdan foydalanayotganimdan juda amin emasman.

0
Ushbu tahrir qilish uchun bir döngüyü foydalanish kerak: Yaxshi, aslida juda aniq emas. Men ro'yxatlar va ularning pozitsiyalari haqida bilib oldim, shuning uchun men ham buni qo'llay olaman deb o'ylayman. (U USE datchiklariga bildirilmagan)
qo'shib qo'ydi muallif HighAllegiant, manba
Biror ishni bajarish uchun bir ipni kesish yoki bir operatsiyani bajarishingiz mumkinmi? Agar sizda loop kerak bo'lmasa, qatorni kesishdan foydalanishingiz mumkin.
qo'shib qo'ydi muallif r_ahlskog, manba
Ma'lumki, uy vazifasi til xususiyatlarini ishlatmaslik uchun kulgili bo'lishga moyil.
qo'shib qo'ydi muallif r_ahlskog, manba

6 javoblar

Pythondagi mag'lubiyat o'zgaruvchan - bu o'zgarmaydi va harflar o'chirilmaydi. Lekin mag'lubiyatga asoslangan yangi mag'lubiyatga moslamalarni yaratishingiz mumkin. Buning usullaridan biri dilimlash .

Sizga kerakli ma'lumotlarni topmaguncha, rasmiy Python o'quv qo'llanmasining bog'langan qismini o'qing. :)

Edit: If you need to use a loop, as suggested in your comment, another technique is also possible:

  1. Bo'sh ro'yxat yarating.

  2. oralig'i (miqdori) indekslari bo'ylab harakat qiling va joriy indeksga mos keladigan ro'yxatni ro'yxatga qo'shing.

  3. "

Iterim ro'yxatining maqsadi ro'yxatning o'zgartirilishi, avval esa aytilganidek, string o'zgarmasdir.

5
qo'shib qo'ydi

Buni loopda qilish kerakmi? Aks holda, mag'lubiyatni kesish harakat qilib ko'ring:

word = raw_input("Enter your string: ")
amount = int(raw_input("Enter your amount: "))

s = word[0:amount]
3
qo'shib qo'ydi

Hech loops kerak emas!

word = raw_input("Enter your string:")
amount = int(raw_input("Enter your amount:"))

word = word[:amount]
print word

Birinchi qadam sizning qadriyatlaringizni o'qib, miqdori aniq raqamga o'tkazib berishdir. Shuningdek, satrlar belgilarning ro'yxati bo'lib, ular sizdan pastki ro'yxatlarni olishingiz mumkin. Pythonda [x: y] yozuvi, ro'yxatdagi [x, y] intervalda bir pastki ro'yxatni oladi. Agar siz x ( [: y] ) ni taqdim qilmasangiz, interval [0, y] bo'ladi; agar siz y ( [x:] ) ni keltirmasangiz: [x, len (theStr)); va agar siz ( [:] ) ni bermasangiz, asl nusxasini olasiz!

Bonus Fun Facts:

[x: y] operatori qator indeks operatorining kengaytmasi bo'lib, [x] . Ko'p tillarda, [x] kodini chaqirish x da sizga elementni beradi. Ammo, Pythonda, u ko'proq harakat kabi harakat qila oladi. Masalan, ro'yxat [-1] sizga ro'yxatdagi oxirgi elementni beradi.

[x: y: z] operatori ham mavjud, bu erda z - bosim davomida ishlatiladigan qadam oralig'i. Ushbu operator uchun foydali holatlar qatorini indekslar ( list [:: 2] ) ga olish va ro'yxatni qaytarish ( list [:: - 1] ).

2
qo'shib qo'ydi

Dilimdan yordam olishingiz mumkin

word = raw_input("Enter your string:")
amount = raw_input("Enter your amount:")
word=word[:int(amount)]   #slicing the rest of unwanted characters
print word
0
qo'shib qo'ydi

Sizning ikkita yondashuvingiz bor deb o'ylayman

  1. Chegarangizga kirib bo'lmaguncha, eski matnlardan birini birma-bir qo'shib yangi mag'lubiyatni yarating.
  2. Chegarangizga etib kelmaguningizcha [>:] o'zingizning til qismini [: -1] foydalanib eski parolni yozib qo'ying
0
qo'shib qo'ydi

Pythondagi mag'lubiyatdan belgilarni olib tashlash qiyin. Ushbu muammoga yondoshishning eng yaxshi usuli, boshqalar taklif qilganidek, tilim bilan bo'lishi mumkin yoki siz kerakli belgilarni eski biridan olib tashlash o'rniga yangi satrda to'plash orqali loopdan foydalanish kerak bo'lsa, ya'ni,

s = raw_input()
n = int(raw_input())
new_s = ""
for i in range(n):
    new_s = new_s + s[i]
0
qo'shib qo'ydi
Python
Python
372 ishtirokchilar

Bu guruh python dasturlash tilini muhokama qilish uchun. Iltimos, o'zingizni hurmat qiling va faqat dasturlash bo'yicha yozing. Botlar mavzusini @botlarhaqida guruhida muhokama qling! FAQ: @PyFAQ Offtopic: @python_uz_offtopic

Python offtopic group !
Python offtopic group !
150 ishtirokchilar

@python_uz gruppasining offtop gruppasi. offtop bo'lsa ham reklama mumkin emas ) Boshqa dasturlash tiliga oid gruppalar @languages_programming