Python编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python编程相关的知识,希望对你有一定的参考价值。

特点:

(1):易学:python关键字少、结构简单、语法清晰

       易读:没有其他语言通常用来访问变量、定义代码块和进行模式匹配的命令式符号

(2):内存管理器:内存管理是由python解释器负责的

>>> py_str = 'python'

>>> len(py_str)-----输出变量字符的长度

6

>>> 't' in py_str---------“t”是否在py_str变量中

True

>>> 'th' in py_str

True

>>> 'to' not in py_str

True

>>> py_str[0]----从左向右取出第一个字符

'p'

>>> py_str[5]

'n'

>>> py_str[-1]

'n'

>>> py_str[3:]

'hon'

>>> py_str[3:5]

'ho'

>>> py_str[1:6]

'ython'

>>> py_str[0:6]

'python'

>>> py_str[0:]

'python'

>>> py_str[:2]

'py'

>>> py_str[::2]---------步长值

'pto'

>>> py_str[::3]

'ph'

>>> py_str[1::3]

'yo'

>>> py_str[::-1]

'nohtyp'

>>> py_str + '   cool'------相加表示拼接

'python   cool'

>>> py_str.upper()------转换大写

'PYTHON'

>>> py_str.lower()------转换小写

'python'

>>> py_str.isdigit()----判断是否是数字

False

>>> py_str.center(50, '#')------------居中对齐

'######################python######################'


>>> py_str.ljust(50)------左对齐

'python  


列表

>>> alist = [10, 20, 'dc', 'alice', [1,3]]



字典表示

>>> adict = {'name': 'hanjie', 'age':22}

>>> len(adict)---------两个字符长对,看中间的逗号分隔

2

>>> adict--------箭直对类型

{'age': 22, 'name': 'hanjie'}

>>> 'name' in adict-----判断'name'是否在adict

True

>>> adict['age'] = 21--------改变'age'的值

>>> adict

{'age': 21, 'name': 'hanjie'}

>>> adict['email'] = '[email protected]'

>>> adict

{'age': 21, 'name': 'hanjie', 'email': '[email protected]'}------增加变量


if语句:

#coding: utf8

import getpass------------------表示python中的一个模块

username = raw_input("请输入用户名: ")

passwd = getpass.getpass("请输入用户密码: ")---------第一个getpass表示模块,第二个表示模块中的一个方法

if username == "bob" and passwd == "123456":---------python中的并且和或者用“and”、“or”表示

    print "Login successful"

else:

    print "Login incorrect"


PYTHON解释器中的判断

>>> if 5 > 8:(python判断是必须要冒号分隔)、if、else是评级;两个print是一个评级;输入else时必须要用冒号分隔

...   print 'yes'

... else:

...   print 'no'

... 

no


在python中随机猜一个数:

#coding: utf8

import random

num = random.randint(1, 10)

answer = int(raw_input("请猜一个数: "))

if answer > num:

    print "猜大了"

elif answer < num:

    print "猜小了"

else:

    print "猜对了"

print num



Python中三引号的区别:列b = "hello,\n

                     world"     

c="""hello'

world!"""  #三引号就相当于双引号里面的\n,字符串越多\n就多,使用起来不方便,也不方便查看, 所以就使用三引号来实现


If语句的写法:

#coding: utf8

import random  #导入random模块,是产生随机数的模块

all_choices = ['石头', '剪刀', '布'] #定义一个列表,将选择添加在列表中

win_list = [['石头', '剪刀'], ['剪刀', '布'], ['石头', '布']] #定一个用户赢的列表,列表中的元素仍然是一个列表

prompt = """(0)石头  #定义一个变量,将提示语写入这个变量中

(1)剪刀

(2)布

请选择(0/1/2):"""

computer = random.choice(all_choices) #随机选一个值

ind = int(raw_input(prompt)) #因为输入的是字符串类型,所以将字符串转变为整型

player = all_choices[ind] #列表可以取下标,下标对应的列表中的值

print "Your choice: %s, Computer's choice: %s" %(player, computer) #提示信息,友好界面:相当于人出石头、计算机出布

if player == computer: #如果两个变量值相等

    print '\033[32;1m平局\033[0m' #输出平局

elif [player,computer] in win_list: #如果列表在win_list中

    print '\033[31;1m你赢了\033[0m'  #输入你赢了

else:

    print '\033[31;1m你输了\033[0m'  #输出你输了



pwin = 0  #人赢的次数

cwin = 0  #电脑赢得次数

import random

all_choices = ['石头', '剪刀', '布']

win_list = [['石头', '剪刀'], ['剪刀', '布'], ['石头', '布']]

prompt = """(0)石头

(1)剪刀

(2)布

请选择(0/1/2):"""

while pwin < 2 and cwin < 2: #人和电脑赢的次数都不够两次时就的循环下面语句

    computer = random.choice(all_choices)

    ind = int(raw_input(prompt))

    player = all_choices[ind]

    print "Your choice: %s, Computer's choice: %s" %(player, computer)

    if player == computer:

        print '\033[32;1m平局\033[0m'

    elif [player,computer] in win_list:

        pwin += 1

        print '\033[31;1m你赢了\033[0m'

    else:

        cwin += 1

        print '\033[31;1m你输了\033[0m'



Break语句的写法:

import random

num = random.randint(1, 10)


while True:

    answer = int(raw_input("请猜一个数: "))

    if answer > num:

        print "猜大了"

    elif answer < num:

        print "猜小了"

    else:

        print "猜对了"

        break

print num


For语句的写法:

import random

num = random.randint(1, 10)

for i in range(3):

    answer = int(raw_input("请猜一个数: "))

    if answer > num:

        print "猜大了"

    elif answer < num:

        print "猜小了"

    else:

        print "猜对了"

        break

else:

    print num

纯粹if语句结构

#coding: utf8

import random

computer = random.choice(['石头', '剪刀', '布'])

player = raw_input('请出拳头(石头/剪刀/布): ')

print "your choice: %s, Computer's choice: %s" %(player, computer)

if player == '石头':

    if computer == '石头':

        print '平局'

    elif computer == '剪刀':

         print '你赢了'

    else:

         print '你输了'

elif player == '剪刀':

     if computer == '石头':

         print '你输了'

     elif computer == '剪刀':

          print '平局'

     else:

          print '你赢了'

else:

     if computer == '石头':

         print '你赢了'

     elif computer == '剪刀':

          print '你输了'

     else:

          print '平局'

#coding: utf8

num = int(raw_input("请输入您的成绩: "))


if num >= 90:

    print "优秀"

elif num >= 80:

    print "好"

elif num >= 70:

    print "良"

elif num >= 60:

    print "及格"

else:

    print "你要努力了"


#coding: utf8

num = int(raw_input("分数: "))

if 60 <= num < 70:

    print '及格'

elif 70 <= num < 80:

    print '良'

elif 80 <= num < 90:

    print '好'

elif num >= 90:

    print '优秀'

else:

    print '你要努力了'

sum = 0

i = 1


while i <= 100:

    sum += i

    i += 1

print sum


while i <= 100:

    sum = sum + i

    i = i + 2

print sum


result = 0

counter = 0


while counter < 100:

    counter += 1

    if counter % 2 == 1:

        continue

    result += counter

print result


sum = 0

i = 2

while i <= 100:

    sum += i

    i += 2

print sum


生成八随机密码: for循环

import random

all_chs = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'

result = ''

for i in range(8):

    ch = random.choice(all_chs)

    result += ch

print result


调用函数生成8位随机密码

import random

import string


all_chs = string.letters + string.digits #表示大小写字母和数字的调用


def gen_pass(n=8):

    result = ''

    for i in range(n):

        ch = random.choice(all_chs)

        result += ch

    return result

if __name__ == '__main__':

    print gen_pass()

    print gen_pass(10)


将/bin/ls拷贝到/root/目录下,简单写法

f1 = open('/bin/ls')

f2 = open('/root/ls', 'w')


data = f1.read()

f2.write(data)


f1.close()

f2.close()


while语句的写法:

src_fname = '/bin/ls'  #定义源文件src_fname

dst_fname = '/root/ls' #定义目标文件dst_fname

src_fobj = open(src_fname)

dst_fobj = open(dst_fname, 'w')


while True:

    data = src_fobj.read(4096)

    if data == '':

        break

    dst_fobj.write(data)

src_fobj.close()

dst_fobj.close()



定义函数的调用的写法:

import sys

def copy(src_fname, dst_fname):


    src_fobj = open(src_fname)

    dst_fobj = open(dst_fname, 'w')


    while True:

        data = src_fobj.read(4096)

        if data == '':

            break

        dst_fobj.write(data)


    src_fobj.close()

    dst_fobj.close()

copy(sys.argv[1], sys.argv[2])



以上是关于Python编程的主要内容,如果未能解决你的问题,请参考以下文章

python编程题目,会的帮帮忙

Python资料学习《疯狂Python讲义》+《教孩子学编程Python语言版》+《Python编程导论第2版》

Python编程题汇总(持续更新中……)

python 编程问题..

Python黑帽编程2.1 Python编程哲学

分享《Python核心编程(第3版)》《Python编程入门(第3版)》高清中英文版PDF+源代码