Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的字符串_Python_String - Fatal编程技术网

Python中的字符串

Python中的字符串,python,string,Python,String,我是一名Python的法国新手,我想编写一个程序,在时间(字符串“Day,Hours,Minutes,Seconds”)错误时(例如83秒)向我们发出警告。 我做了这个节目: t=input("Put day,hours,minutes,seconds: ") t="j,h,m,s" if int(t[6])<=0 or int(t[6])>=59: print("Seconds wrong") if int(t[4])<=0 or int(t[4])>=59:

我是一名Python的法国新手,我想编写一个程序,在时间(字符串“Day,Hours,Minutes,Seconds”)错误时(例如83秒)向我们发出警告。 我做了这个节目:

t=input("Put day,hours,minutes,seconds: ")
t="j,h,m,s"
if int(t[6])<=0 or int(t[6])>=59:
    print("Seconds wrong")
if int(t[4])<=0 or int(t[4])>=59:
    print("Minutes wrong")
if int(t[2])<=0 or int(t[2])>=24:
    print("Hours wrong")
if int(t[0])<=0 or int(t[0])>=31:
    print("days wrong")
else: 
    print("OK")
t=输入(“输入日、时、分、秒:”)
t=“j,h,m,s”
如果int(t[6])=59:
打印(“秒错误”)
如果int(t[4])=59:
打印(“分钟错误”)
如果int(t[2])=24:
打印(“小时错误”)
如果int(t[0])=31:
打印(“日期错误”)
其他:
打印(“确定”)
但我有一个错误:

  if t[6]<=0 or t[6]>=59:
TypeError: unorderable types: str() <= int()
如果t[6]=59:

TypeError:无序类型:str()此字符串中没有数字:

t="j,h,m,s"
因此,任何试图执行
int(t[anything])
的尝试都将失败。除非字符串包含实际整数的字符串表示形式,例如
t=“1234”
,否则无法将字符串转换为整数

此外,即使您有类似于
t=“31,11,22,45”
,那么
int(t[6])
也不会给出秒数,因为秒的表示将在索引9和10处。在这种情况下,您需要
t=int(t[9:11])

这就是你要找的东西:

#!/usr/bin/python

t = "31,11,22,45"
(day, hour, min, sec) = [int(elem) for elem in t.split(',')]

if not 0 <= sec <= 59:
    print("Seconds wrong")
elif not 0 <= min <= 59:
    print("Minutes wrong")
elif not 0 <= hour <= 23:
    print("Hours wrong")
elif not 1 <= day <= 31:
    print("days wrong")
else:
    print("OK")

此字符串中没有数字:

t="j,h,m,s"
因此,任何试图执行
int(t[anything])
的尝试都将失败。除非字符串包含实际整数的字符串表示形式,例如
t=“1234”
,否则无法将字符串转换为整数

此外,即使您有类似于
t=“31,11,22,45”
,那么
int(t[6])
也不会给出秒数,因为秒的表示将在索引9和10处。在这种情况下,您需要
t=int(t[9:11])

这就是你要找的东西:

#!/usr/bin/python

t = "31,11,22,45"
(day, hour, min, sec) = [int(elem) for elem in t.split(',')]

if not 0 <= sec <= 59:
    print("Seconds wrong")
elif not 0 <= min <= 59:
    print("Minutes wrong")
elif not 0 <= hour <= 23:
    print("Hours wrong")
elif not 1 <= day <= 31:
    print("days wrong")
else:
    print("OK")

很好的努力,但要小心第二行:

t = "j,h,m,s"
这将覆盖用户输入,并将
“j,h,m,s”
分配给
t
。把它拿走

此外,您不能使用
进行比较。只需检查
int(t[6])>59是否足够

if int(t[6]) > 59:
    print("seconds wrong") 
获取逗号分隔数字的更好方法是使用
string.split()
方法

t = t.split(',') #split the string in the commas
现在,您不必担心逗号计数。白天是
t[0]
,小时是
t[1]
,依此类推

啊,还有一件事。您不必重复使用if语句。第一次使用它,然后用
elif
语句更改下一次

完整固定代码:

t = input("Put day,hours,minutes,seconds: ")
if int(t[6])>59:
    print("Seconds wrong")
elif int(t[4]) < 0 or int(t[4]) > 59: 
    print("Minutes wrong")
elif int(t[2]) < 0 or int(t[2]) > 24:
    print("Hours wrong")
elif int(t[0]) < 0 or int(t[0]) > 31:
    print("days wrong")
else: 
    print("OK")

很好的努力,但要小心第二行:

t = "j,h,m,s"
这将覆盖用户输入,并将
“j,h,m,s”
分配给
t
。把它拿走

此外,您不能使用
进行比较。只需检查
int(t[6])>59是否足够

if int(t[6]) > 59:
    print("seconds wrong") 
获取逗号分隔数字的更好方法是使用
string.split()
方法

t = t.split(',') #split the string in the commas
现在,您不必担心逗号计数。白天是
t[0]
,小时是
t[1]
,依此类推

啊,还有一件事。您不必重复使用if语句。第一次使用它,然后用
elif
语句更改下一次

完整固定代码:

t = input("Put day,hours,minutes,seconds: ")
if int(t[6])>59:
    print("Seconds wrong")
elif int(t[4]) < 0 or int(t[4]) > 59: 
    print("Minutes wrong")
elif int(t[2]) < 0 or int(t[2]) > 24:
    print("Hours wrong")
elif int(t[0]) < 0 or int(t[0]) > 31:
    print("days wrong")
else: 
    print("OK")


首先从用户输入请求
t
,然后将
t
重新绑定到一个新字符串,其中不包含整数。你认为会发生什么?将提供什么用户输入?删除第二行,它正在重写
t
,因为
“j,h,m,s”
上次我检查时,
0
59
是有效的秒和分。您可能想要更像
t[6]<0或t[6]>=60的东西。与其他时间单位相同。首先从用户输入请求
t
,然后将
t
重新绑定到一个新字符串,其中不包含整数。你认为会发生什么?将提供什么用户输入?删除第二行,它正在重写
t
,因为
“j,h,m,s”
上次我检查时,
0
59
是有效的秒和分。您可能想要更像
t[6]<0或t[6]>=60的东西。其他时间单位也一样。@kren470:是的,他可以。是的,我忘了elif,谢谢。但如何问天,小时。。。“DD,HH,MM,SS”格式?@valentin:我不太明白这个问题,你可以问:
t=input('以DD,HH,MM,SS格式输入时间:')
就是这样!我想问一下天,小时。。分4步:“说天”,用户点击天。然后“说几个小时”。。。。非常感谢你的帮助!你可以做
days=int(输入(“说days:”)
,然后再做几小时、几分钟和几秒钟。@kren470:是的,他可以。是的,我忘了elif,谢谢。但如何问天,小时。。。“DD,HH,MM,SS”格式?@valentin:我不太明白这个问题,你可以问:
t=input('以DD,HH,MM,SS格式输入时间:')
就是这样!我想问一下天,小时。。分4步:“说天”,用户点击天。然后“说几个小时”。。。。非常感谢你的帮助!你可以做
days=int(输入(“Say days:”)
再做几小时、几分钟和几秒钟。我还不习惯字符串格式,但我理解你的意思。我知道如何与昏迷分离,谢谢你的帮助!如果用户在任何秒、分钟、小时或天内输入超过一位数字,您的“固定代码”将不起作用。对。我修正了语法,但逻辑是错误的。嗯,我现在已经提出了工作方式。我还不习惯字符串格式,但我理解你的意思。我知道如何与昏迷分离,谢谢你的帮助!如果用户在任何秒、分钟、小时或天内输入超过一位数字,您的“固定代码”将不起作用。对。我修正了语法,但逻辑是错误的。嗯,我现在已经提出了工作方法。