পাইথনে স্ট্রিং এবং পূর্ণসংখ্যার প্রতিযোগিতা


136

অজগরে বলো তোমার আছে

s = "string"
i = 0
print s+i

আপনি ত্রুটি দেয় তাই আপনি লিখুন

print s+str(i) 

ত্রুটি না পেতে।

আমি মনে করি এটি আন্ত এবং স্ট্রিং উপসংহার পরিচালনা করার জন্য বেশ আনাড়ি উপায় um এমনকি জাভা এই স্ট্র্যাটেড কনটেস্টেশন করার জন্য স্ট্রিংয়ের স্পষ্ট কাস্টিংয়ের প্রয়োজন হয় না। পাইথনে সুস্পষ্ট কাস্টিং ব্যতীত এই ধরণের কনটেন্টেশন করার আরও ভাল কোনও উপায় আছে কি?


8
এর কারণ পাইথন হ'ল স্ট্রং টাইপড ( en.wikedia.org/wiki/Strong_typing ) ভাষা (আরও বোঝার জন্য গুগলে কিছু :))।
mouad

3
এটি অস্পষ্টতার দিকে পরিচালিত করবে। এর ফলাফল কী হবে "1" + 1, 2বা "11"কেন হবে?
বুডি

1
বাডি আমি নিশ্চিত আপনি কী ভাবছেন তা নিশ্চিত নন তবে অনুগ্রহ করে অনুমান করবেন না। আমার সমস্যাটি ছিল 2 টি পৃথক বস্তুর প্রকারের সাথে সংযুক্ত করা এবং আমি সমাধানটি পেয়েছি। অজগরটিতে আপনি কতটা প্রোগ্রাম করেছেন তা আমি জানি না তবে ত্রুটি পেতে কেবল দুটি স্ট্রিংকেই যুক্ত করার চেষ্টা করেছেন যখন এর মধ্যে একটি নন টাইপ নয়? আপনি সুস্পষ্ট চেক করতে পারেন তবে তা কেবল কোডের অতিরিক্ত বিট। আপনার যখন ত্রুটিগুলি লগ করার দরকার হয় তখন এই ধরণের জিনিসটির প্রয়োজন হয়।
স্পেশালস্কোপ

2
ঠিক s+str(i), এবং আপনি সঠিক!

উত্তর:


174

আধুনিক স্ট্রিং বিন্যাস:

"{} and {}".format("string", 1)

5
শুধু উত্তরোত্তর জন্য, যেহেতু বিষয়গুলি অতীতে পরিবর্তিত হয়েছে এবং ভবিষ্যতে পরিবর্তিত হতে পারে: এটি কোন সংস্করণ হিসাবে "আধুনিক"?
jvriesem


87

স্ট্রিং বিন্যাস নেই:

>> print 'Foo',0
Foo 0

2
এটি মুদ্রণের সাথে ভাল কাজ করবে তবে স্ট্রিং হিসাবে কোনও ভেরিয়েবলের জন্য বরাদ্দ করা যাবে না। এটি সেট অবজেক্ট দেয়।
স্পেশালস্কোপ

2
আপনি ভি 3 print() ফাংশনটি ব্যবহার না করে এবং এর কয়েকটি পরামিতি সেট না করে এটি দুটি আইটেমের মধ্যে একটি অতিরিক্ত ফাঁকাতেও আটকে থাকে ।
লেভন

34

স্ট্রিং ফর্ম্যাটিং, নতুন-স্টাইল .format()পদ্ধতিটি ব্যবহার করে (ডিফল্ট। ফর্ম্যাট () সরবরাহ করে):

 '{}{}'.format(s, i)

বা পুরানো, তবে "এখনও চারিদিকে আঁকড়ে",- %ফর্ম্যাটিং:

 '%s%d' %(s, i)

উপরের দুটি উদাহরণে দুটি আইটেম কনকেনটেটেডের মধ্যে স্থান নেই । যদি স্থানের প্রয়োজন হয় তবে এটি কেবল বিন্যাসের স্ট্রিংগুলিতে যুক্ত করা যেতে পারে।

এগুলি আইটেমগুলিকে কীভাবে সংযুক্ত করতে হয়, তাদের মধ্যে স্থান ইত্যাদি সম্পর্কে প্রচুর নিয়ন্ত্রণ এবং নমনীয়তা সরবরাহ করে ফর্ম্যাট নির্দিষ্টকরণের বিশদ সম্পর্কিত বিশদের জন্য এটি দেখুন


14

পাইথন একটি আকর্ষণীয় ভাষা যেখানে সাধারণত প্রদত্ত কোনও কাজ সম্পাদনের জন্য একটি (বা দুটি) "সুস্পষ্ট" উপায় থাকলেও নমনীয়তা এখনও বিদ্যমান।

s = "string"
i = 0

print (s + repr(i))

উপরের কোড স্নিপেট পাইথন 3 সিনট্যাক্সে লিখিত হয়েছে তবে প্রিন্টের পরে প্রথম বন্ধনীগুলি সর্বদা 3 3 সংস্করণ বাধ্যতামূলক না করা অবধি অনুমতিপ্রাপ্ত ছিল (alচ্ছিক)।

আশাকরি এটা সাহায্য করবে.

বলেছেন Caitlin


5

বিন্যাস () পদ্ধতিটি স্ট্রিং এবং পূর্ণসংখ্যাকে একত্রিত করতে ব্যবহার করা যেতে পারে

print(s+"{}".format(i))


0

পাইথন ৩.6 এবং আরও নতুনতে আপনি এটির মতো বিন্যাস করতে পারেন:

new_string = f'{s} {i}'
print(new_string)

বা শুধু:

print(f'{s} {i}')
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.