「HAtena」を含む日記 RSS

はてなキーワード: HAtenaとは

2021-07-02

初心者から中級者になるためのプログラミングのコツ

変数や構文などのプログラミングの基礎は覚えた人向けに、ソースコードを書くときのコツを紹介していきます。どれも今日から実践できるものばかりです。他のプログラマと差をつけることができる技術ですので、ぜひ意識するようにして下さい。良い子はまねしないで下さい。

変数名は短く

プログラムで使う変数名は可能な限り短くしましょう。

理想は、aやxなどの一文字です。ただし、これだけだと26文字しか使えないので、a1, a2, ...のように連番でグルーピングすると良いです。

また、変数宣言使用箇所が離れた場合に、変数の型がすぐに分かるように、たとえばint型であればi1, i2, ...、string型であればs1, s2, ...のように命名すると、読む人に親切で自分ミスしにくくなります

変数名を長くするのは、以下のデメリットがあるため、絶対にやめましょう。


なるべく関数を作らない

多くのプログラミング言語には、クラス関数といった機能がありますが、これらは基本的ライブラリ提供者などが使う想定の機能であり、一般プログラマが使うのは好ましくありません。したがって、クラス関数はなるべく使わないようにして下さい。

関数を作ると、以下のデメリットがあります

不要関数を作らないためのテクニックには、以下のようなものがあります

まず、関数引数に「フラグ」を渡し、関数内部で処理を切り替えれば、1つの関数複数の処理をすることができます

function f(i) {
  switch(i) {
    case 1:
      // i = 1のときの処理
      break;
    case 2:
      // i = 2のときの処理
      break;
    case 3:
      // i = 3のときの処理
      break;
    // ...
  }
}

この方法は、以下に述べる「変数寿命を伸ばす」効果もあります。つまり、この関数内で宣言された変数は、すべての処理で共通して使用することができます

クラス不要関数を作らないようにするには、「継承」を用います複数クラスで用いる関数定義したクラスを1つ作っておき、そのクラス継承すれば、新しいクラス関数定義する必要はありません。

理想的には、プログラム内のすべての関数を同一のクラス定義し、それを継承するべきです。そのようなクラスは俗に「神」と呼ばれ、その利便性からプログラマからはこの上なく尊ばれています

class God {
  f1() {
    // 関数1
  }
  
  f2() {
    // 関数2
  }
  // ...
}

class C1 extends God {
  // 何も書かなくても上の関数が使える!
}

class C2 extends God {
  // 何も書かなくても上の関数が使える!
}
// ...

変数寿命を長くする

変数宣言する場所によって、ソースコードのどの範囲から参照できるかが決まっています。この範囲が広いことを、「変数寿命が長い」と言います

たとえば、以下のコードのaは、関数定義の外側からは参照することができません。

function f() {
  var a = 1;
  return a;
}

一方、以下のコードのaは関数の内外どちらからでも参照することができます

var a = 1;

function f() {
  a = 2;
  return a;
}

変数寿命を長くするのは、プログラマの腕の見せ所です。

せっかく作った変数がすぐに死んでしまうのは、非常にもったいないです。ソースコードの表面には現れませんが、変数を作ったり捨てたりするのには、計算コストがかかります。したがって、寿命の短い変数を作りすぎてしまうと、プログラムが遅くなってしまます

また、変数寿命が長いということは、変数をたくさん作らなくても、1つの変数を色々なところで利用できるということであり、とても便利です。たとえば、上記の前者のコードでは、関数の外部からaの値を参照したくなっても、参照することができません。後者のように書いておけば、プログラムのどの箇所からでも、aの値を参照したり、更新することができます。したがって、変数寿命を長くするとプログラムを変更しやすくなります。つまり保守性が上がります

例外を潰す

例外とは、プログラムが予期しない処理をしようとした場合に、プログラムの実行を停止し、呼び出し元にエラーを通知する機能です。たとえば、「test.txt」というファイルを開こうとしても、そのファイル存在しない場合は、例外となります

例外が発生すると、プログラムが停止してしまうため、非常に困ります。したがって、プログラマ例外をきちんと処理しなければなりません。

ほとんどのプログラミング言語には、例外処理のための機構があります。たとえば、以下のような構文です。

try {
  // 例外が発生し得る処理
  // ex. ファイルを開く
}
catch (e) {
  // 例外が発生したときに、実行する処理
}

例外への対処は実はとても簡単です。是非ここで覚えて下さい。上記のような機構のある言語であれば、catch節の中身を何も書かなければ、例外が発生しても、何事もなくプログラム動作を続けます

try {
  // 例外が発生し得る処理
}
catch () {}

全ての例外を潰せば、決して不慮の動作で停止することのないプログラムを作ることができます。ですから例外が発生し得るコードは、積極的上記try-catch構文を用いて、例外を潰すようにしましょう。

2021-06-30

殺伐とした増田にアレが!!
          ____
        /´-―――-、\
      //  ,-―=ヽ、 \ \
      / /   (_ノ-t Y )-、 ヽ ヽ
     .l i   ノっ \ーi |  i |
     | |   く、   (_`し´ | |  家庭科でよく使うアレwwwwwwww
     .l i    i_/  Y   ./ /
      ヽヽ   /  /   / /
       \\_ ` ̄ ´   //
        フ ,_⌒)  (⌒´、く
       く く  ̄    ̄´> >
        ヽ ヽ     / /
         ヽ i´ ) ( `i /
         .ヽー´ `ー/
          |⊂二⊃|
          ヽ====ノ
           `i-/´
            V
.            ∧
          /   \
          \   /
.           ヽ /
            ∨
     ┏━━━┓┏┓     
     ┗┓┏┓┃┃┃     
       ┃┣┛┃┃┃  ┏┓
       ┃┣━┛┃┃┏┛ ┃
       ┃┃   ┃┗┛┏┛
       ┗┛   ┗━━┛ 

2021-06-22

20歳過ぎてアニメ見て喜んでるオタクや30過ぎてリアリスト気取りのネトウヨに、6歳でおしゃぶりくわえてるヤツを笑う資格なんかないよ。

ttps://b.hatena.ne.jp/entry/blog.livedoor.jp/dqnplus/archives/2008774.html

2021-06-21

Articles that describe how to study English are popular in Hatena Bookmark.

In spite of that, there are few articles written in English here.

That is why, I am writing this now and also highly recommend writing anonymous diary in English to everyone.

Let's write in English! Thanks!

anond:20210617075257

アルゴリズムはいらない」という人がいるのが信じられん

たとえばスレッド掲示板で、各レスに何回アンカーがついたか調べるのに、↓のどっちがいいのかとか考えないのか

int[] replyCount = new int[thread.Length];
for (int to = 0; to < thread.Length; to++) {
  for (int from = 0; from < thread.Length; from++) {
    if (thread[from].To.Contains(to)) {
      replyCount[to] += 1;
    }
  }
}
int[] replyCount = new int[thread.Length];
for (int from = 0; from < thread.Length; from++) {
  foreach (int to in thread[from].To) {
    replyCount[to] += 1;
  }
}

2021-06-19

自民与党になれるのは国民政治リテラシーが低いからだ!」とかいう立憲支持者

いや、俺は別に自民支持ではないから、その言説を殊更に否定しようとは思わないけどさ。

ただ、もしも仮に”国民全員が高い政治的リテラシーを持って適切な投票行動ができる社会”なんてモノが実現したとして、そうなったら立憲も票を剝がれる側だと思うけど、そこのところはどう考えているの?

現状、立憲に投票している人たちの中には「自民与党の座に居座っているのは嫌だけど野党のどこが良い政党なのか分からいから、とりあえず野党第一党で一番目立って自民批判している立憲に投票しよう」という馬鹿が少なくない数いるということは想像に難くない。

立憲はそういう馬鹿を煽って戦略的に取り込もうとしている節が見られるし、はてなで見られる立憲支持者も自民批判して間接的に立憲をageするだけで立憲自体の良い所を語ろうとしない奴や、もっとからさまに「今の問題ある与党を追い落とすために野党第一党に投票しよう」と言い出す奴がたくさんいる。

実際のところ立憲は、自民とはターゲティング対象が違うだけで、負けず劣らず馬鹿の取り込み戦略が上手な政党だよ。

から仮に、その手の戦略に乗せられて立憲へ投票しているような層が政治リテラシーを得てしまったら、立憲の集票能力がガクンと落ちることになる。

当たり前だが、国民政治リテラシーが上がった結果としてバンドワゴン効果現状維持層の取り込みという与党ボーナスがなくなるという仮定を立てるのならば、短絡的な与党アンチ層を取り込める野党第一党ボーナスもなくなるという想定でないと、フェアな見方とは言えないだろう。

結局、国民が本当に質の高い政党政治家を見る目を持つ世界が到来したとして、それで日の目を見るのは勢力的には弱小だけど地道にコツコツ政治を行っていたような人たちであって、間違っても既にだいぶボーナスを得て野党第一党に居座ることができている立憲ではないよ。

自民から多少の票が流れてくることくらいはあるかもしれなけど、それでも大局に影響を与えるほどでないと思う。

2021-06-18

はてなやめるので10000ブクマ見返した+ブクマカの名(迷)言まとめた(1)

たった10000ブクマ……? 嘘をついてないか……?

1万程度ではまだまだです

プロブクマカ怖

やめるにあたって増田記事書くこと<中略>お前がナンバーワンだ!

お前もナンバーワンだ!

途中に「しの(77.0kg)」さんの名前を見つけて悲しくなった…

このコメ見るまで有名な人だと知らんかった

やめると言いつつブクマついたら絶対見返しに来ると思う。

ブクマカとしてそりゃ当然

なんでブクマを全部消す必要あるの?ID消したくないから?非公開にするとかじゃだめなのか

そのうちIDも消すよ、せっかくなので振り返り的に見返してなんとなく消したくなったかブクマ消した。

なぜどこぞのニュースサイトのようにページを分割しまくるのか。

助けてワンページマン

こんなに細かく分ける必要はないのでは

もともと2万字ぐらいのひとまとめで作ってたけど何故か50行ぐらいを超えると増田投稿しても反映されなかったので泣きながら分割投稿した。増田バグなのか仕様なのか知らんけど誰か調べて

-----------------------------------------------------

Q.いつ辞めるの?

A.来月ぐらいにはアカウント消す予定。既にはてなのサービスデータ全部消しているので問題なし。

Q.移行するなら下書きしてた方が良くない?

A.インターネットの塵と化すので移行する準備は問題なし。一応txtに下書きはしてた。欲しいなら上げることは可能

Q.一言コメントほしい

A.めんどくさいので代わりにやってほしい

Q.やめるなら記法について書いといてほしい。枠とか線とか見やすいから参考にしたい

A.枠内はこんな感じ(大なり小なりが勝手lt;gt;になってるけど記号ね)

>>
ブコメ - id:
<a href="https://www.hatena.ne.jp/">ブコメページ</a> - <a>ページタイトル</a>
<<

Q.インフォシーク はまだあるぞ

A.infoseek iswebのことをインフォシークと書いてたわ

------------------

はじめに

Q.なんでやめるの?

A.別増田id名指しでアホやろって言われてなんかもうどうでもいいやって思ったから。匿名卑怯だぞという気持ちがないではないが、どうでもいいや感のほうが大きかったため。

10000ブクマ見返した感想

2009年からブクマ始めて気が付けば約10000ブクマしてた。もともとはてなに来たのはうごメモはてなからで、ブクマ始めた当時(12年前)は中2。ブクマ機能すらよくわからず使ってた。

初期はちきりんサイトとかライフハック記事をよくブクマしてた、若い

hagexさんとかcyberglassさんブログとかもブクマしてて懐かしさを感じた。

以下見返した感想(と現実)。

    全体的に感じたのは、インターネットコンテンツ(記事)は永遠ではないということ。本当に必要ものがあるのならオフラインに保存必須。それとブクマページがコンテンツの墓標のようになっていたこと。webコンテンツ存在を残すために、ブクマカはこれからも色んなページをブクマしてほしいと思う。

    どうでもいいけどブクマ全部見返して削除するのめちゃくちゃ時間がかかった。とても大変だった…

    ブクマカ名(迷)言集

    ブクマカはこれが見たいんでしょ、わかるよ。

    確認したらブコメが消えていたものid省略して記載。なんで消えてるブコメを把握してるかって?ブコメページをブクマしてたからだよ。

    ページを「ブクマ」しようとするって事は、逆にブコメページを「ブクマ」されるかもしれないという危険を常に『覚悟して来ている人』ってわけですよね…

    ランクイン(?)したブクマカはおめでとう。ランクインしてないブコメ別に悲しむ必要はないと思う。


    学校

    そいつらって「ただ学校が一緒だった」だけで、友達じゃないよ。友達って、年齢関係なく、横並びだから。 - id:privates

    ブコメページ - 大学について友達に見下されてどうしていいかからなくなってきた

    これが教員側または親の側からの心構えとしては、失敗する権利を奪うなとなる。老婆心お節介能動的に手伝いたくなるがそれは自己満足教育とは自ら学ぶ人間に育てること。そしてそこから学ぶことなである - id:Miroc

    ブコメページ - 大学の恩師に教わった、「なにがわからいか、わからない」とき質問のしかた。 | Books&Apps

    え、勉強努力って誰かの結果と比較する為にやる事じゃなくて、自分の伸び代を最大限に伸ばす為にやるものでしょ?勝つとか負けるとか言ってる時点で自分人生の主導権を他人に委ねてる。精神が負けてるよ。 - id:kanagawakama

    ブコメページ - 小学生から受験対策しても地頭のいいやつには勝てない

    人格問題あり。 そもそも食糧のありがたみを感じるのは満腹の人ではなく空腹の人だろう。 金のありがたみがわかるのは金欠の人だろう。 国のありがたみがわかるのは、国を失った人だろう。 - id:osakana110

    ブコメページ - 都教委:小学校女性教諭処分 嘔吐するまで給食食べさす - 毎日新聞


    SNS

    SNSは人を折れるまで先鋭化させる。大勢から肯定大勢から否定に曝され続けて前者に寄って行かないことは難しいんだろうな。自主的洗脳装置 - id:mame_3

    ブコメページ - キクマコ先生河野大臣質問を4連続無視したこと非難した立憲民主党外交能力がない」 - Togetter

    ここ数年考え続けている「SNSは人を壊す」という問題の端的な例だったのかも。情報を発信して承認される繰り返しの中で、書き手だんだん視野が狭まり平衡感覚を失い、狂っていく。 - id:muchonov

    ブコメページ - 【本感想年収150万円で僕らは自由に生きていく 答え合わせは5年後は本当だった - ドクダミ自由

    今のツイッターからは離れた方がいい。自分本来関わってはいけない話題軽率に関わり始めて、結果的精神を磨耗することになる。弱くてちっぽけな人間世界中の不幸にわざわざ付き合うことはない。 - ブコメ削除

    SNSの暗黒面に落ちるな。反応を求めると誰が見込み客で何のために投稿しているかを忘れてしまう。いいね欲しさに道を誤り、反応してくれたのはエロい男のみだったと。見込み客に向けた投稿をしないと。 - ブコメ削除

    インターネットでは、自分他人にとって「何の反応も示す価値のない、特別ではない他人であることを知るのはかなり初期段階だと思う。「自分特別でないことを知る」のは全く特別なことではない。 - id:kuzudokuzu

    ブコメページ - ブラウザブクマ公開したのにコメントはおろか星1つ付かないんだが


    続きます: anond:20210618204845

    anond:20210617075257

    アルゴリズムいらないって言ってる奴いるけど正気か。

    そういう奴は、これのどっちが正しいかみたいなことをいちいち個別に覚えるのか……。

    nodes: list['Node'] = get_node_list()
    while(nodes):
        n: 'Node' = nodes.pop() # 末尾のノードから処理
        # do something
    
    nodes: list['Node'] = get_node_list()
    while(nodes):
        n: 'Node' = nodes.pop(0) # 先頭のノードから処理
        # do something
    
    追記

    型ヒントをつけろと書いてあったので付けました。

    コメント//から#にした。完全にミスった。指摘サンクス

    2021-06-17

    return(isEnabled)ではなくわざわざif分岐でreturn trueかreturn falseと書く理由

    いやんめっちゃ面白い話題に乗り損ねた

    https://togetter.com/li/1731973

    if(isEnabled) {
      return true;
    } else {
      return else;
    }
    

    いやまあかなりの部分、言語仕様にもよると思うんだけども

    「isEnabledがtruefalseの2つの値だけをとることを信用していない」(お前より型つき静的解析のほうが頭いいんだから無理するなという指摘はまあその通り)

    「この関数で返す真偽値はEnabledかどうかという意味ではないのでreturn(isEnabled)と素通しで返すとなんかキモい、あとreturn(!!isEnabled)は老眼にやさしくない」

    このへんだろうか

    とげったー内にもあったけど、この議論ではEnabledというのがあまりよくなくて、たとえばif(flag)だとしたら喜んでreturn(flag)と書く気がする

    まあウェットな感覚ですわ

    anond:20210617154921

    ついでにこのブコメ

    つけ麺ってはじめは美味しいけどどんどんスープがぬるくなっていって最後の方微妙に感じちゃうんだけど、どう食べればいいんだろう
    

    に対する解を教えてくれ。

    これが嫌いであまりつけ麺は食ってない。

    2021-06-12

    anond:20210612165058

    今もGoogleでいいと違う?

     

    例)

    site:hatena.ne.jp 甘えだと思う

    2021-06-11

    ノートPCバッテリーって

    けっこう内部に使用履歴持ってるんだね、知らなかった。

    powercfg /batteryreport
    

    2021-06-07

    問題】 次の文章を読んで筆者の気持ちを100文字以内で述べよ(15点)

    北大助手時代に「東京は恐ろしい所だ」と思ったことが一度だけあります。国際会議のロジやっていた時、同時通訳派遣してもらいました。最初研究者なんだから通訳くらいできるだろうと思ってたのですが通訳は甘いものではなくまるでうまくいかなかったのです。まして同時通訳など訓練なしには無理。
    
      アカデミアの国際会議でしたか専門用語だらけですが、事前に資料渡しておいたら、それはそれは見事な同時通訳がなされました。通訳者はすべて女性だったのですが、これが皆さん、専業主婦だったのです。東大ICU卒業した専業主婦です。セレブバイトだったのです。
    
      東大ICUや東外大ICUや東外大大学院駒場で修了してたりする人もいました)出身者が専業主婦やってるのです。ジェンダー問題は本件ではちょっとおいておきます。とにかく北北海道辺境出身の私にはあまりにもイカツイ学歴の持ち主が専業主婦やって、セレブバイトしている。衝撃と畏怖でした。
    
      繰り返しますが、ジェンダー問題は専門外なのでおいておきます彼女らは比較的余裕で超一流大学に入り、普通に教養を積み、しかキャリアガリガリ重ねることには関心がなく、恐ろしく給料の高い旦那パートナーとして読書語学を磨き子育てしている。雲の上より私には高かったです。
    
    あり得ないのです。あり得ない世界だったのです私には。研究者としては、彼女らの旦那(が研究者だった場合)を凌ぐことができるかもしれない。しかしあの高学歴語学力でキャリア志向のない妻を迎えることは想像もできなかった。つまり僕は絶対に勝てない。一体どんな世界なんだと背筋が凍りました。
    
    そもそも白人見たのが、大学に入ってからというのが私です。一月に2〜3日しか太陽の出ない土地ガリ勉して、浪人して北大に入った、それが私です。もう(誰かマシンガン持ってきてくれ、一回ゼロにしないと俺はもうこの世では浮かび上がれない)とまで思いなやみ懊悩しました。
    

    2021-06-04

    恥ずかしい文盲ブクマカとそれに釣られる脳直無思考スター投げブクマカのみなさん

    ネトウヨはなぜ大坂なおみを忌み嫌うのか - 読む・考える・書く

    "嫌ってるのはネトウヨだけ"なんて誰も言ってないですよね?w

    ネトウヨはなぜ大坂なおみを忌み嫌うのか - 読む・考える・書く

    toronei 嫌ってるのはネトウヨだけという偏見撒き散らしてる人が差別格差を語らないでほしい。

    2021/06/03 23:41

    このブックマークは合計 Normal Star124 のスターを獲得しています

    aceraceaeさん がスターを付けました。

    kokosokoさん がスターを付けました。

    sy0923さん がスターを付けました。

    lizyさん がスターを付けました。

    lont_inさん がスターを付けました。

    voodoo5さん がスターを付けました。

    m7g6sさんスターを付けました。

    cl-gakuさん がスターを付けました。

    a_horuruさん がスターを付けました。

    metamixさん がスターを付けました。

    oyagee1120さん がスターを付けました。

    b_taroさん がスターを付けました。

    damedomさんスターを付けました。

    hocopiさん がスターを付けました。

    g2Gさん がスターを付けました。

    whkrさん がスターを付けました。

    qwertonさん がスターを付けました。

    coppercrapさん がスターを付けました。

    tomoya_edwさん がスターを付けました。

    choliroさん がスターを付けました。

    kabochatoriさん がスターを付けました。

    WinterMuteさん がスターを付けました。

    pulp_literatureさん がスターを付けました。

    ribotさん がスターを付けました。

    the_sun_also_risesさんスターを付けました。

    sumika_09さん がスターを付けました。

    tomoPさん がスターを付けました。

    ar50mamaさん がスターを付けました。

    annoyさん がスターを付けました。

    heroweenさん がスターを付けました。

    sizxさん がスターを付けました。

    nazo0526さん がスターを付けました。

    PACIFISTさんスターを付けました。

    satoshieさん がスターを付けました。

    satoshieさん がスターを付けました。

    satoshieさん がスターを付けました。

    satoshieさん がスターを付けました。

    satoshieさん がスターを付けました。

    junglejungleさん がスターを付けました。

    augsUKさんスターを付けました。

    Dursanさん がスターを付けました。

    takashi1211さん がスターを付けました。

    skycommuさん がスターを付けました。

    colonoeさん がスターを付けました。

    nippondanjiさん がスターを付けました。

    dozさん がスターを付けました。

    small_treeさん がスターを付けました。

    flatfiveさん がスターを付けました。

    lady_jokerさん がスターを付けました。

    hobo_kingさん がスターを付けました。

    saJittariusさんスターを付けました。

    kotobuki_84さん がスターを付けました。

    coluliさん がスターを付けました。

    norinorisan42さん がスターを付けました。

    amane60さん がスターを付けました。

    shohei909さん がスターを付けました。

    lainofさん がスターを付けました。

    h1rotoさん がスターを付けました。

    Fukkeyさん がスターを付けました。

    chaos_tagさん がスターを付けました。

    youcan22さん がスターを付けました。

    poissonsolubleさん がスターを付けました。

    tyoshikiさん がスターを付けました。

    nrelearivさん がスターを付けました。

    savorinhoさん がスターを付けました。

    nununeさん がスターを付けました。

    songeさん がスターを付けました。

    nearlyinhumanさん がスターを付けました。

    Ychengさん がスターを付けました。

    ken530000さん がスターを付けました。

    bigburnさん がスターを付けました。

    contrapunctさんスターを付けました。

    contrapunctさんスターを付けました。

    contrapunctさんスターを付けました。

    riyanorieさん がスターを付けました。

    kurato3kuraさん がスターを付けました。

    kurato3kuraさん がスターを付けました。

    kurato3kuraさん がスターを付けました。

    hamu_startさんスターを付けました。

    hamu_startさんスターを付けました。

    hamu_startさんスターを付けました。

    hamu_startさんスターを付けました。

    hamu_startさんスターを付けました。

    iwwさん がスターを付けました。

    vbwmleさん がスターを付けました。

    bwmleさん がスターを付けました。

    monzi28さん がスターを付けました。

    strangerxxxさん がスターを付けました。

    dada_loveさん がスターを付けました。

    fishmaさん がスターを付けました。

    fishmaさん がスターを付けました。

    fishmaさん がスターを付けました。

    fishmaさん がスターを付けました。

    fishmaさん がスターを付けました。

    seitoenaさん がスターを付けました。

    Baybridgeさん がスターを付けました。

    iftttさん がスターを付けました。

    nakana79さん がスターを付けました。

    circmaさん がスターを付けました。

    sigwygさん がスターを付けました。

    amourkarinさん がスターを付けました。

    yukitan_iさん がスターを付けました。

    R2Mさんスターを付けました。

    calmazin2さん がスターを付けました。

    mkotatsuさん がスターを付けました。

    wk_ssさんスターを付けました。

    tet8127605さん がスターを付けました。

    cLzxy7Aj40d68bNZAさん がスターを付けました。

    hachi_pochiさん がスターを付けました。

    clavierさん がスターを付けました。

    guldeenさん がスターを付けました。

    whirlさん がスターを付けました。

    qomp8さん がスターを付けました。

    d_sugawaraさん がスターを付けました。

    wktk_msumさんスターを付けました。

    mirutoさん がスターを付けました。

    monotonusさんスターを付けました。

    serioさん がスターを付けました。

    civic800さん がスターを付けました。

    moqojiyさん がスターを付けました。

    petemさんスターを付けました。

    u_eichiさん がスターを付けました。

    eggheadoscarさん がスターを付けました。

    warabiさん がスターを付けました。

    よくあるPythonの話

    file = open('helloworld.py', 'r')
    line = file.readline()
    while line:
        print line
        line = file.readline()
    
    1. file.readable()を使ったらreadlineが1個になるからシンプルだよ=わざわざ判定してから読み込み待ちと2回にしなくても、こっちのほうが1回で判定してくれる
    2. file.closeがないよ= ガーベッジコレクタ自動Closeで十分

    https://github.com/kokorohamoe/OpenProfile/blob/simple/700_sample/python/helloworld.py

    2021-06-03

    入力が7の自乗 つまり49 である場合に1 7である場合に0 それ以外の数字である場合-1を表示するプログラムを作れ

    #!/usr/bin/python
    i = input('#')
    if i==7*7:
        print 1
    elif i==0:
        print 0
    else:
        print -1
    

    https://github.com/kokorohamoe/OpenProfile/blob/master/700_sample/python.2/input.py

    簡単には こうなんだけど

    じゃぁ なにがいじわるって

    文字列がきたら?

    いきなり改行コードだったら?

    全角で49だったらなどなど

    想定外の処理というのが追加になる

     

    言い方を変えれば 正解のときパターンは1つしかない

    しかし、異常な入力をきちんと処理できるか?というパターンは無数にある

    これがプログラムの難しさ

     

    最低限落ちないから始まって49ではなく49って入力されても 間違っているとはいいずらいよなぁ

    2021-06-02

    学校で教えてほしい極簡単チューニングとはなにか?教えてほしくないこととは何かを説明

    do{
    }while(flag)
    

    while(true){
     
    if(!flag) break;
    
    }
    

    なにがちがうのか?

    ものすごい単純に言うと 前者はIFがflagしかないが

    後者true判定とflag判定と2つあるため

    厳密に言うと 後者のほうが2倍遅い

     

    ただ、こういうのは機械最適化してくれるから

    人間はどちらかというと、機械最適化やすいように

    人間にとって読みにくくとも機械にとってわかりやすいように

    書くのも仕事だし

    それじゃぁメンテナンスが大変なのである程度遅くとも人が読みやすく書くのも仕事

    腕の違いが出るところ

     

    教えてほしくないことは、こうすれば良い ↑含む という模範解答は現実にはないため

    全体の中での調整となるため、

    教科書どおりなど無いため

    こうすればいいみたいなことは教えないでほしい

     

    というか生徒に変な癖つけて、企業に送り込まないでほしい

    だめだといった後者の書き方のほうが良いときもある

    file = open('helloworld.py', 'r')
    lineno = None
    while lineno != file.tell():
        lineno = file.tell()
        print file.readline()
    

    対して違わないけど数万行だと、すごい違う

    ちょっとした例だとおもいね

    file = open('helloworld.py', 'r')
    line = file.readline()
    while line:
        print line
        line = file.readline()
    

    何が違うか?

    前のプログラムは、1行読み込んで、行番号が変わっていなければ

    もう読むものがないから終了

    次のプログラム

    読み込みバッファを見て、残りがなければ終了

     

    簡単な違いだけど

    読み込みバッファってなに?

    とか、行数が数万行あったらどうするの?

    とか、細かい違いが生まれ

    おっきなプログラムだと性能が2倍3倍とかわる

    それが、プログラムの怖さ

     

    いらない人間プログラマでした

    いじめないでほしいよ

    file = open('helloworld.py', 'r')
    lwhile True
        line = file.readline()
        if not line:
            break
       print line
    

    こうかくと、ダサいけど 行がなくなったら終わりってわかりやすいね

    Python記法

    >|Python

    Pythonコード

    ||<

    を半角でかくとPythonコードがきれいにかけるぜ

    print "Hello"
    

    アバロンの術

    アンプシールドさせよ

    https://github.com/kokorohamoe/OpenProfile/blob/master/700_sample/python/helloworld.py

    file = open('helloworld.py', 'r')
    no = None
    while no != file.tell():
        no = file.tell()
        print file.readline()
    

    これをわかりにくくはなるがPython的にシンプルに書くとこうなる 

     ↓

    https://github.com/kokorohamoe/OpenProfile/blob/simple/700_sample/python/helloworld.py

    file = open('helloworld.py', 'r')
    line = file.readline
    while line:
        print line
        line = file.readline()
    

    管理者として記名はするがコードソングウェアとする(なんか作業中に聞いている音楽のために1曲買って)

     

    tellってのは、行番号取得だから行番号が変わらなくなったら全部表示したから終わる というのが初心者向けコード

    Pytonの機能を使って while line 行がある間ループ って書いちゃえるのが差分 ちょっと覚えることは増えるがPythonファイル操作に便利な機能が入っているよ

     

    初心者向けに話すのがプロ おぼえとけよ じゃない 感じろ シールドを アンプにさせよ それがアバロンの術 

     

    シールドアンプに挿したお前は おれより かっこいい! ぐぎゃぁ(やられたおと)

    anond:20210602082449

    with open("helloworld") as f:
        for line in f:
            try:
                x = int(line)
                if x >= 0:
                    line = "*"
            except ValueError:
                pass
            print(line.strip())
    

    anond:20210602081628

    ワイも初心者やが、ファイルの内容表示するだけならこれでいいのではないかな。

    with open('helloworld', 'r') as f:
        print(f.read())
    
    ログイン ユーザー登録
    ようこそ ゲスト さん