Python算法及猜拳小程序
原创
©著作权归作者所有:来自51CTO博客作者微笑@鼠的原创作品,请联系作者获取转载授权,否则将追究法律责任
1.个人所得税计算:
#工资 salary
salary = input('请输入您的工资:')
#将输入的内容转化为数字
salary = int(salary)
sanXian = 0
if salary >= 7662 :
sanXian = 7662 * 0.225
else:
sanXian = salary * 0.225
suoDeShuiE = salary - sanXian - 3500
shuiLv = 0
kouChu = 0
if suoDeShuiE <= 0 :
print ('不用交税')
else:
if suoDeShuiE <= 1500 :
shuiLv = 0.03
elif suoDeShuiE <= 4500 :
shuiLv = 0.1
kouChu = 105
elif suoDeShuiE <= 9000 :
shuiLv = 0.2
kouChu = 555
elif suoDeShuiE <= 35000 :
shuiLv = 0.25
kouChu = 1005
elif suoDeShuiE <= 55000 :
shuiLv = 0.3
kouChu = 2755
elif suoDeShuiE <= 80000 :
shuiLv = 0.35
kouChu = 5505
else:
shuiLv = 0.45
kouChu = 13505
#PersonalIncomeTax:个人所得税
PersonalIncomeTax = suoDeShuiE * shuiLv - kouChu
PersonalIncomeTax = str(PersonalIncomeTax)
print ('个人应该交纳的税为:'+PersonalIncomeTax)
运行结果工资为:10w
2.猜拳小程序:
#石头剪子布 小程序 三局两胜制
from random import randint
user_win = 0
compunter_win = 0
deuce = 0
#index代表标号 value代表值
for index,value in enumerate(range(3)):
user_num = input('请输入数字')
user_num = int (user_num)
compunter_num = randint(0,2)
if user_num- compunter_num == -1 or user_num-compunter_num==2:
print ('第{}局玩家胜'.format(index+1))
user_win += 1
elif user_num - compunter_num == 0:
print ('第{}局平局'.format(index+1))
deuce += 1
else:
print ('第{}局电脑胜'.format(index+1))
compunter_win += 1
print ('--------第{}局结束-------'.format(index+1))
if compunter_num == 2 :
print ('电脑胜')
break
if user_num == 2 :
print ('玩家胜')
break
else:
#平3局 平1局 一胜一负 平2局 赢一局
if deuce == 1 and compunter_win - user_win ==0 and index == 2:
print ('平局')
elif deuce == 3:
print ('平局')
elif deuce == 2 and index == 2:
if compunter_win - user_win == 1:
print ('电脑胜')
else:
print ('玩家胜')
运行结果如下:
3.循环算法:
#for(int index =0 ; index <10 ; index ++)
#{
# 循环;迭代
# }
#for in 结构 index索引 range 范围
for index in range(10):
print ('老兄你厉害')
print (index)
循环运行结果如下:
4.循环开始至结束:
#值1:循环开始的位置
#值2:循环结束的位置
for index in range(50,100):
print (index)
5.循环开始至结束及增量
#值1 :循环开始的位置
#值2:循环结束的位置
#值3:增量
for index in range(50,100,5):
print (index)
unm = 100
unm = unm + 100
unm += 100
print (unm)
6.获取1~100之间所有的和
sum = 0
for x in range(1,101):
sum = sum + x
print ('x=%s' % x)
print (sum)
7.获取1~100之间所有奇数及5倍的差
ji_he = 0
bei_shu = 0
for index in range(1,101):
if index % 2 == 1:
ji_he = ji_he+index
if index % 5 == 0:
bei_shu=bei_shu + index
print (ji_he-bei_shu)
最后在说一下if条件判断表达式及局部变量和全局变量:
局部变量:影响部分代码,在部分代码中有效
全局变量:在所有代码中都有效
注:在方法内部的变量是在=号前面的,那肯定是局部变量。如果是第一次出现在=号后
面的,那肯定是调用的全局变量;全局变量可以在函数里面调用,局部变量只能在对应的函
数里面调用,在该函数外面任何地方都无法被调用。
8.数字类型操作型:
8.1:怎么判断输入数字为偶数:
num = input('请输入一个整数')
num = int(num)
if num % 2 == 0:
print ('偶数')
else:
print ('奇数')
8.2:怎么判断一个数字即是3的倍数也是4的倍数:
num = 123
if num % 12 == 0 :
print ('即是3的倍数也是4的倍数')
else:
print ('不是3和4的倍数')
if num % 3 == 0 :
if num % 4 == 0 :
print ('是3的倍数')
else:
print ('不是4的倍数')
else:
print ('不是3的倍数')
if num % 3 == 0 and num % 4 == 0 :
print ('是3或4的倍数')
8.3:怎么判断一个数字是5 的倍数或是6的倍数:
if num % 5 == 0:
if num % 6 == 0 :
print ('即是5的倍数又是6的倍数')
else:
print ('是5的倍数不是6的倍数')
else:
if num % 6 == 0 :
print ('只是6的倍数')
else:
print ('既不是5的也不是6的倍数')
#---------------------------||or 多个条件只要一个满足就可以
if num % 5 == 0 or num % 6 == 0 :
print ('5或者6的倍数')
注意:8.1-8.2-8.3用的都是:num input('输入一个整数')
num = int (num)
总结:and和or用于多个条件需要判断的情况下。
and:只要有一个条件为假,最终结果为假
条件1
| 真
| 条件2
| 真
| 结果
| 真
|
条件1
| 假
| 条件2
| 真
| 结果
| 假
|
条件1
| 假
| 条件2
| 假
| 结果
| 假
|
or:只要有一个条件为真,最终结果为真
条件1
| 真
| 条件2
| 真
| 结果
| 真
|
条件1
| 真
| 条件2
| 假
| 结果
| 真
|
条件1
| 假
| 条件2
| 假
| 结果
| 假
|
9.插件random:
9.1:框架,工具,包,插件random:随机
从random包中引出随机整数的方法
计算机当中的随机数也称之为;"伪随机数"
计算机找随机数是根据计算机内部的算法来找到的
例:在0和3之间随机获得一个整数
from random import randint
number = randint(0,3)
print (number)
user_num = input('请输入你要猜的数字')
user_num = int(user_num)
computer_num = randint(0,3)
print (user_num)
if user_num == computer_num :
print ('you win')
else:
print ('you lose')
总:如果不是明显要局部变量和全局变量纠缠 能不纠缠就不纠缠。也就是定义变量名字的时候 要严格规范。按照开发规范来定义名字。全局大写或者加上“_”开头
这是避免不必要问题的根本
消灭问题如果实在是场景需求
局部要操作修改赋值全局变量。那就使用global。