python3的数据类型转换问题
问题描述:在自我学习的过程中,写了个登陆,在input处,希望能够对数据类型进行判断,但是因为python3的输入的数据会被系统默认为字符串,也就是1,1.2,a。都会被系统默认为字符串,这个心塞啊,难受啊。我不接受强制类型转换,先贴代码,供大家参考,希望大神能够给出优化代码。多谢
ps:来自某小白的问题
#!/user/bin/env python
#coding:utf-8 #Author:shenqiang
import json '''分离用户名输入和密码输入的函数'''
def infoUsername():
'''
输入用户名
:return: username 用户名
'''
username = input('请输入您注册的用户名:\n')
return username def infoPassword():
'''
输入密码
:return:password 密码
'''
password = input('请输入您注册的密码:\n')
return password '''
注册
'''
def register(username,password):
'''
注册
:parameter: username 用户名
:parameter:password 密码
:return:
'''
temp = username+'|'+password
'''改写,序列化和反序列化'''
json.dump(temp,open('login', 'w'))
# f = open('login','w')
# f.write(temp)
print('恭喜{0},注册成功!'.format(username)) '''
1。模拟登陆
2。模拟登陆成功后,用户现实登陆状态
3。模拟注册
'''
def login(username,password):
'''
登陆
:param username:登陆系统的账号
:param password:登陆系统的账号的密码
:return: True:登陆成功 False:登陆失败
'''
# f = open('login','r') '''改写,序列化和反序列化'''
f = str(json.load(open('login','r')))
list1 = f.split('|')
if list1[0] == username and list1[1] == password:
return True
else:
return False # for line in f:
# # 将字符串转化成列表
# list = line.split('|')
# if list[0] == username and list[1] == password:
# return True
# else:
# return False '''
查询用户信息
'''
def info(username,password):
'''拿到文件的用户名和密码''' # lines = open('login','r')
# for line in lines:
# list1 = line.split('|') '''改写,序列化和反序列化'''
f = str(json.load(open('login', 'r')))
list1 = f.split('|')
'''验证用户等登陆是否成功'''
r = login(username,password)
if r:
print('登陆成功!用户昵称为:{0}'.format(list1[0]))
else:
print('登陆失败!请检查您的账号和密码!') '''
退出系统
'''
def exit():
'''退出系统'''
import sys
sys.exit(1)
print('您已退出该系统!') '''
主函数
'''
def main():
'''调用上面的方法和属性'''
while True:
try:
# t = int(input('1。注册;2。登陆;3。退出登陆 \n'))
t = int(input('1。注册;2。登陆;3。退出登陆 \n'))
'''
python3输入的整型,浮点型,字符串。都是被系统默认是字符串.下面代码失效
'''
print(type(t))
if isinstance(t,float):
t = int(t)
if isinstance(t,str):
if len(t)==1:
t = ord(t)
except Exception as e:
print(e.args)
else:
if t == 1:
username = infoUsername()
password = infoPassword()
register(username,password)
elif t == 2:
username = infoUsername()
password = infoPassword()
login(username,password)
info(username,password)
elif t == 3:
exit()
else:
print('输入错误,请重新输入!')
finally:
print('') if __name__ == '__main__':
main()
问题部分:
'''
主函数
'''
def main():
'''调用上面的方法和属性'''
while True:
try:
# t = int(input('1。注册;2。登陆;3。退出登陆 \n'))
t = int(input('1。注册;2。登陆;3。退出登陆 \n'))
'''
python3输入的整型,浮点型,字符串。都是被系统默认是字符串.下面代码失效
'''
print(type(t))
if isinstance(t,float):
t = int(t)
if isinstance(t,str):
if len(t)==1:
t = ord(t)
except Exception as e:
print(e.args)
else:
if t == 1:
username = infoUsername()
password = infoPassword()
register(username,password)
elif t == 2:
username = infoUsername()
password = infoPassword()
login(username,password)
info(username,password)
elif t == 3:
exit()
else:
print('输入错误,请重新输入!')
finally:
print('') if __name__ == '__main__':
main()
python3的数据类型转换问题的更多相关文章
- 简谈-Python的输入、输出、运算符、数据类型转换
输出: 格式化输出: 看到了 % 这样的操作符,这就是Python中格式化输出. 换行输出: 在输出的时候,如果有 \n 那么,此时 \n 后的内容会在另外一行显示 输入: 在python2.7当中, ...
- Python基础之模块、数据类型及数据类型转换
一.模块 1.标准库 不需要安装,直接调入使用的模块. import sys模块: import sys print(sys.path) #打印环境变量绝对路径 print(sys.argv) #打印 ...
- python中数据类型转换
python中list和str互转 1.list转str 假设有一个名为test_list的list,转换后的str名为test_str 则转换方法: test_str = "" ...
- python3 raw 数据转换为jpg
python3 raw 数据转换为jpg 我们大家都知道,sensor 直接出来的裸数据为raw 数据,没有经过编解码,压缩. 我们需要将raw数据转换为其他格式比如jpg,png,bmp 人眼才能看 ...
- JavaScript中数据类型转换总结
JavaScript中数据类型转换总结 在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换. 1, 显式数据类型转换 a:转数字: 1)Number转换: 代码: var a = " ...
- Sql Server函数全解<三>数据类型转换函数和文本图像函数
阅读目录 一:数据类型转换函数 二:文本和图像函数 一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和flo ...
- JS 数据类型转换
JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...
- 使用变量 数据类型转换 逻辑控制语句(begin ...end; case...end; if...else; while)
一:变量 变量分为局部变量和全局变量 (全局变量是系统自定的,是不可手动给值的,若想自己定义全局变量可考虑创建全局临时表!) 局部变量的定义: declare @变量名 数据类型 (局部变量只能 ...
- Util应用程序框架公共操作类(三):数据类型转换公共操作类(扩展篇)
上一篇以TDD方式介绍了数据类型转换公共操作类的开发,并提供了单元测试和实现代码,本文将演示通过扩展方法来增强公共操作类,以便调用时更加简化. 下面以字符串转换为List<Guid>为例进 ...
随机推荐
- JQuery与JS比较
备注:原文转自脚本之家,原文地址:http://www.jb51.net/article/39494.htm 转载仅为方便统一整理收藏内容,别无他意 JQuery与JS的比较: jquery ...
- Ubuntu---Git
本篇文章简单总结了常用 Git 的使用 前言 设置用户信息 1, Git 是分布式的 SSH 代码管理工具,远程的代码管理是基于 SSH 的,所以要使用远程的 Git 则需要 SSH 的配置. ste ...
- java和数据库中所有的锁都在这了
1.java中的锁 1.1 锁的种类 公平锁/非公平锁 可重入锁/不可重入 独享锁/共享锁 读写锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 1.2 锁详细介绍 1.2.1 公平锁,非公平锁 公平锁 ...
- spring 事物面试题
1.spring 事物管理器中事物传播机制 2.spring中事物的隔离级别 读未提交-事物未提交,另一个事物可以读取到,脏读 读已提交-事物已提交,先前读取的数据与后来读取的数据不同,不可重复读 可 ...
- [HAOI2018]苹果树(组合数学)
首先有个很奇妙而且很有用的性质:每个二叉树对应唯一的中序遍历,然后每个二叉树出现概率相同.所以n个节点的二叉树形态是n!种(题目中说了*n!已经是提示了),对每种方案求和即可得到期望.令f[i]表示i ...
- Java虚拟机(JVM) - 学习总结(全)
深入理解java虚拟机---学习总结: 1.Java内存区域 1.1 java运行时数据区 Java 虚拟机所管理的内存如下图所示,基于JDK1.6. 基于jdk1.8画的JVM的内存模型 (1) 程 ...
- Ioc和依赖注入
转自https://www.cnblogs.com/zhangzonghua/p/8540701.html 1.IOC 是什么 IOC- Inversion of Control , 即“控制反转” ...
- coursera课程视频
#!/usr/bin/env python # coding=utf-8 import urllib import urllib2 import cookielib def setcookie(ena ...
- elasticsearch minhash 测试应用
上一章看了代码实现,算是搞明白了各参数的意义,现在开始测试,为方便以ik分词示例(对elasticsearch支持较好,测试操作简单) 首先建index,自定义 analysis ik分词用 ik_s ...
- Kubernetes系列:故障排查之Pod状态为CreateContainerError
查看pod状态如下图所示,当前状态为CreateContainerError. 通过kube describe命令去查看Pod的状态发现没有提示任何错误.但是当通过命令kube logs查看pod的日 ...