美文网首页
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