首页 > 技术文章 > Python基础(一)

KongHuZi 2019-05-14 16:06 原文

1.基本语法

(1)加法的两端只能是数字或者字符串

     如 print( 'kkk' + 12 + 'kkk' ) 是错误的,可修改为 print( 'kkk' + str(12) + 'kkk' ) 。类似 str() 的函数还有 int(),float()。

print(str(0))    #输出字符串的0

print(int('33'))

print(int(3.26))  #输出3

print(float(3.402))

print(float(23))   #输出23.0

print(int(input()))

(2)在用于条件时,0、0.0、和 ' ' (空字符串) 被当作False,其他值被当作 True

name = ''
while not name:    #只有输入有效的名字才跳出循环
    name = input()
print('your name:' + name)

 

name = 0
while not name:
    name = int(input())
print('最终结果:' + str(name))   #输入非0整数结束

 

2.数学操作符

  • 指数:**。如 2 ** 3 = 8。
  • 整除://。如 6 // 4 = 1。
  • 除法:/。如 6 / 4 = 1.5。
  • * 操作符表示乘法,但是当 * 和字符串连用时,表示将字符串复制的操作。如
 print('Jack' * 2) #输出JackJack。同时注意 只能同整数配套使用
  • 其他操作同 C 语言一致。

 

3.布尔操作符

  and,not,or  代替了 C 语言的 && 和 ||

 

4.控制流

(1)if-else  关键是通过控制代码块的缩进距离,Python没有花括号

name = 'Jack'
age = 2
if(name == 'Jack'):
    print('Hello,Jack')
    if(age > 10):
        print('>10')
    else:
        print('<10')
else:
    print('Who are you?')

 

 (2)while 循环

age = 5
while age < 9:
    age += 1  #不支持 age++
    print('age: ' + str(age))
    if(age == 7):
        break
print('end')

 

sum = 0
while True:
    if sum == 3:
        print('错误次数超过三次!')
        break
    else:
        name = input()
        if name != '11':
            sum += 1
            print('用户名错误,重新输入用户名:')
            continue
        else:
            print('用户名正确,输入密码:')
            pwd = input()
            if pwd != '11':
                print('密码错误,重新输入用户名:')
                sum += 1
                continue

   

(3)for 循环。range(开始,停止【不包括它】,步长)

i = 0
for i in range(0,10,2):    
    print(i)    #0,2,4,6,8

 

  

5.字符串(也是列表)

(1)字符串相等否,可直接用 == 或者 != 判断

a = 'q'
s = 'qq'
if a != s:
    print("yes")
else:
    print("no")

  

(2)字符串的截取。同 C 语言的差别就是标号的不一致

  

  

 

 

 

 

如上图所示,即 ‘abcdef’ 的下表是 0~5 或者 -6~-1。同时规则也常用:前闭后开。

str = 'abcdef'
print(str[0] + str[2])  #ac
print(str[-6] + str[-1]) #af
print(str[0:]) #abcdef
print(str[-3:]) #def
print(str[0:3]) #abc
print(str[3:2])  #无结果  不能逆序
print(str[1:-1])  #bcde
print(str[-6:2])  #ab
print(str[:2]) #ab
print(str[:]) #abcdef

 

(3)同样可使用  in  和 not in 操作符

str = '12345ddd6789'

print('ddd' in str) #True
print('012' not in str)  #True

 

  

(4)数组是可变的,如append、insert、del等,但是字符串是 “不可变” ,如 str[0] = 'd' ,改变的方式是通过切边方式

str = '123456789'

str2 = str[0:2] + 'add' + str[6:8]
print(str2)  #12add78

 

(5)字符串的输入。输入单引号、取消转义、多行字符串

#输入单引号
str = 'daf\'fdaf'
str2 = "fdaf'fda"
#因为\是转义符的意思,如果取消转义。即直接输出\
str3 = r'daf\'fdaf'
print(str, str2, str3, sep='*****')

#多行字符串。文本什么格式,输出也什么格式,一模一样
str4 = '''fdasfads\sssa
                dsf'fdsa"\dfadasf
fadsfadsf'''
print(str4)

 

 

(6)常用方法 upper()、lower()、isupper()、islower()。这些方法都不是改变字符串本身,而是返回了一个新字符串

  和数组的例如 a.insert(0,33) 是不一样的

str = 'fdaf898fdsa'
print(str.islower())
str = str.upper()
print(str) #FDAF898FDSA

  

(7)starswith()、endswith()。字面意思

(8)join()、split() 方法。前者参数是一个字符串列表返回一个列表通过空格字母等串接之后的字符串。后者恰相反,传入字符串 -->> 字符串列表

str = {'ewe', 'wrewrw', '323'}
str = '&'.join(str)
print(str)

str2 = str.split('&')
print(str2)

str3 = '''fadsfas   
fdsaf
fdsafffffff121ddds'''
print(str3.split('\n'))  #按照行进行分割

  

(9)rjust()、ljust()、center()。对其文本用,前两者为右、左对齐,不足之处补充空格

str = '12345'
print(str.rjust(10))
print(str.ljust(10))
print(str.center(10,'*'))  #居中 左右补充

 

(10)strip()、rstrip()、lstrip()

   删除两端空格,单删除右 / 左边空格。又如:str.strip( ' abc ')。指只删除字符 ’abc‘ 的两端空格

(11)isdecimal()、isalpha()、isalnum()。

  是否只包含数字字符且非空,只包含字母字符且非空,只包含字母和数字且非空。

 

  

6.函数

(1)函数定义 def + 函数名(传参)

def hello(name):    #传递的参数
    print('你输入了:' + name)

i = 0
for i in range(0,3,1):
    hello(input())

 

import random   #导入函数,分为 import 和 from import(见补充)

def getNumber(j):
if j == 1:
print('随机数:' + str(j))
return 'A'
elif j == 2:
print('随机数:' + str(j))
return 'B'
else:
print('随机数:' + str(j))
return 'C'

i = 0
for i in range(0,3,1):
r = random.randint(1,3) #random.randint函数是产生 1<=*<=3 的整数
print(getNumber(r))

   

(2)print() 函数。print() 函数返回值为None

temp = print('测试返回值')
if temp == None:
    print('yes',str(temp))

  print() 函数输出形式:

print('1','2','3') #空格自动分割

print('1', end='')
print('2')   # print 函数自动会加入换行符,end = '' 就制止

print('1','2','3',sep='..')  #输出通过 ‘..’ 分割

 

(3)global 语句。同 C 语言中一致,Python 中也分局部和全局变量,如果想通过局部函数修改全局变量,可以通过 global 函数

def k1():
    global  t   
    t = '已经修改1'

def k2():
    t = '已经修改2'

t = '原始'
print(t)  #原始
k2()
print(t)  #原始
k1()
rint(t)p  #已经修改1

   Python 中一个变量只能是局部或者全局变量,如

def k():
    print(egg)  #调用 K() 函数时,egg此句是全局变量,但在下一句中 egg 被重新声明被认为是局部变量。报错
    egg = '123'  

egg = '444'
k()

 

(4)try...except..  函数

def k(divide):
    try:
        return 32 / divide
    except:
        return '报错'

print(k(3))
print(k(2))
print(k(0))

 

(5)函数返回多个值。书写形式上简单,但是返回多个值本质上返回的是一个元组,但是可通过多重赋值接受

def test():
    return 'dfsa', 1221

a, b = test()
print(a, b)  #dfsa 1221

 

(6)设置默认参数

def test(t, n=2):   #如果传入2个参数,则n=2无效。否则n=2有效。默认参数必须放后面,否则会产生歧义,如此处,会分不清是t or n 没有传入参数
    print(t * n)

test(2, 5)
test(2)

 

  一个坑

推荐阅读