Press "Enter" to skip to content

Month: July 2017

使用if结构的小游戏

if语句的规则:

  1. 每一条if语句必须包含一个else;
  2. 如果这个else永远都不应该被执行到,因为它本身没有任何意义,那么你必须在else后面使用一个叫做die的函数;
  3. if语句嵌套不要超过两层;
  4. 将if语句当做段落来对待;
  5. 布尔测试应当简单,如果复杂,则要将运算先放到一个变量里面,并且为变量值取一个好名字。

循环的规则

  1. 只有在循环中永不停止时使用while循环;
  2. 其他类型的循环都使用for循环;

调试的技巧

  1. 不要使用调试器;
  2. 最好的方法市使用print将想要检查的关键环节变量打印出来;
  3. 让程序一部分一部分的运行起来,不要等一个很长的脚本写完后才去运行它,写一点、运行一点、修改一点。

《笨办法学Python》习题35

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from sys import exit

def gold_room():
    print "这是一个堆满了金子的房间。你想拿多少?"

    next = raw_input("> ")
    if "0" in next or "1" in next:
        how_much = int(next)
    else:
        dead("哥们,赶紧敲个数!")

    if how_much < 50:
        print "乖娃子,心不黑。\n拿着金子回家吧!"
        exit(0)
    else :
        dead("人心不足蛇吞象,去死吧!")

def bear_room():
    print "这边有一个熊窝"
    print "大黑熊正在大快朵颐的嚼蜂蜜。"
    print "在熊熊的背后就是通向另一间屋子的门。"
    print "你敢走向大熊么?"
    bear_moved = False

    while True:
        next = raw_input("> ")

        if next == "拿走蜂蜜":
            dead("熊熊发现了你,然后猛扑了过来撕掉了你的脸。你挂点了!")
        elif next == "嘲笑熊熊" and not bear_moved:
            print "大黑熊离开了门口,你赶紧夺门而逃。"
            bear_moved = True
        elif next == "嘲笑熊熊" and bear_moved:
            dead("大熊咆哮着撕掉了你的大腿。")
        elif next == "开门" and bear_moved:
            gold_room()
        else:
            print "我不知道发生了什么!"

def cthulhu_room():
    print "这里住着一个恐怖的克苏鲁!"
    print "在你彻底崩溃之后会在这里饿死!"
    print "你选择逃跑,还是吃掉你的脑袋?"

    next = raw_input("> ")

    if "逃跑" in next:
        start()
    elif "脑袋" in next :
        dead("尝起来还不错……")
    else:
        cthulhu_room()

def dead(why):
    print why, "你玩完了!"
    exit(0)

def start():
    print "你不幸掉到了一个黑漆漆的洞窟里面……"
    print "在你的面前有两扇门,一个在左,一个在右。"
    print "你选择哪一边?"

    next = raw_input("> ")

    if next == "左":
        bear_room()
    elif next == "右":
        cthulhu_room()
    else:
        dead("懦弱而不敢抉择的你饿死在这无尽的黑暗之中……")

start()

德国特强消石素是假药

由于夫人最近得了胆结石,大舅子就从香港给夫人买了一瓶“德国特强消石素”。估计是被那边的药店销售给骗了。

没有品牌名称、没有生产方信息、没有说明书、没有功效说明。号称德国产品,却全身都是英文标识。只有一个德国汉堡的制造商的信息。查询该厂商网站只有生产一些减肥、减脂类保健品的信息,没有药物商品信息。

产品成分完全就是大豆卵磷脂的配方表,Dietary Supplement也表明这是一个膳食添加剂。

虽然这玩意吃不坏人,或许还真有一点点功效,但270块买150粒三无卵磷脂明摆着在骗人。

数据和C

/* rhodium.c 用金属铑衡量您的体重 */
#include<stdio.h>
int main(void){
    float weight;
    float value;
    printf("Are you worth your weight in rhodium?\n");
    printf("Let's chek it out.\n");
    printf("Please enter your weight in pounds:");

    scanf("%f", &weight);

    value = 770 * weight * 14.5833;
    printf("Your weight in rhodium is worth $%.2f.\n",value);
    printf("You are easily worth that! If rhodium prices drop.\n");
    printf("eat more to maintain  your value.\n");

    return 0;
}

变量与常量的区别在于变量的值可以在程序执行过程中变化与指定,而常量不可以。


整数和浮点数的区别:
1. 整数没有小数部分、浮点数可以有小数部分;
2. 浮点数表示范围大于整数;
3. 对于一些算术运算,浮点数会损失更多精度;
4. 浮点数往往只是实际值的近似;
5. 浮点运算通常比整数运算慢。


int类型市有符号整数,一般取值范围市-32768~32768.系统通过使用一个只是正负符号的特定位来表示有符号整数。

使用printf()打印语句时,切记每个要显示的值都必须对应自己的格式说明符,并且显示值的类型要同说明符相匹配。


/* bases.c -- 十进制书以十进制、八进制、十六进制形式输出 */
#include<stdio.h>
#include<stdlib.h>
int main(void){
    int x;
    printf("Please input your number :\n");
    scanf("%d",&x);

    printf("dec = %d; octal = %o; hex = %x \n",x, x, x);
    printf("dec = %d; octal = %#o; hex = %#x \n",x, x, x);

    return 0;
}

/*charcode.c -- 显示一个字符值的编码值*/
#include<stdio.h>
int main(void){
    char ch;
    ch = getchar();

    printf("The code for %c is %d.\n", ch, ch);
    return 0;   
}

关键字

int,long,short,unsigned,char,double,signed,_Bool,_Complex,_Imaginary

有符号整数

  • int
  • short 或者 short int
  • long 或者 long int
  • long long 或者 long long int

无符号整数

只有0和正值
+ unsigned

字符

  • char

布尔值

_Bool

实浮点数

  • float
  • double
  • long double

复数和虚浮点数