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)