列表的基本操作

看了看Github,上个commit还在17天前,不能这么废下去……

列表的基本操作

列表,可能不那么顾名思义,就是把一堆东西扔到一个表里……这个笑话有点冷。

与某些语言的数组不同,Python的列表是不要求数据类型相同的,有需要的话,str、int、float都可以往一个列表里塞。同样的,列表的创建方法也与变量赋值无异,例如:

>>> number = ['a',1,1.5]
>>> number
['a', 1, 1.5]

添加元素

向列表中添加元素主要有三种方法:一种是使用append方法,一种是使用extend方法,还有insert方法。

appendextend方法的区别在于,append是将内容作为一个元素添加到最后,而extend是用一个列表来扩展另一个列表。

>>> list = [1,2,3,4]
>>> list.append(5)
>>> list
[1, 2, 3, 4, 5]
>>> list.extend([6])
>>> list
[1, 2, 3, 4, 5, 6]
>>> list.append([1,2,3])
>>> list
[1, 2, 3, 4, 5, 6, [1, 2, 3]]
>>> list.extend([1,2,3])
>>> list
[1, 2, 3, 4, 5, 6, [1, 2, 3], 1, 2, 3]

insert方法可以将一个元素插入到列表的中间。语法为(index,object),注意从0开始数。

>>> list = [1,2,3]
>>> list.insert(2,'a')
>>> list
[1, 2, 'a', 3]

获取元素

与字符串类似,获取元素可以使用name[n]

>>> list = [1,2,3]
>>> list[1]
2

类似的,获取列表中的列表的元素,那就再加一个[n]。

>>> list = [1,2,3,[1,2,3]]
>>> list[3][0]
1

也可以用于快速交换元素位置,比如:

>>> list=[1,2,3,4]
>>> list[0],list[2] = list[2],list[0]
>>> list
[3, 2, 1, 4]

删除元素

删除元素可以使用remove方法或者delremove方法根据值来删除元素,del可以按位置删除元素,也可删除整个列表(或是说变量)。

>>> list = ['a',1,'b',2]
>>> list.remove('a')
>>> list
[1, 'b', 2]
>>> del list[0]
>>> list
['b', 2]

另外可以用pop方法,pop可以“取出”列表中的元素。

>>> list = [1,2,3,4]
>>> list.pop()
4
>>> list
[1, 2, 3]
>>> list.pop(1)
2
>>> list
[1, 3]

 

水仙花数问题

来自Wikipedia

数论中,水仙花Narcissistic number[1][2],也被称为超完全数字不变数pluperfect digital invariant, PPDI[3]自恋自幂数阿姆斯壮阿姆斯特朗数Armstrong number[4] ,用来描述一个N位非负整数,其各位数字的N次方和等于该数本身。

 

继续阅读“水仙花数问题”

猜数字4.0

二话不说上源码。

#! /usr/bin/python
"""--- Game V4 ---"""
import random
Secret = random.randint(0,50)
# 由random模块提供,生成一个随机整数
Times = 5
TypeAnswer = input("猜数字,0-50之间,有五次机会\n")
while not TypeAnswer.isdigit():                       
# not表示反转布尔值
# str.isdigit判断这个str中是否全为数字
# 类似的,同时还有isalnum判断所有字符都是数字或字母、isalpha判断全是字母
# islower判断全部小写字母、isupper判断全部大写字母、istitle判断全部首字母大写
# isspace判断全部为空白字符
    print("只能输入阿拉伯数字")
    TypeAnswer = input("重新输入一遍\n")
else:
    Guess =int(TypeAnswer)
    # 将str转为int,同样的,还有float、str两个函数
    while Guess != Secret:
        Times = Times - 1
        while not TypeAnswer.isdigit():
            print("只能输入阿拉伯数字")
            TypeAnswer = input("重新输入一遍\n")
        else:
            if  Times > 0:
                TimesRemin = str(Times)
                print("你还有"+ TimesRemin +"次机会")
                # 字符串的拼接
                if Guess > Secret:
                    print("大了")
                else:
                    print("小了")
                TypeAnswer = input("重新猜一遍\n")
                Guess = int(TypeAnswer)
                # 重新为TypeAnswer赋值
            else:
                print("机会用完了~")
                Answer = str(Secret)
                print("正确答案是" + Answer)
                break
    else:
        print("你答对了")



 

Say Hello to Python

三分钟热度的新对象……

Hello Python

Hello World太俗,来一句Hello Python。

>>> print("Hello Python!")
Hello Python!

“Hello Python!”是一个string。
那如果我要写:「”PHP”是最好的语言」呢?
可以使用\转义。

>>> print("\"PHP\"是最好的语言")
"PHP"是最好的语言

运算

>>> 3+5
8

>>> print(3+5*5+5-5)
28

这计算器好像还挺好用的。
甚至string都可以和int做乘法运算。

>>> print("a string\n"*3)
a string
a string
a string

不过除了乘法之外都是不行的,浮点数也不行。

>>> print("a string\n"+3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be str, not int
>>> print("a string\n"-3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'int'
>>> print("a string\n"/3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'str' and 'int'
>>> print("a string\n"*3.1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'

不过仔细想想,对string做除了整数乘法的其他运算都感觉怪怪的……