文档章节

核心编程第六章(下)

YuXingY
 YuXingY
发布于 2016/04/08 14:25
字数 504
阅读 6
收藏 0

6-13

def atoc(string):
    leng = len(string)
    if 'j' not in string:
        return complex(float(string))
    else:
        for i in range(-1,-leng-1,-1):
            if string[i] in ['+','-']:
                imag = float(string[i:-1])
                real = float(string[:i])
                print real,imag
                return complex(real,imag)
string = raw_input("your complex:")
print atoc(string)

6-14

import random

print """
there are three choices:
0--rock;
1--cloth;
2--scissors.
please choose (0, 1 or 2):
"""

choice=['rock','cloth','scissors']
dict={'scissors':['cloth','scissors','rock'],
'cloth':['rock','cloth','scissors'],
'rock':['scissors','rock','cloth']}

pe=int(raw_input("choice a number from '0,1,2':"))
pc=random.randint(-3,-1)
print "your choice:", choice[pe]
print "computer's choice:", dict[choice[pe]][pc]

print cmp(-2,pc)
import random

print """
there are three choices:
3--cloth;
2--rock;
1--scissors.
please choose (1, 2 or 3):
"""
    
possiresult = {'1':[2,1,3],'2':[3,2,1],'3':[1,3,2]}
result = ['lose', 'get a draw', 'win']

pe = raw_input('your choice: ')
pc = random.randint(1,3)


print "computer's choice: ", pc
print 'you', result[possiresult[pe].index(pc)]

使用字典可以有效减少 if 语句的使用。

这里给出两种算法,第一种直接规定计算机出 -2 为平,-3 玩家赢,-1 玩家输。因为玩家胜的概率为1/3,所以此法可算作

一种作弊算法,第二种是真正的符合条件的算法。

6-15

month = {0:0,  1:31, 2:28, 3:31, 4:30,  5:31, 
         6:30, 7:31, 8:31, 9:30, 10:31, 11:30, 12:31}

print """
input your first date and second date like this:

2009/04/23
(year/month/day)
"""

firstdate  = raw_input("your first date: ").split('/')

seconddate = raw_input("your second date: ").split('/')


startyear = int(firstdate[0]); stopyear = int(seconddate[0])

startmonth = int(firstdate[1]); stopmonth = int(seconddate[1])

startday = int(firstdate[-1]); stopday = int(seconddate[-1])


def Pastmonths(themonth, theyear):
    Pm = 0
    if yearjudge(theyear) == 366:
        month[2] = 29
    for i in range(themonth):
        Pm += month[i]
    return Pm


def Pastyear(startyear, stopyear):
    Py = 0
    for i in [0]+range(startyear, stopyear):
        Py += yearjudge(i)
    return Py


def yearjudge(theyear):
    if theyear == 0:
        return 0
    else:
        if (theyear % 4 == 0 and \
           theyear % 100 != 0) or \
           theyear % 400 == 0:
            return 366
        else:
            return 365


def thesum(startmonth, stopmonth, startyear, 
           stopyear, startday, stopday):
    monthssum = Pastmonths(stopmonth, stopyear) - Pastmonths(startmonth, startyear)
    yearsum   = Pastyear(startyear, stopyear)
    daysum    = stopday - startday
    result    = yearsum + monthssum + daysum
    return result
    

print thesum(startmonth, stopmonth, startyear, 
       stopyear, startday, stopday)

此例中需要用户输入计算需要的两个日期。

6-19

seq = input("your seq: ")
lines = int(raw_input("how many lines: "))
per_line_num = len(seq)/lines
m = 0;n = per_line_num
for i in range(lines-1):
    print seq[m:n]
    m += per_line_num
    n += per_line_num
print seq[n-per_line_num:]


© 著作权归作者所有

YuXingY
粉丝 1
博文 44
码字总数 18413
作品 0
太原
私信 提问
javascript入门经典【推荐】—新手必备、零基础学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a125138/article/details/7819466 本书目录 第一章: JavaScript语言基础第二章: JavaScript内置对象 第三章...

续写经典
2012/08/01
0
0
13篇文章,教你学会ES6知识点

ES6 深入理解ES6》学习笔记 本文用于汇总链接到各个子章节的内容,github 欢迎大家题issues和PR,如果对你有帮助,也可以给 star 支持 :) 目录 第一章 块级绑定 第二章 字符串和正则表达式 ...

你听___
2018/05/08
0
0
算法-第四版习题索引汇总

算法-第四版习题索引汇总 持续更新中。。。 第一章 基础 算法-第四版-1.1 基础编程模型-习题索引汇总 算法-第四版-1.2 数据抽象-习题索引汇总 算法-第四版-1.3 背包、队列和栈-习题...

himayan46
2016/09/28
0
0
【备忘】2018年最新FFmpeg音视频教程视频

百度网盘 第一章 音视频行业的前景及应用场景第二章 FFmpeg处理流程及常用命令第三章 FFmpeg之C语言及VIM第四章 FFmpeg之C语言基础第五章 FFmpeg多媒体文件处理第六章 FFmpeg编解码案例第七章...

javail
2018/11/08
306
0
JavaScript 入门教程--WisdomPlanet-Javascript-Primer

WisdomPlanet-Javascript-Primer 是智慧星球 Javascript 入门教程。 本教程写给:正准备踏入编程之路或对 Javascript 感兴趣的同学 作者 念念之间 版权声明 本文允许您用于非商业用途,若有商...

念念之间
2015/04/01
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[3]:自定义代币

原文作者:Xuejie 原文链接:https://xuejie.space/2019_09_06_introduction_to_ckb_script_programming_udt/ Nervos CKB 脚本编程简介[3]:自定义代币 CKB 的 Cell 模型和 VM 支持许多新的用...

NervosCommunity
52分钟前
4
0
通过OAuth2.0 获取授权访问SF 用户数据

通过OAuth2.0 获取授权访问SF 用户数据 OAuth2.0 相关知识 深入了解 Salesforce 中的 OAuth 2.0(SF官方) OAuth 2.0 的一个简单解释(阮一峰大神) OAuth 2.0 的四种方式(阮一峰大神) GitHub OA...

在山的那边
58分钟前
7
0
编写程序:从键盘上接受一个三位数(首先要确保是三位数),计算出各位之和输出。

#include<stdio.h> int main() { int a,sum=0; printf("请输入一个三位数:\n"); scanf("%d",&a); sum=a/100+a%100/10+a%10; printf("这三个数的和:%d",sum); return 0; }......

201905021729吴建森
今天
7
0
如何离开/退出/停用Python virtualenv

我正在使用virtualenv和virtualenvwrapper。 我可以使用workon命令在virtualenv之间切换。 me@mymachine:~$ workon env1(env1)me@mymachine:~$ workon env2(env2)me@mymachine:~$ workon e......

技术盛宴
今天
7
0
成长之路 万事坚持难

任何事情开了头,想要更好的发展下去,不忘初心,就一定要坚持下去。 以前自己坚持了一些事情,比如早睡不吃东西,由于中途断了,没有及时止损,导致又接着恶习断了几天。所以 及时的反省和调...

T型人才追梦者
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部