美文网首页
python基础一

python基础一

作者: 北沐城歌__ | 来源:发表于2021-02-02 16:04 被阅读0次

    字符串切换

    py_str = 'python'
    print(len(py_str)) # 字符串长度
    py_str[0] 取出第一个字符,[ ] 中的 数字成为索引,或下标。
    py_str[len(py_str) - 1] # py_str[5],取最后的一项
    py_str[-1] #最后一项的下标是 -1
    py_str[-len(py_str)] #最左一项的是-6
    py_str[2:4] # 切片,2对应t包含,4对应的o不包含,所以结果为th
    py_str[2:] # 结尾不写,表示到取到结尾的部分
    py_str[0:2] # py
    py_str[:2] # py
    py_str[:] #python
    py_str[: : 2] #2表示的步长值 ,pto
    py_str[: : -1] #步长值为负,表示从右往左进行取值

    alist = ['bob','alice',10,20,[1,2,4,44]]
    print(len(alist))   # 5
    print(alist[:2])  #['bob', 'alice']
    'bob' in alist  # true
    alist1=['tom']  + alist
    print(alist1)   # ['tom', 'bob', 'alice', 10, 20, [1, 2, 4, 44]]
    alist.append(100)  #['bob', 'alice', 10, 20, [1, 2, 4, 44], 100]  尾部追加
    
    字典
    • 字典是由键-值(key-value)对构成的映射数据类型


    IF 判断条件

    任何可以把数据类型当成判断的条件
    任何值为0的数字都是False,否则是True
    任何非空对象都是True,否则是False

    if  0.1:
            print('yes')  #yes
    if ' ':
            print('yes')  #yes
    if '':
            print('yes')  #null
    if '0.0':
            print('yes')  #null
    
    
    • 石头剪刀布的游戏
    import random
    all_choice = ['石头','剪刀','布']
    computer = random.choice(all_choice)
    # player = input('请出拳(石头/剪刀/布):')
    prompt =  '''
    (0) 石头
    (1) 剪刀
    (2) 布
    请选择(0/1/2/)'''
    ind = int(input(prompt))
    player = all_choice[ind]
    winlist = (['石头','剪刀'],['剪刀','布'],['布','石头'])
    if player == computer:
        print('平局')
    elif [computer,player] in winlist:
        print('\033[32;1myou  win\033[0m')
    else:
        print('\033[32;1myou lost\033[0m')
    print('你出了:%s,计算机出的是:%s' %(player,computer))
    
    • While 判断条件
      当语句不断的重复执行的时候需要用到while循环
      语句会不断的被执行,直到表达式的值为0或者是False才可以停止
    result = 0
    counter = 1
    while counter< 101:
        result += counter
        counter += 1
    print(result)
    -----------------------------------
    while True:
            yn = input('continue(y/n)')
            if yn in ['n','N']:
                break
            print('running.....')
    
    
    • 猜数字的大小
    import random
    result = random.randint(1,10)
    counter = 0
    while True:
        answer = int(input('请输入你的值:'))
        if answer > result:
            print("猜大了")
        elif answer < result:
            print("猜小了")
        else:
            print("猜对了")
            break
        counter +=1
    print(result)
    print(answer)
    -----------------------------------
    import random
    result = random.randint(1,100)
    running = True
    while running:
        answer = int(input("guess the number:"))
        if answer > result:
            print('猜大了,请从新猜测')
        if  answer < result:
            print('猜小了,请继续猜')
        if answer == result:
            print('猜对了')
            running = False
        print(result)
    -------------------------------------
    import random
    result = random.randint(1,10)
    counter = 0
    while counter<3:
        answer = int(input('请输入你的值:'))
        if answer > result:
            print("猜大了")
        elif answer < result:
            print("猜小了")
        else:
            print("猜对了")
            break
        counter +=1
    else:
        print(result)
    
    For 循环条件
    • python 中的for接收可迭代对象(例如序列或迭代器)作为其参数,每次迭代其中一个元素
    • 与 while 循环一样,支持break,continue,else语句
    • 一般情况下,循环次数未知采用,while循环,循环次数已知,采用for循环。
    astr = 'abc'
    alist = ['bob','alice']
    atuple = (10,20,30)
    adict = {'name':'NI(⊙o⊙)文亮','age':28}
    for c in astr:
        print(c)  # a b c 
    for name in alist:
        print(name)  # bob   alice
    for i in atuple:
        print(i)  # 10,20,30 
    for key in adict:
        print('%s:%s' % (key,adict[key]))  # name : 文亮   age:28
    
    • Range函数
      for循环常与range函数一起使用
      range函数提供循环条件
      range函数的完整语法为:range(start,end,step = 1 )
    print(list(range(10))) # 10是结束位置,但不包含10,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(list(range(0,2))) # [0,1]
    print(list(range(1,10,2))) # [1, 3, 5, 7, 9]
    print(list(range(10,0,-1))) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    
    print([3 + i for i in range(10)])   #[3, 4, 5, 6, 7, 8, 9, 10, 11, 12] #循环控制3+i运行多少次 
    [3+2 for i in range(10)]  # 执行10次3+2 
    [3+i for i in range(10) if i %2 == 1] # 判断条件作为过滤依据
    ['192.168.1.%s' % i for i in range(1,255)]
    
    • 斐波那契数列
    1 2 3 5 8 13 21 
    fib = [0,1]
    l = int(input('length:'))
    for i in range(l - len(fib)):
        fib.append(fib[-1]+fib[-2])
    
    • 九九乘法表
    \t :代表着四个空格也就是一个tab
    \n:代表着换行
    
    for i in range(3):  #外层循环控制行
        for j in range(i+1): #内层控制某一行
          print('hello', end=' ')
        print()
    
    for i in range(1,10):
        for j in range(1,i+1):
            print('%s * %s=%s ' %(j,i,j * i),end=' ') 
        print()
    # print默认是打印一行,结尾加换行。end=' '意思是末尾不换行,加空格
    for i in range(1, 10):
        for j in range(1, i + 1):
            print('{}x{}={}\t'.format(j, i, i * j), end='' )
        print('\n')
    
    for i in range(1, 10):
        for j in range(1, i + 1):
            print(f'{i}x{j}={i*j}', end='\t' )
        print(end='\n')
    
    1*1=1  
    1*2=2  2*2=4  
    1*3=3  2*3=6  3*3=9  
    1*4=4  2*4=8  3*4=12  4*4=16  
    1*5=5  2*5=10  3*5=15  4*5=20  5*5=25  
    1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
    1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
    1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
    1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81 
    
    文件对象访问模式
    • 打开文件
    fobj = open('/tmp/mima','w')
    fobj.write('hello world!\n')#写数据时,先放在缓冲区
    #当数据量达到一定程度时,自动写入磁盘
    fobj.flush()  #立即将数据同步至磁盘
    fobj.close() #关闭文件时,数据自动写入磁盘
    with open('/tmp/mima')  as fobj:
       print(fobj,readline())
    fobj = open('/tmp/mima','rb')#非文本文件要加上b,文件文件也可以b
    fobj.tell()  #返回指针的位置
    a = sys.stdin.readline() # 读取键盘输入,回车也作为一个字符\n读入
    print(a)
    
    复制函数(传参)
    利用函数来拷贝相关的两个文件的信息等
    import sys
    def copy(src_fname,dst_fname):
      src_fobj = open(src_fname,'rb')
      dst_fobj = open(dst_fname,'wb')
    
      while True:
          data = src_fobj.read(4096)
          if not data:
              break
          dst_fobj.write(data)
      src_fobj.close()
      dst_fobj.close()
    copy(sys.argv[1],sys.argv[2])
    [root@192 python]# python cp_func.py  tmp.123456  tmp.123
    
    • 默认参数
      *默认参数就是声明了默认值的参数
      因为给参数赋予了默认值,所以在函数调用时,不向该参数传入值也是允许的
    def  pstar(num =30):
     print("*" * num)
    if __name__ == '__main__':
      pstar()
    

    相关文章

      网友评论

          本文标题:python基础一

          本文链接:https://www.haomeiwen.com/subject/amzetltx.html