day01-Python基础
一:变量
声明变量
>>> name = "Guido"
声明一个变量,变量名为:name 变量name的值为:"Guido"
#可变的量
#存储数据
#避免重复代码
变量定义的规则
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名:['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
- Age_of_guido #一般首字母大写,用于定义类;AGE_OF_GUIDO#大写,一般用于定义常量
变量的赋值
>>> name2 = name
>>> print(name,name2)
Guido Guido
>>> name = "Linus"
>>> print(name,name2)
Linus Guido
#%s %d %f %r
>>> msg = "my name is %s and age is %s" %("Guido",45)
>>> print(msg)
my name is Guido and age is 45
>>> msg = "my name is %s and age is %d" %("Guido",45)
>>> print(msg)
my name is Guido and age is 45
>>> msg = "my name is %s and age is %f" %("Guido",45)
>>> print(msg)
my name is Guido and age is 45.000000
二:数据类型
数字:
int(整型)、long(长整型) float(浮点型)、complex(复数) a = 27 数字 a = "27" 字符串
布尔&字符串:
布尔值 (真或假 Ture False 1或0) 字符串 字符串常用功能: 移除空白、分割、长度、索引、切片、格式化输出 移除空白: >>> name = " Guido!" >>> name ' Guido!' >>> name.strip() 'Guido!' 长度: >>> len(name) 15 索引: >>> name[9] 'G' >>> name[10] 'u' >>> name[11] 'i' >>> name[12] 'd' >>> name[13] 'o' 切片: >>> name[9:13] 'Guid' 顾头不顾尾 >>> name[9:14] 'Guido' 字符串拼接: >>> msg = "my name is " + name >>> msg 'my name is Guido' 格式化输出: >>> name = "Guido" >>> age= 56 >>> msg = "my name is %s and i am %s years old!" % (name,age) >>> msg 'my name is Guido and i am 56 years old!'
列表:
>>> names = ['linus','scott','guido'] >>> names[0] 'linus' >>> names[1] 'scott' >>> names[2] 'guido' 还可以反向取值 >>> names[-3] 'linus' 列表修改: >>> names[-3] = "jack" >>> names ['jack', 'scott', 'guido'] 追加数据: >>> names.append('tom') >>> names ['jack', 'scott', 'guido', 'tom'] 插入数据: >>> names.insert(2,'larry') >>> names ['jack', 'scott', 'larry', 'guido', 'tom'] 删除数据: >>> del names[2] >>> names ['jack', 'scott', 'guido', 'tom'] >>> names.remove('tom') >>> names ['jack', 'scott', 'guido'] 修改数据: >>> names ['jack', 'scott', 'guido', 'rain', 'rose'] >>> names.index('guido') 2 >>> names[2] = "elice" >>> names ['jack', 'scott', 'elice', 'rain', 'rose'] >>> names[names.index('rain')] = 'RAIN' >>> names ['jack', 'scott', 'elice', 'RAIN', 'rose'] 统计数据: ['jack', 'scott', 'elice', 'RAIN', 'rose', 'scott', 'scott'] >>> names.count("scott") 3 >>> names.index("scott") 1 排序数据: >>> names.sort() >>> names ['RAIN', 'elice', 'jack', 'rose', 'scott', 'scott', 'scott'] >>> names.insert(2,"!") >>> names.sort() >>> names ['!', 'RAIN', 'elice', 'jack', 'rose', 'scott', 'scott', 'scott'] >>> names[2] = '5' >>> names ['!', 'RAIN', '5', 'jack', 'rose', 'scott', 'scott', 'scott'] >>> names.sort() >>> names ['!', '5', 'RAIN', 'jack', 'rose', 'scott', 'scott', 'scott'] >>> names.reverse() >>> names ['scott', 'scott', 'scott', 'rose', 'jack', 'RAIN', '5', '!'] 切片: >>> names ['scott', 'scott', 'scott', 'rose', 'jack', 'RAIN', '5', '!'] >>> names[3:7] ['rose', 'jack', 'RAIN', '5'] >>> names[-1] '!' >>> names[-3:-1] ['RAIN', '5'] >>> names[-3:] ['RAIN', '5', '!'] >>> names[0:5] ['scott', 'scott', 'scott', 'rose', 'jack'] >>> names[:5] ['scott', 'scott', 'scott', 'rose', 'jack'] >>> names ['scott', 'scott', 'scott', 'rose', 'jack', 'RAIN', '5', '!'] >>> names[0:-1] ['scott', 'scott', 'scott', 'rose', 'jack', 'RAIN', '5'] >>> names[0:-1:1] 1代表步长 ['scott', 'scott', 'scott', 'rose', 'jack', 'RAIN', '5'] >>> names[0:-1:2] 2代表步长 ['scott', 'scott', 'jack', '5']
运算:
算数运算: 幂 >>> 5**2 25 除 >>> 5/3 1.6666666666666667 加 >>> 5+2 7 减 >>> 5-2 3 乘 >>> 5*2 10 取整除 >>> 5//2 2 取模-返回除法的余数,奇数偶数 >>> 5%2 1 >>> 5%3 2 >>> 5%4 1 >>> 5%5 0 比较运算: >>> a = 10 >>> b = 5 >>> a == b False >>> a != b True >>> a > b True >>> a < b False >>> a >= b True >>> a <= b False 赋值运算: = 简单的赋值运算符 c = a + b将a + b的运算结果赋值为c += 加法赋值运算符 c += a等效于c = c + a -= 减法赋值运算符 c -= a等效于c = c - a += 乘法赋值运算符 c *= a等效于c = c * a += 除法赋值运算符 c /= a等效于c = c / a += 取模赋值运算符 c %= a等效于c = c % a += 幂赋值运算符 c **= a等效于c = c ** a += 取整除赋值运算符 c //= a等效于c = c // a 逻辑运算 and、or、not and >>> today = "mon" >>> tomorrow = "tes" >>> today == "mon" and tomorrow == "teu" False >>> today == "mon" and tomorrow == "tes" True or >>> today == "mon" or tomorrow == "tes" True not 成员运算:in、not in >>> names [1, 2, 3, 4, 5, 6] >>> 7 in names False >>> 3 in names True >>> 10 not in names True 身份运算:is、is not >>> 8 is 8 True >>> type(8) <class 'int'> >>> type(8) is int True >>> type(8) is not int False >>> type('eric') is not int True
位运算:
#!/usr/bin/python
a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101 print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001 #相同为0,不同为1 print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011 print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000 print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111 print "Line 6 - Value of c is ", c
三:表达式if ... else
用户登陆验证:python3
--python中单双引号没有任何区别
--用途:>>>msg = "my name's guido..." >>> msg = "a,'b',c,d"
#!/usr/bin/env python name = input("用户名:") pwd = input("密码:") if name == "scott" and pwd =="tiger": print("Welcome,scott!") else: print("用户名和密码错误!")
猜年龄:
#!/usr/bin/env python my_age = 30 user_input = int(input("your guess num:")) if user_input == my_age: print("Congratulations,you got it!") elif user_input < my_age: print("think bigger!") else: print("think smaller!")
四:表达式for loop
循环10次
for i in range(10): print("loop:",i)
输出:
loop: 0 loop: 1 loop: 2 loop: 3 loop: 4 loop: 5 loop: 6 loop: 7 loop: 8 loop: 9
需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环
for i in range(10): if i<5: continue #不往下进行,直接进入下一次loop print("loop:",i)
需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出
for i in range(10): if i>5: break #不往下进行,直接跳出整个loop print("loop:",i)
猜年龄
AGE = 56 for i in range(10): if i == 3: print("too many attemps,bye...") break guess_num = int(input("your guess num:")) if guess_num == AGE: print("Congratulations,you got it.") break elif guess_num > AGE: print("try smaller...") else: print("try bigger...")
For 循环:引入计数器的场景。 break:跳出整个循环
AGE = 56 count = 0 for i in range(10): if count == 3: user_confirm = input("do you want to keep guessing.?").strip() if user_confirm == "y": count = 0 else: break guess_num = int(input("your guess num:")) if guess_num == AGE: print("Congratulations,you got it.") break elif guess_num > AGE: print("try smaller...") else: print("try bigger...") count += 1
For循环(break,continue)
continue:跳出本次循环,进入下一次循环
for i in range(10): if i == 5: continue print("loop:",i)
for i in range(10): if i == 5: for j in range(10): print("inner loop",j) continue print("loop",i)
for i in range(10): if i == 5: for j in range(10): print("inner loop",j) if j == 6: break continue print("loop",i)
五:while loop
死循环:
count = 0 while True: print("count:",count) count +=1
计数器:
count = 0 while True: if count < 3: user = input("请输入您的姓名: ") pwd = input("请输入账户密码: ") if user == "elon" and pwd == "elon": print("Congratulations!!!") break else: count +=1 else: print("too many error,bye!") break
循环100次就退出
count = 0 while True: print("count:",count) count +=1 if count == 100: print("over!") break
for 循环的,如何实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序。
my_age = 30 count = 0 while count < 3: user_input = int(input("your guess num:")) if user_input == my_age: print("Congratulations,you got it!") break elif user_input < my_age: print("think bigger!") else: print("think smaller!") count += 1 else: print("超过最大输入次数!")
import time t0_start = time.time() count0 = 0 while True: if count0 == 1000000: break count0 += 1 print("cost0:",time.time()-t0_start,count0) t_start = time.time() count = 0 while count < 1000000: count += 1 print("cost:",time.time()-t_start,count)