if playerST == 14:
random.seed ()
playerDam = random.randint(2,12)
Since random.seed () returns None. You actually set the variable to none. There is no need to use random.seed () every time you call random function. You need to use it just once in your program..
Another problem in your code is that you put the initial value of playerWeaponDam in a if block; that variable is not actually initialized unless the if condition succeeds. If the if condition fails for some reason, you'l get another error. Always initialize variables OUTSIDE if blocks.
So always do this kind of thing:
# initial value for damage. Set to 0
playerWeaponDamn = 0
if playerWeapon == "sword":
playerWeaponDam = 3
playerSwDamType = "cut"
playerThDamType = "imp"
I once again suggest you learn variable scoping a bit more, before you proceed further otherwise you'll get confused as to why you get errors when you've apparently initialized a variable and the interpreter says you haven't.