目录
1. Python 习题部分
要想学习一门语言,便少不了练习。
故附上部分 Python 习题,供大家学习参考。
1. 输入字符串"http://sports.sina.com.cn/",输出以下结果:
1) 字符串中字母t出现的次数。
2) 字符中"com"子串出现的位置。
3) 将字符串中所有的"."替换为"-"。
4) 提取"sports"和"sina"两个子串(分别使用正向和反向截取方式)。
5) 将字符串中的字母全变为大写。
6) 输出字符串的总字符个数。
7) 在字符串后拼接子串"index"
s = 'http://sports.sina.com.cn/'
print(s.count('t'))
print(s.find('com'))
print(s.replace('.','-'))
print(s[7:13],s[-12:-8])
print(s.upper())
print(len(s))
print(s+'index')
2. 编写程序,从键盘输入一串字符,统计这串字符的长度,并统计这串字符中字母的个数、数字的个数以及其它字符的个数。
s = input('请输入一串字符:')
count = len(s)
a = 0
b = 0
c = 0
for i in range(count):
if (s[i] <= 'z' and s[i] >= 'a') or (s[i] <= 'Z' and s[i] >= 'A'):
a += 1
elif s[i] <= '9' and s[i] >= '0':
b += 1
else:
c += 1
print('''字符串长度为:{}\n字母个数为:{}
数字个数为:{}\n其他字符个数为:{}'''.format(count,a,b,c))
3. 编写程序,实现货币的转换。从键盘输入人民币的币值,转换为美元的币值输出,结果保留2位小数。假设人民币兑换美元的汇率是0.1456。
cny = input('请输入要兑换的人民币值,以¥结束:')
if cny[-1] == '¥':
x = float(cny[:-1])
usd = x*0.1456
print('{}元人民币可以兑换{:.2f}美元'.format(x,usd))
else:
print('输入错误!')
4.编写程序,实现两种货币的自由转换。从键盘输入货币及对应的货币符号。根据输入的货币符号,自动将输入的货币币值转换为另外一种货币的币值,并保留2为小数输出。
money = input('请输入要转换的币值及符号,以¥或$结束:')
if money[-1] == '¥':
x = float(money[:-1])
usd = x*0.1456
print('{}元人民币可以兑换{:.2f}美元'.format(x,usd))
elif money[-1] == '$':
y = float(money[:-1])
cny = y*6.868
print('{}美元可以兑换{:.2f}元人民币'.format(y,cny))
else:
print('输入错误,请以¥或$结束!')
5.编写程序,实现月份到英文缩写的转换。输入一个1到12间的整数,输出其对应的月份缩写,如1对应1月(Jan),2对应2月(Feb)等。
months = 'JanFebMarAprMayJunJulAugSepOctNovDec'
m = int(input('请输入月份:'))
pos = (m - 1) * 3
print(months[pos:pos+3])
6.用户输入一身份证号,首先判断是否足够18位长,如果是,则从身份证号中提取出生日期,按照xxxx年xx月xx日的格式输出。
id = input('请输入您的身份证号码:')
if len(id) == 18:
year = id[6:10]
month = id[10:12]
day = id[12:14]
print('您的出生日期为:{}年{}月{}日'.format(year,month,day))
else:
print('输入错误!')
本此的习题主要运用字符串的索引与切片来完成。
以上图为例,按照箭头的指示方向,我们可以看到上面的数字为正向递增,下方数字为反向递减。
这些数字便是这些字符的序号(索引号),如 “我” 的索引号就是 0 。
这些索引号有什么用呢?如果我们想要从字符串里提取出某一部分,那么就得用到它们。
光说不练怎么能行,对吧?下面,就让我们一起来玩一玩吧。
2. Python 习题讲解
切片
假设 1 :我要从上图的字符串中提取出字母 p ,那么我们该怎么做呢?
请见以下代码:
s = '我要学python'
print(s[3])
print(s[-6])
结果为:
这里我们选用的索引号为 3 和 -6 ,前者为正向,后者为反向,均输出了字母 p 。
假设 2 :我要从上图的字符串中提取出 python ,那么我们该怎么做呢?
请见以下代码:
s = '我要学python'
print(s[3:8])
print(s[3:9])
print(s[-6:-1])
print(s[-7:-1])
print(s[-1:-6])
print(s[3:-1])
结果为:
这种将 python 提取出来的方法叫做切片。看起来是不是很简单,就是在原来的基础上加一个 :和数字罢了。但是上面用这么多种切片,却只有一个成功,为什么呢?
切片是 python 语言中字符串的区间访问方式。具体语法格式为:[头下标:尾下标] ,若有字符串 s[头下标:尾下标],则表示在 s 中取索引值从头下标至尾下标(不含尾下标)的子字符串,也就是说 s[头下标:尾下标] 其实是一个 左闭右开 的区间。
现在,是不是好像理解上面那些错误情况了?
其实,在切片中,还可以出现缺少头下标或者尾下标,亦或者二者均缺失的情况。
如果缺少头下标,那么将会从字符串开始的地方取;
如果缺少尾下标,那么将会从头下标取至字符串末尾最后一个字符;
若二者均缺失,则取整个字符串。
其实,字符串的切片还可以设置顺序。只需要再原来的基础上增加一个参数即可。
原来是这样—>s[头下标:尾下标]
而现在是这样——>s[头下标:尾下标:步长]
请见以下代码:
s = '我要学python'
print(s[3:9:-1])
print(s[3:9:1])
print(s[3:9:2])
print(s[3:0:-1])
print(s[::-1])
print(s[::-2])
结果为:
当步长值 > 0,则从左到右取;
当步长值 < 0,则从右至左取;
|步长值| - 1 ,则表示每次取字符的间隔为多少。
写有关 python 的博客原因有二,一是加深对于 python 的理解,二是分享自己的看法。
但事实上,主要原因是容易忘,担心平时缺乏练习,导致最后考试的时候过不了。
因为最近也有在学习其他的东西,所以下一篇博客也不知道什么时候才能发。
如果你有什么好的建议,或者说这篇博客对你有帮助的话,都可以在下方评论区留言,我有时间一定会看。
那么,本此的博客就到此为止了,下次再见!