まず結論

invalid literal for int() は、int() が整数に変換できない文字を受け取ったときに出ます。

number = int("abc")

"abc" は整数にできないので、エラーになります。

こんなときに読む記事です

次のようなエラーで止まった人向けです。

ValueError: invalid literal for int() with base 10

長く見えますが、「この文字列は整数に変換できません」という意味です。

input()でよく起きる

input() の結果を int() に渡すときによく出ます。

age = int(input("年齢は?"))
print(age + 1)

ここで 12 と入力すれば動きます。
でも 十二12歳 と入力すると、整数に変換できずエラーになります。

小数もそのままでは無理

int() は整数用です。

number = int("3.5")

このコードもエラーになります。
小数を扱いたいなら float() を使います。

number = float("3.5")
print(number)

空文字にも注意

何も入力せずEnterを押すと、空文字 "" になります。

number = int("")

これも整数にできないためエラーです。

読み方のコツ

ValueErrorint() が一緒に出たら、「変換しようとした文字が数字として読めなかった」と考えます。
入力値に文字、単位、小数点、空白が混ざっていないか確認すると直しやすいです。