技術とメンタル

技術的なことと考えていることのアウトプット

あるメールアドレスがMacの標準メールアプリに登録できない

あるサービスのメールアドレスをMacの標準メールアプリに登録しようとして、
「そのメールアドレスはすでに存在します。」と表示されている場合です。

[設定]のアプリを起動

[インターネットアカウント]
もし左側のアカウント群にすでにあるなら、もう登録できているので終了。


無い場合、今回登録しようとしているメールアドレスをiCloud(というかappleアカウント)に使っていないでしょうか?

その場合は、一度左下のマイナス(-)ボタンを押してiCloudアカウントを消してください。
※数分後すぐに設定し直してください。データは消えません。
iCloudアカウントがない状態で、もう一度登録したいメールアドレスを正規の手順で登録してみてください。

多分いけたと思います。
そうしたら、先ほど消したiCloudアカウントをもう一度登録し直してください。

以下、参考にしてください。

Yahoo!japan メールアドレスの登録の仕方
reconf-shell.hatenablog.com


Outlook メールアドレスの登録の仕方
reconf-shell.hatenablog.com

OutlookのメールアドレスをiPhone標準のメールアプリで使う

MicrosoftOutlook を、個人、会社、大学等で使っている人向けです。

普通にOutlookアプリをダウンロードすれば使えますが、
ここではiPhoneの標準メールアプリで使用する方法をメモしておきます。

環境 : iPhone6 (iOS10)

[設定]のアプリを起動

[メール]

[アカウント]

[アカウントを追加]

[Exchange]

  • メールにOutlookメールアドレス(個人、会社、大学等)を
  • 説明は適当に


[次へ]

パスワードを入力


これで終了です。

多分、ハマってる人は[アカウント追加]で、[Exchange]ではなく、
[Outlook]を選択していると思います。

ちなみにiPadでも、Macでも同じ方法で登録します。

Yahoo! japanのメールアドレスをiPhone標準のメールアプリに設定する

Yahoo!のメールアドレスの登録の仕方を勘違いしいていました。
ここでは Yahoo! Japan のメールアドレスを設定する方法を置いときます。

環境: iPhone6 (iOS10)

[設定]のアプリを起動

[メール]

[アカウント]

[アカウントを追加]

[その他]

[メールアカウントを追加]

  • 名前は適当に
  • メールアドレスにYahoo!メールのアドレスを
  • パスワードはYahoo!アカウントのパスワードを
  • 説明は適当に

これで終了です。

多分、ハマってる人は[アカウント追加]で、[その他]ではなく、
[YAHOO!]を選択していると思います。

ちなみにiPadでも、Macでも同じ方法で登録します。

Pythonの抽象メソッド(abstract method)について

初心者らしくかなり大雑把に言うと、

親のクラスで特に機能を持たせずに、メソッドだけ(名前だけ)定義して、「継承した子クラスでそれぞれ内容は定義して」というもの。
つまり、継承したら必ず「同じような機能をそれぞれ別に定義してね〜」ということ。

AttributeError: 'NoneType' object has no attribute ' ' の原因

Pythonの勉強中に、
AttributeError: 'NoneType' object has no attribute '自分の書いた何か'
というエラーが吐かれた。
最近はよく出てきてたのでがっつりtry&errorを繰り返していたら原因がわかった。

結論から言うと"None"に対してアクセスしようとして起こる。


例えば以下のような.dataと.nextによって構成される Linked List に対してダブりを消去するプログラム(一部) で

    def RemoveDuplicates(self,head):
        current2 = head
        while current2:
            if current2.data == current2.next.data:
                current2.next = current2.next.next
            else:
                current2 = current2.next           
        return head

と記述するとエラーが吐かれるが、
while文の条件を

while current2.next:

と書き換えればエラーは出ない。

※linked list だから最後の要素の .next は "None" である。

同じようなエラーで悩んでる人がいたら、確認してみては。

pythonで大文字/小文字の変換

pythonで大文字と小文字の文字列操作をしたかったのでメモ。

今回はサンプルプログラムを以下の3種類載せる。

  1. 文字列内の大文字は小文字、小文字は大文字に変換
  2. 文字列内の小文字を検出して全て大文字に変換
  3. 文字列内の大文字を検出して全て小文字に変換

最初の例は、いかにも練習問題に出てきそうな感じのやつ笑
文字列内の大文字は小文字、小文字は大文字に変換

my_str = input()

for i in range(len(my_str)):
    if "a"<=my_str[i]<="z":
        print(my_str[i].upper(),end='')
    elif "A"<=my_str[i]<="Z":
        print(my_str[i].lower(),end='')
    else:
        print(my_str[i],end='')

続いて、文字列内の小文字を検出して全て大文字に変換

my_str = input()

for i in range(len(my_str)):
    if "a"<=my_str[i]<="z":
        print(my_str[i].upper(),end='')
    else:
        print(my_str[i],end='')

最後に、文字列内の大文字を検出して全て小文字に変換

my_str = input()

for i in range(len(my_str)):
    if "A"<=my_str[i]<="Z":
        print(my_str[i].lower(),end='')
    else:
        print(my_str[i],end='')


結論的に言うと一番最初のプログラムのif_elif_elseを所々削るだけでいける。


python3で関数の再帰呼び出し

簡単な再帰呼び出しのプログラムを紹介します。
自分でせっかく書いてみたので一応載せておく。

一番有名なnの階乗を求めるアレです。

N = int(input())

def factorial(i):
    if i>1:
        return i * factorial(i-1)
    else:
        return i
    
print(factorial(N))

何かの役に立つといいです。