独书先生 Menu

All items for 11月, 2016

Python初学者笔记(4):Python实现输入生日显示对应的生肖和星座

Python实现输入生日显示对应的生肖和星座。已知1972年是鼠年,只要可以查1972年以后的日期就可以。下图是星座对应表。
 %e6%98%9f%e5%ba%a712
# -*- coding:utf-8 -*-

def sx(year):
    y = (year-1972)%12 #对12取余
    return shx[y] #从字典shx里依次取对应的生肖,如:1972即余数0,取“鼠”
def xz(month,date):
    d = (20,19,21,20,21,22,23,23,23,24,23,22) #按日期顺序把每个月的分隔星座的日期列出来,从水瓶座(1月)开始
    c = ("摩羯座","水瓶座","双鱼座","白羊座","金牛座","双子座","巨蟹座","狮子座","处女座","天秤座","天蝎座","射手座")
    # 有了列表d的分隔日期,对应在此分隔日期之前的星座写入列表c,如:第一个水瓶座的20号之前是摩羯座
    if date < d[month-1]: #如果是1.19号,即取d中1月份的20
        return c[month-1] #日期在20号之前,即取对应到c的摩羯座
    else:
        return c[month] #否则就是20号之后,下一个水瓶座

shx = {0:"鼠",1:"牛",2:"虎",3:"兔",4:"龙",5:"蛇",6:"马",7:"羊",8:"猴",9:"鸡",10:"狗",11:"猪"}
sr = raw_input("请输入您的生日(格式:1999.09.09):")
t = sr.split(".") #切片,把sr以“.”分割,变成3个字符串
year = int(t[0])
month = int(t[1])
date = int(t[2])

print "您的生肖是:"+sx(year)
print "您的星座是:"+xz(month,date)
 Result
>>>
请输入您的生日(格式:1999.09.09):1992.11.24
您的生肖是:猴
您的星座是:射手座

Python初学者笔记(3):输出列表中的奇数/奇数项,字符串中的偶数项,字符串大小写转换

【1】a=[8,13,11,6,26,19,24]
1)请输出列表a中的奇数项
2)请输出列表a中的奇数

解:1)

a=[8,13,11,6,26,19,24] 
print a[::2]

Result:
>>>
[8, 11, 26, 24]

2)

a = [8,13,11,6,26,19,24]
b = []
for item in a:
    if item%2 !=0:
        b.append(item)
    else:
        continue
print b

Result:
>>>
[13, 11, 19]

Continue reading…

安装wampserver出现“The Program can’t start because MSVCR110.dll is missing from your computer. Try reinstalling the program to fix this problem”

问题描述:

今天安装wampserver的时候出现“The Program can’t start because MSVCR110.dll is missing from your computer. Try reinstalling the program to fix this problem”弹窗报错,以至于无法启动wampserver

安装条件:Win7 系统, 64 位, 安装软件: WAMPSERVER 64 BITS (X64) 3.0.6

 

原因分析:

MSVCR110.dll是使用Visual Studio 2011构建的项目所需要的Microsoft Visual C ++ Redistributable dll。(MSVCR110.dll : MS = Microsoft,V = Visual,C = C ++,R = Redistributable)

当你运行需要Microsoft Visual C ++ Redistributable 2012的软件时,就可能会出现这个错误。

 

解决方法:

安装微软的Visual C++ Redistributable for Visual Studio 2012 Update 4

在Microsoft官网有x86或x64版本下载,

x86:32位系统,vcredist_x86.exe

x64:64位系统,vcredist_x64.exe

下载:Visual C++ Redistributable for Visual Studio 2012 Update 4

Continue reading…

Python初学者笔记(2):阿拉伯数字转换成中文大写

题:输入一个数字,转换成中文大写的写法

可运行的程序(Python 2.7.9):

# -*- coding: utf-8 -*- #在python2的py文件里面写中文,必须要添加一行声明文件编码的注释,否则python2会默认使用ASCII编码
dic_num={"0":u"零","1":u"壹","2":u"贰","3":u"叁","4":u"肆","5":u"伍","6":u"陆","7":u"柒","8":u"扒","9":u"玖"}
dic_unit={0:u"",1:u"拾",2:u"佰",3:u"仟",4:u"万"}

flag = True

while flag:#保证程序能反复运行
    shu = []
    big = ''
    num = raw_input("请输入数字(范围在1~99999之间),若输入q则退出程序:".decode('utf-8').encode('gbk'))
    if num == 'q' or num == 'Q':
        flag = False
    elif int(num) < 1 or int(num) > 99999:
        print "错误!请输入1~99999之间的数字!\n".decode('utf-8').encode('gbk')
        continue
    else:
        listnum = list(num)
        lennum = len(listnum)-1
        for item in listnum:
            shu.append(dic_num[item])#先取输入数字中的第一个数对应的中文大写加到shu列表里,后续循环
            shu.append(dic_unit[lennum])#例:4位数就取dic_unit中3对应的“仟”加到shu的第一个数字后面,后续循环
            lennum -=1
        big = ''.join(shu)
    print big.encode('gbk')
    print "\n"

注:刚刚学习的初级程序写法,有很多不全的地方,比如:1.输入“082”开头是0的数字一样会输出“零佰扒拾贰”,应该需要更多的判断语句;2.输入“034354”会直接报错,应该没有加异常处理造成的结果。

后续会继续学习,欢迎大神补充更完善的写法。

Python初学者笔记(1):打印出斐波那契数列的前10项

问题:斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*),用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。特别指出:0不是第一项,而是第零项。

方法:Python2.7.9

a=0
b=1
print a
print b
i=1
while i&lt;9:
 c=a+b
 print c
 a=b
 b=c
 i+=1

运行结果:

python