-
利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
方法一
'''
利用条件运算符的嵌套来完成此题:
学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
'''
score = int(input('请输入你的分数:'))
print('A'if score>=90 else 'B' if score>59 else 'c')
输出结果:
D:\anaconda\python.exe D:/bilibili大学/python经典习题100道/习题15.py
请输入你的分数:90
A
Process finished with exit code 0
这个方法一,我们还可以再改进一下:
import random
while 1:
score = int(input('请输入你的分数:'))
print('A'if score>=90 else 'B' if score>59 else 'c')
for i in range(random.randint(0,10)):
break
方法二
while 1:
score = int(input('请输入你的分数'))
mark = [90,60,0]
result = ['A','B','C']
for i in range(3):
if score >= mark[i]:
print('{} is {}'.format(score,result[i]))
break
-
输出指定格式的日期。
程序分析:使用 datetime 模块。
方法一
import time
print('当前时间戳:',time.time())
# 时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。
print('获取当前本地时间:',time.localtime())
print('格式化日期:',time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
print('格式化日期:',time.strftime('%Y/%m/%d %H:%M:%S',time.localtime()))
输出结果:
D:\anaconda\python.exe D:/bilibili大学/python经典习题100道/习题16.py
当前时间戳: 1566176620.0451167
获取当前本地时间: time.struct_time(tm_year=2019, tm_mon=8, tm_mday=19, tm_hour=9, tm_min=3, tm_sec=40, tm_wday=0, tm_yday=231, tm_isdst=0)
格式化日期: 2019-08-19 09:03:40
格式化日期: 2019/08/19 09:03:40
Process finished with exit code 0
方法二
import datetime
print('当前年月日:',datetime.date.today())
print('格式化时间:',datetime.date.today().strftime('%Y/%m/%d'))
print(datetime.date(2019,8,23))
输出结果:
D:\anaconda\python.exe D:/bilibili大学/python经典习题100道/习题16.py
当前年月日: 2019-08-19
格式化时间: 2019/08/19
2019-08-23
Process finished with exit code 0
-
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
方法一
s = input('请输入待测字符串:')
dic = {'litter':0,'space':0,'integer':0,'else':0}
for i in s:
if i>='a' and i<='z'or i>='A' and i<='Z':
dic['litter'] += 1
elif i in '0123456789':
dic['integer'] += 1
elif i is ' ':
dic['space'] += 1
else:
dic['else'] += 1
print(dic)
for key,value in dic.items():
print('{}={}'.format(key,value))
输出结果:
请输入待测字符串:12eee???====
{'litter': 3, 'space': 0, 'integer': 2, 'else': 7}
litter=3
space=0
integer=2
else=7
dict.items()返回可遍历的(键值)元组数组
具体参考:https://www.runoob.com/python/att-dictionary-items.html
方法二
alphaNum = 0
numNum = 0
spaNum = 0
elseNum = 0
s = input('请输入待测字符串:')
for i in s:
if i.isalpha():
alphaNum += 1
elif i.isalnum():
numNum += 1
elif i.isspace():
spaNum += 1
else:
elseNum += 1
print('字母=',alphaNum)
print('数字=',numNum)
print('空格=',spaNum)
print('其他=',elseNum)
输出如下:
D:\anaconda\python.exe D:/bilibili大学/python经典习题100道/习题17.py
请输入待测字符串:uuuu778 =====--
字母= 4
数字= 3
空格= 3
其他= 7
Process finished with exit code 0
方法三
letter = []
number = []
space = []
other = []
s = input('请输入待测字符串:')
for i in s:
if i.isalpha():
letter.append(i)
elif i.isalnum():
number.append(i)
elif i.isspace():
space.append(i)
else:
other.append(i)
print('字母=',len(letter))
print('数字=',len(number))
print('空格=',len(space))
print('其他=',len(other))
输出如下:
请输入待测字符串:www 197ww com ...,,,
字母= 8
数字= 3
空格= 3
其他= 6
Process finished with exit code 0
这个和方法二大同小异。
方法四
import re
charNum = 0
digNum = 0
spaceNum = 0
otherNum = 0
s = input('请输入待测字符串')
letter = re.findall(r'[a-zA-Z]',s)
number = re.findall(r'[0-9]',s)
space = re.findall(r' ',s)
chinese = re.findall(r'[\u4E00-\u9FFF]',s)#汉字的Unicode编码范围
other = len(s) - len(letter) - len(number) - len(space) - len(chinese)
print('字母={},数字={},空格={},中文={},其他={}'.format(len(letter),len(number),
len(space),len(chinese),other))
输出如下:
D:\anaconda\python.exe D:/bilibili大学/python经典习题100道/习题17.py
请输入待测字符串我是谁 whoareyou 123 ————。。。。,,,
字母=9,数字=3,空格=3,中文=3,其他=11
Process finished with exit code 0
方法五
import re
charNum = 0
digNum = 0
spaceNum = 0
otherNum = 0
s = input('请输入待测字符串')
for i in range(len(s)):
if re.match(r'[a-zA-Z]',s[i]):
charNum += 1
elif re.match('\d',s[i]):
digNum += 1
elif re.match('\s',s[i]):
spaceNum += 1
else:
otherNum += 1
print('字母={},数字={},空格={},其他={}'.format(charNum,digNum,spaceNum,otherNum))
输出结果:
D:\anaconda\python.exe D:/bilibili大学/python经典习题100道/习题17.py
请输入待测字符串woshi 9998<<<<.....
字母=5,数字=4,空格=2,其他=9
Process finished with exit code 0
网友评论