@Intrepid:  Das Programm ist für Python 3 geschrieben.  Mit Python 2 funktioniert es nicht, weil "input()" in Python 2 eine andere Bedeutung hat.
Was soll es bringen, alle Eingaben pauschal mit Ausnahmebehandlung zu versehen?
@bitssalad:  Auf „Prüfvariablen“ wie "inp_check" würde ich verzichten, und eher eine Endlosschleife verwenden:
Code: Alles auswählen
while True:
    response = input('choose rock, paper or scissors: ')
    if response in items:
        break
    else:
        print('wrong input!')
Gilt in gleicher Form auch für die äußere Schleife und "game_run".
Die endlose if…elif…else Kaskade zur Bestimmung des Gewinners ist unschön.  Überlege Dir, wie Du das abkürzen könntest.  Ein Weg wäre beispielsweise ein Wörterbuch, welches Paare von Eingaben auf Ergebnisse abbildet:
Code: Alles auswählen
results = {
    ('rock', 'paper'): 'computer wins',
    ('rock', 'scissors'): 'user wins'
    # …
    }
result = results[(user_inp, cp_input)]
Gewöhne Dir ab, Namen abzukürzen, Du stirbst nicht, wenn Du statt "cp_inp" "computer_input" schreibst, und erst recht nicht, wenn Du "usr_inp" mit "user_input" ersetzt.  Dafür ist das Programm wesentlich leichter zu lesen.
In "input(str(…))" ist "str" überflüssig.