pythonday03数据类型(一)
今日内容
1.整型
2.布尔型
3.字符串
4.补充
5.作业讲解
6,pycharm自动生成头文件
1.整型(int)
-
int/long
-
32位电脑:-2147483648~2147483647
-
64位电脑:-9223372036854775808~9223372036854775807
-
超出范围后python自动将其转换成long(长整形)
-
-
整型除法只能保留整数位。
from __future__ import division v = 9 /2 print(v)
-
只有int
-
整型除法只能保留所有。
2.布尔值(
)-
-
转换
-
数字转布尔:0是False,其他都是True
-
字符串转布尔:“”是False,其他都是True
-
3.字符串(
)-
-
.upper() / .lower()
-
.isdigit()
-
.strip() / .lstrip() / .rstrip()
-
.replace("被替换的字符/子序列","要替换为的内容") / .replace("被替换的字符/子序列","要替换为的内容", 1)
-
.split('根据什么东西进行分割') / .split('根据什么东西进行分割',num) :如果参数 num 有指定值,则分隔 num+1 个子字符串
- .startswith()/.endswith():判断是否以什么开头和结尾
name = 'alex' # 判断是否已al开头 """ # 方式一: flag = name.startswith('al') print(flag) """ """ # 方式二: val = name[0:2] if val == 'al': print('是以al开头') else: print('不是') """
- .format():格式化
name = "我叫{0},年龄:{1}".format('老男孩',73) print(name)
- .encode():按所写格式编
name = '李杰' # 解释器读取到内存后,按照unicode编码存储:8个字节。 v1 = name.encode('utf-8') print(v1) v2 = name.encode('gbk') print(v2)
º .join()每个元素之间加所写的连接符
name = 'alex' # a_l_e_x result = "**".join(name) # 循环每个元素,并在元素和元素之间加入连接符。 print(result)
-
-
公共
-
len ,计算长度。 (字符串->计算字符串中的字符个数)
-
索引取值(0作为开始)
-
v = "oldboy" v1 = v[0] # 0 1 2 3 ... 从前向后 v2 = v[-1] # -1 -2 -3 ...从后向前
º 切片(以0作为开始)
v = "oldboy" # v1 = v[2:4] # 2 =< 索引位置 <3 # v2 = v[3:6] # v2 = v[3:-1] # v2 = v[3:] # v2 = v[:-1] # print(v2) # 示例: 取最后两个字符 # data = input('请输入:') # 方式一 # v = data[-2:] # print(v) # 方式二 # total_len = len(data) # v = data[total_len-2:total_len] # print(v)
° 步长
步长格式 变量[开始索引:结束索引:长度]
步长计算公式 当前索引+ 步长= 下一个索引
步长同时也可以取成负数
步长为负数时,省略开头,对应的是最后一个结尾
步长为负数时,省略结尾,对应的是第一个元素
name = 'alex' # val = name[0:-1:2] # val = name[1:-1:2] # val = name[1::2] # val = name[::2] # val = name[-1:0:-2] # print(val) # 笔试题:请将字符串反转。 val = name[::-1] print(val)
º for循环
name = 'alex' for item in name: print(item) continue print('123')
º 练习题
v = "Python全栈21期" if "全栈" in v: print('含敏感字符')
4.补充
-
in
value = "我是中国人" # 判断‘中国’是否在value所代指的字符串中。 “中国”是否是value所代指的字符串的子序列。 v1 = "中国" in value # 示例 content = input('请输入内容:') if "退钱" in content: print('包含敏感字符') # 示例 while True: content = input('请输入内容:') if "退钱" in content: print('包含敏感字符') else: print(content) break
not in
优先级
not 2 > 1 not 2 > 1 # 错误 not 2>1 # 正确
5.习题讲解
【1.三次登陆.py 】
#!/usr/bin/env python # -*- coding:utf-8 -*- """""" """ 需求:用户三次登陆 1. 功能拆分 2. 拼凑功能(中文) """ # 功能一:用户登陆 """ user = input('请输入用户名:') pwd = input('请输入密码:') if user == 'oldboy' and pwd == 'alex': print('登陆成功') else: print('登陆失败') """ # 功能二:三次机会 """ count = 1 while count <= 3: print(count) count += 1 """ # ########################### 功能嵌套 ################################# """ count = 1 while count <= 3: user = input('请输入用户名:') pwd = input('请输入密码:') if user == 'oldboy' and pwd == 'alex': print('登陆成功') break else: print('登陆失败') if count == 3: break count += 1 """ """ 需求:用户三次登陆,允许用户最多尝试3次,每尝试3次后,如果还没输入正确,就问用户是否还想继续玩,如果回答Y,就继续让其猜3次,以此往复,如果回答N,就退出程序,如何猜对了,就直接退出。 1. 功能拆分 2. 拼凑功能(中文) """ count = 1 while count <= 3: user = input('请输入用户名:') pwd = input('请输入密码:') if user == 'oldboy' and pwd == 'alex': print('登陆成功') break else: print('登陆失败') if count == 3: choice = input('请输入是否继续(Y/N):') if choice == 'N': break elif choice == 'Y': count = 1 continue else: print('输入错误') break count += 1
【2..用户登陆三次并提示剩余次数.py】
#!/usr/bin/env python # -*- coding:utf-8 -*- """ 此文件是用于给同学演示用户三次登陆的示例 """ # ⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化) # 功能一:用户登陆 """ user = input('请输入用户名:') pwd = input('请输入密码:') if user == 'oldboy' and pwd == 'alex': print('登陆成功') else: print('登陆失败') """ # 功能二:三次机会并提示 """ count = 1 while count <= 3: x = input('请输入:') # print('用户名和密码输入和校验,错误') # print(count) # 剩余2次/ 1次/ 0次 timer = 3 - count template = "用户名或密码输入错误,剩余%s次机会。" %(timer,) print(template) count += 1 """ """ count = 2 while count >=0: user = input('请输入用户名:') pwd = input('请输入密码:') if user == 'oldboy' and pwd == 'alex': print('欢迎登陆') break else: template = "用户名或密码输入错误,剩余%s次机会。" % (count,) print(template) count -= 1 """ count = 2 while count >=0: user = input('请输入用户名:') pwd = input('请输入密码:') if user == 'oldboy' and pwd == 'alex': print('欢迎登陆') break template = "用户名或密码输入错误,剩余%s次机会。" % (count,) print(template) count -= 1 else: print('三次机会用完')
【3..字符串.py】
#!/usr/bin/env python # -*- coding:utf-8 -*- """""" # ############## 1. upper/lower ################# # value = "alex SB" # new_value = value.upper() # new_value = value.lower() # print(value,new_value) # #### 验证码示例 """ check_code = 'iyUF' message = '请输入验证码 %s:' %(check_code,) code = input(message) new_check_code = check_code.lower() new_code = code.lower() if new_code == new_check_code: print('输入成功') """ # #### 验证码示例 """ check_code = 'iyUF' code = input('请输入验证码 %s :' %(check_code,)) if code.lower() == check_code.lower(): print('登陆成功') """ # ############## 2. isdigit ################# # print("""欢迎致电10086 # 1.花费查询 # 2.业务办理 # 3.款单 # """) # while True: # num = input('请选择服务:') # # 判断用户输入 字符串 是否可以转换成 数字。 # “999” “阿斯顿发生” # flag = num.isdigit() # # print(flag) # "1" -> True "asdf" --> False # if flag: # num = int(num) # print(num) # else: # print('请输入数字') # ############## 3. 去除空白 strip/lstrip/rstrip ############## """ user = input('请输入用户名:') # " alex " # new_user1 = user.rstrip() # new_user1 = " alex" user=" alex " # new_user2 = new_user1.lstrip() # 或 new_user2 = user.strip() data = new_user2.upper() print('---->',data,'<-----') """ # ############## 4. 替换 replace ############## """ message = input('请说话:') print(message) # “我去你大爷的家里玩” # data = message.replace('大爷',"**") data = mess age.replace('大爷',"**",num)#num -- 可选字符串, 替换不超过 num 次 print(data) """ # ############## 5. 切割 split/rsplit ##############
# num -- 分割次数。默认为 -1, 即分隔所有。
""" message = "小黑现在一脸懵逼,因为昨天晚上一直在学习,直到深夜。" # result = message.split(',') # result = message.split(',',1) # result = message.rsplit(',') result = message.rsplit(',',1) print(result) """
【4..公共功能.py】
#!/usr/bin/env python # -*- coding:utf-8 -*- # 1. 计算长度 # value = "alex" # number = len(value) # print(number) # 2. 索引 """ value = 'alexasdfasdfasdfasdfas' # v1 = value[4] # print(v1) value_len = len(value) # 4 index = 0 while True: val = value[index] print(val) if index == value_len-1: break index += 1 """ # v = "oldboy" # v1 = v[0] # 0 1 2 3 ... # v2 = v[-3] # print(v2) # 3. 切片 # v = "oldboy" # v1 = v[2:4] # 2 =< 索引位置 <3 # v2 = v[3:6] # v2 = v[3:-1] # v2 = v[3:] # v2 = v[:-1] # print(v2) # 示例: 取最后两个字符 # data = input('请输入:') # 方式一 # v = data[-2:] # print(v) # 方式二 # total_len = len(data) # v = data[total_len-2:total_len] # print(v) # 练习题1 """ 需求:让用户输入任意字符串,获取字符串之后并计算其中有多少个数字。 """ """ total = 0 text = input('请输入内容:') # ads2kjf5adja453421sdfsdf index_len = len(text) index = 0 while True: val = text[index] #print(val) # "a" # 判断val是否是数字 # - 是数字:total + 1 # - 不是:继续玩下走,执行下一次循环去检查下一个字符。 flag = val.isdigit() if flag: total = total + 1 # total += 1 if index == index_len - 1: break index += 1 print(total) """
6,pycharm自动生成头文件
![1553822713745](C:\Users\oldboy-python\AppData\Roaming\Typora\typora-user-images\1553822713745.png)