初识python
#以下的代码都是在PyCharm 4.5的编辑工具下执行的,并且python的版本是3.4
python的第一程序
print("Hello Word")
#Hello Word
一、变量名
一)作用:一是用来存储,二是用来调用
二)定义规则:
1)变量名只能是字母、数字、下划线的任意组合
2)变量名的第一字母不能是数字或下划线
3)关键字不能声明变量 比如:if、for、 class
三)变量的赋值:
name = "xiao ming"
上述代码声明了一个变量,变量名是 name, 变量 name 的值为:"xiao ming"
二、常用的数据类型
1、数字
int(整型):跟数学中数字的没区别
long(长整型):int类型中表达不了的数字就用这个
float(浮点型):有小数点的数字
2、布尔值
True 真 或 1
False 假 或 0
3、字符串
1)字符串格式化输出
name = "小明"
print ("I am %s" %name)
#输出:I am 小明
2)字符串拼接
name = "小明"
print ("我是"+ name +"的同学")
#输出:我是小明的同学
万恶的字符串拼接:python中的字符串在C语言中体现为是一个字符数组,每次创建字符串是时候需要在内存中开辟一块连续的空间,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内存中重新开辟一块空间,所以为了减少内存空间的使用,一般情况下都不要用字符串拼接。
3)字符串常用功能
name = "xiao ming ,xiao gou,{hua}"
* 移除空白: name.strip() #把前后的空格或换行都去掉
* 分割: name.split(",") #按逗号把字符串里的字符分割开来变成列表
"|".join(name) #按|把分割开来的列表合在一起
* 长度: len(name) #
* 索引:name.find() #查找字符串中的某个元素,返回值就是该元素的索引
* 切片:跟列表切片是一样的
*格式化:name.format(hua = "花")
*判断: name.isdigit() #判断字符串是不是数字
name.isalnum() #判断字符串有没有特殊字符
name.endswith() # 判断字符串以什么结尾
name.startswith() #判断字符串以什么开头
name.upper() #把字符串都改成大写
name.lower() #把字符串都改成小写
"" in name #判断里面有没有空格
4、列表
1)创建列表:
name = ["小明","xiaohua",36,"5",[3,4,9],"小狗",96,63,5,36,]
2)基本操作
索引:name[0]#取第一个值 name[:2]#取前面两个值 name[-3:]#取最后三个值 name[4][1] #取第二层列表里的值
#每个列表中的元素都对应一个索引,也称下标,下标默认都是从0开始,例如下标0对应的就是第一个元素"小明"
切片:name[1:4]#取出第二个到第四个的值 xiaohua,36,5
追加:name.append("小花")#在列表中追加一个新的元素
删除:name.remove("小狗")#删除一个元素 ,但一次只能删除一个
name.pop(7) #删除第7个人 这个是删除元素的下标,默认是删除最后一个
# del name[4] del 删除一个内存中的数据,不但可以删列表,还可以删很多 ,是python 的全局功能,
步长:name[::2] #隔一个人打印一个人,2就是步长,默认是1,但不能是0
长度:len(name) #查看列表里有多少元素
插入:name.insert(2,"小红")#在第三的位置上插入新的元素,但一次只能插入一个
清空:name.clear() #把这个列表清空
扩展:name.extend(name2) # 把name2列表的元素追加到了name列表,但name2列表的元素还存在,相当于拷贝了月份
排序:name.reverse() #把列表里面的元素与之前的顺序倒过来(从后面往前排)
拷贝:name4 = name.copy() #把一个列表的元素拷贝到另一个列表里,默认只拷贝第一层,属于浅拷贝
name5 = copy.deepcopy(name) #深层拷贝,首先要声明一个标准库:import copy
36 in name #判断列表是否存在一个元素,如果有则返回True,没有则返回False
name.count() #查找列表里相同的元素有几个
# geshu = name.count(36) 输出结果是 2 说明列表里有2个36
name.index() #查找某个元素的索引,如果有相同的元素,只能查找到排在最前面的一个
for i in range(name.count(36)): #查找列表里有几个36
suoyin = name.index(36) #查找元素36的索引
name[suoyin] = 666 #通过查到的索引来修改元素
print(name) #最后的结果把列表里的所有36改成了666
5、元组(不可变列表)
1、创建元组:
ages = (11,22,33,44,55,66) 或 ages = tupe((11,22,33,44,55,66))
6、字典(无序)
三、数据运算
一)算数运算
a = 10 b = 20
运算符 | 描述 | 实例 |
+ | 加—— 两个对象相加 | a + b 输出结果 30 |
- | 减—— 一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘—— 两个数相乘或是返回一个被重复若干的字符串 | a * b 输出结果 200 |
/ | 除—— b 除以 a | b / a 输出结果 2 |
% | 取模—— 返回除法的余数 | b / a 输出结果 0 10 / 3 输出结果 1 |
** | 幂 —— 返回 b 的 a 次幂 | b ** a 输出结果 10240000000000 |
// | 取整除—— 返回商的整数部分 | 9 // 2 输出结果 4 9.0 // 2.0 输出结果是 4.0 |
二)比较运算:
运算符 | 描述 | 实例 |
== | 等于—— 比较对象是否相等 | (a == b) 返回 False |
!= | 不等于—— 比较两个对象是否不相等 | (a != b) 返回 True |
<> | 不等于—— 比较两个对象是否不相等 | (a <> b) 返回 True |
> | 大于—— 返回X是否大于Y | (a > b) 返回 False |
< |
小于—— 返回X是否小于Y。 所有比较运算符返回1表示真,返回0表示假。 这分别与特殊的变量True和False等价。注意,这些变量名的大写 |
(a < b) 返回 True |
>= | 大于等于—— 返回X是否大于等于Y | (a >= b) 返回 False |
<= | 小于等于——返回X是否小于等于Y | (a <= b) 返回 True |
三)赋值运算
运算符 |
描述 |
示例 |
= |
赋值 - 将右边的值赋值给左边的变量名 |
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 | 布尔 “与” ——如果X为False, X and Y 返回 False , 否则它返回 Y 的计算值 | (a and b) 返回 True |
or | 布尔 “或” ——如果X为True, X and Y 返回 True , 否则它返回 Y 的计算值 | (a or b) 返回 True |
not | 布尔 “非” ——如果X为True, X and Y 返回 False , 如果 X 为 False, 它返回 True | not(a and b) 返回 False |
五)身份运算
运算符 | 描述 | 实例 |
is | is是判断两个标识符是不是引用自一个对象 | X is Y ,如果id(X)等于id(Y),is 返回结果 1 |
print(type("333") is str) 返回True
print(type(333) is str) 返回False 六)位运算 计算机中能表示的最小单位,是一个二进制位 计算机中能存储的最小单位,是一个二进制位(bit) 8bit = byte(1字节) 1024byte = 1kbyte 1024kbyte = 1mbyte 1024mbyte = 1gb 1024gb = 1T
运算符 |
描述 a = 60 b = 13 |
示例 |
& |
与运算,这个二进制位必须在2组数中都为真,结果才返回真 |
(a & b)得12,二进制位: 0000 1100 |
| |
或运算,这个二进制位只需在其中一组数据中为真即返回真 |
(a | b)得 61,二进制位: 0011 1101 |
^ |
异或运算,只要这个二进制位在两组数据中不相同就返回真 |
(a ^ b)得 49 ,二进制位: 0011 0001 |
<< |
左移运算,将a整体向左移2位 |
a << 2得240,二进制位: 1111 0000 |
>> |
右移运算,将a整体向右移3位 |
a >> 3得 7 ,二进制位: 0000 0111 |
四、表达式:
一)if...else语句
name = "小明"
passwd = 123654
username = input("请输入用户名:")
password = int(input("请输入用户名密码:"))
if name == username and passwd == password:
print("恭喜你登入成功!") else: print("用户名或密码错误,请重新输入!") 二)for循环 #计算1+2+...+10的和 sum = 0 for x in [1,2,3,4,5,6,7,8,9,10]: sum = sum + x print(sum) #一个登入接口的小程序 name = "小明" passwd = "123654" cishu = 0 for i in range(5): if cishu < 3: username = input("请输入用户名:") password = input("请输入用户名密码:") if username == name and password == passwd: print("恭喜你登录成功,欢迎你!") break else: print("你输入的用户名或密码不正确,请重新输入!") cishu += 1 else: print("你已经输错三次,用户名与密码已被锁定,请明天再试!") break 三)while循环 count = 0 while True: count += 1 if 50 < count < 60: continue print("你是风儿我是沙,缠缠绵绵到天涯.....",count) if count == 100: print("去你大爷的风和沙...") break