Hot For Coding
公交车上丢手机了!

带着两袋行李上车后,一只手抓着行李厢,另一只手抓扶手。到站后,欲下车,发现门口堵着一死胖子。

我正要从他左边穿过,他顺势堵到左边。以为他不下车于是准备从右边下车,他又堵到右边。当时正急着下车,没顾上左右看又到左边去准备从左边下车,谁知那死胖子又堵了过来。

正感觉奇怪时,胖子下车了,下车后胖子往右边走我往左边走,因为胖子堵了我好几个回合才下车,觉得有点奇怪便回头看了胖子几眼。发现胖子居然边走边回头看,可惜当时我没发现手机丢了。当我们走远了以后摸摸牛仔裤的右前兜发现手机不见了,回想起公交车上胖子堵我那一会儿,我真笨啊!

...

READ ALL

Golang变通实现class类

Go里没有class关键字,一切一切都是函数,这也是我非常喜欢的编程方式。

package main

import "fmt"

func main() {
  b := sum(5, 7)
  fmt.Println(b)
}

func sum(a int, b int) int {
  return a + b
}

如果你非得想使用类的方式来编程,可以这么干

package main

import "fmt"

type Utility struct {}

func (u *Utility) sum(a int, b int) int {
  return a + b
}

func main() {
  u := &Utility{}

  b := u.sum(5, 7)
  fmt.Println(b)
}

...

READ ALL

Python跳出for循环continue与break

虽然在Python中的for循环与其它语言不大一样,但跳出循环还是与大多数语言一样,可以使用关键字continue跳出本次循环或者break跳出整个for循环。

break

# encoding=UTF-8
 
for x in range(10):
  if x == 5:
    break

  print x

Output:

0
1
2
3
4

continue

# encoding=UTF-8
 
for x in range(10):
  if x == 5:
    continue

  print x

...

READ ALL

部分IE下使用trim()函数出错解决方法

因为在获取输入框内容时,常常需要trim下多余的空格。而IE部分低端浏览器里的JavaScript版本不内置trim()这个清楚空格函数,而流行的浏览器里都兼容了,比如Chrome,FF等。为了不让IE下报错影响使用,我们可以自己动手丰衣足食,在IE下给String原型添加一个trim自定义函数,让IE下的String类型支持trim()清除首尾空格。

把以下代码贴在最开始部分就好,当然清除空格的写法多种多样,以下效率没测试过,但基本够用,实在看重效率可以自己研究下正则,替换成你的写法就好!

// 解决IE下string类型没有trim函数bug
String.prototype.trim = function () {
  return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
};

...

READ ALL

Python写的一个按面值找零钱的程序

前两天写了一个《Python写的一个自动售饮料小程序》,今天尝试Python写的一个按面值找零钱的程序。

按照我们正常的思维逻辑从大面值到小面值的找零方法,人民币面值有100元,50元,20元,10元,5元,1元,5角,1角,而程序也相应的设置了这些面值。只需要调用函数时传入您想要找零的金额,程序会自动算各个面值的钱应该找多少张。如传入50元,则系统自动算出找零50元一张面值,如果传入60块7毛,则程序自动算出该找零50元一张,10元一张,5角一张,1角两张。

...

READ ALL

Python isinstance()判断对象类型

在Python中可以使用type()isinstance()这两个函数判断对象类型,而isinstance函数的使用上比type更加方便。

例子

# coding=utf-8
 
a = 10
 
def b():
  pass
 
print isinstance(a, (int, str))
print isinstance(a, (float, str))
print isinstance(b, (str, int))
 
class c:
  pass
 
obj = c()
 
print isinstance(obj, (c, int))

...

READ ALL

Python变量值交换

Python追求简洁,诞生不少运算赋值规则,力求从简,其中就包括两个或者多个变量交换值。

JavaScript语言中

// 声明变量
var a = 50
var b = 10

// 开始交换,先把其中一个值赋给临时变量,然后才能实现交换变量。
var tmp = a
a = b
b = tmp

Python中

# 在Python中,实现两个变量值交换非常方便

# 声明变量
a = 50
b = 10

# 开始交换变量
a, b = b, a

甚至可以多个变量同时交换

a = 50
b = 10
c = 20
c, b, a = a, b, c
一个运算符就搞定多个变量值互换!

...

READ ALL

Python写的一个自动售饮料小程序

写这个程序的时候,我已学习Python将近有一百个小时,在网上看到有人求助使用Python如何写一个自动售饮料的程序,就试试写一个实用的售货程序。当然,只是实现基本功能,欢迎高手指点,新手学习参考。

运行环境: Python 2.7

# encoding=UTF-8

loop = True
money = 0
while loop:
  x = raw_input('提示:请投入金币,结束投币请按"q"键')
  if x == 'q':
    if money == 0:
      print '错误:您未投入过纸币,请至少投入一张纸币后才能选购商品'
    else:
      print '提示:您已结束投币,将进入购买商品操作界面'
      loop = False
  else:
    try:
      x = int(x)
      money += x
      print '提示:您此次投币', x, '元人民币,您一共投币', money, '元人民币'
    except Exception, e:
      print '错误:您的金币系统不识别,请重新投币,谢谢!'

GoodList = {'可口可乐': 2.5, '果粒橙': 3, '奶茶': 1.5, '加多宝': 4}

i = 0
print '请选择商品:'
for x in GoodList:
  i += 1
  print '编号', i, '商品名称', x, '价格', GoodList[x]
print

fanwei = range(len(GoodList))
loop = True
while loop:
  o = raw_input('提示:请输入您要购买的商品编号,按"q"键结束购买')
  if o == 'q':
    loop = False
  else:
    try:
      o = int(o)
      if o >= 1 and o <= len(GoodList):
        i = 0
        for x in GoodList:
          i += 1
          if i == o:
            if money >= GoodList[x]:
              money -= GoodList[x]
              print '提示:您购买的商品是:', x, ',价格:', GoodList[x], ',您还剩余:', money, '元人民币'
              if money == 0:
                loop = False
            else:
              print '错误:您的余额', money, '元已不足购买此商品', x, '[', GoodList[x], '元]'
      else:
        print '错误:您输入的商品编号不存在,请重新输入'
    except Exception, e:
      print '错误:请输入正确的产品编号,谢谢合作!'

if money > 0:
  print '提示:系统将找您,', money, '元人民币,欢迎下次光临'
else:
  print '提示:您的余额已用完,欢迎下次光临'

...

READ ALL

Golang在for循环里修改值

Golang是有指针概念的,想写好这门语言,避免空指针的错误还是要花点功夫的。先看看例子

package main

import (
  "fmt"
)

type Student struct {
  Age int
}

func main() {

  arr := [3]Student{
    {
      Age: 10,
    },
    {
      Age: 15,
    },
    {
      Age: 20,
    },
  }

  for _, v := range arr {
    v.Age = 0
  }

  fmt.Println(arr)

}

...

READ ALL

Golang实现斐波那契

JavaScript,Python和PHP实现的都写过了,今天用Go再来一下

什么是斐波那契

斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........
这个数列从第3项开始,每一项都等于前两项之和

代码实现

package main

import (
  "fmt"
)

var (
  v1 = 0
  v2 = 0
)

func fibonacci() int {

  if v1 == 0 {
    v1 = 1
  } else {
    v1, v2 = v1+v2, v1
  }

  return v1
}

func main() {
  for i := 0; i < 10; i++ {
    fmt.Println(fibonacci())
  }
}

...

READ ALL