博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python_基础语法练习题
阅读量:5122 次
发布时间:2019-06-13

本文共 12924 字,大约阅读时间需要 43 分钟。

基础语法练习:

"""侧重于基础语法"""
01. 写程序在终端输出图形:
########
# #
# #
########
print("#"*8)
print("#"+" "*6 + "#")
print("#"*8)

02. 已知矩形的长边为6cm, 短边为4cm 求矩形的周长和面积,并用print函数打印在终端上:

width = 6
hight = 4
perimeter = (width + hight)*2
area = width * hight
print("周长是%s,面积是%s" % (perimeter, area))

03. 变量交换练习,已知有两个变量:a = 10000, b = 20000, 让a和b交换绑定的对象:

01. 利用第三个变量的常规写法:
a = 10000
b = 20000
c = a
a = b
b = c
print(a, b)
02. Python中独有的写法:
a, b = b, a # 序列赋值(术语:解构/解包)
print(a, b)

04. 打印出以下小星星:

*
***
*****
*******
# 规律:1 3 5 7 -->每行小星星个数=x*2-1
01. while循环实现:
x = 1
while x <= 4:
res = "*"*((x*2)-1)
print(res.center(7)) # center字符居中 两边有自动填充字符
x += 1
02. for循环实现:
for i in range(1, 5):
res = "*"*((i*2)-1)
print(res.center(7))

05. 中国古代的秤是16两一斤,请问古代的216两是古代的几斤几两?写程序打印出结果:

print("古代的216两是: %d斤%d两" % (216//16, 216%16))

06. 从凌晨0:0:0 计时,到现在已经过了63320秒,请问现在是几时,几分,几秒,写程序打印出来:

t = 63320//3600
m = 63320%3600//60
s = 63320%3600%60
print("%d:%d:%d" % (t, m, s))

07. 将数字3.14用变量pi绑定,转换为整数用变量i绑定将 pi变量与i变量相减结果用变量f绑定:

# 01. 判断f 是否等于0.14
pi = 3.14
i = int(pi)
f = pi - i
print(f == 0.14)
# 02. 删除所有变量
del pi, i, f
help("__main__") # 查看当前作用域内变量

08. 写一个程序:

01. 假设1年只有365天,输入年数,打印这些年有多少个周:
year = input("请输入年份:")
print("%s有%s周" %(year, 365//7))
02. 分三次输入当前的小时,分钟,秒数,在终端打印此时间距离 0:0:0 过了多少秒:
time_t = int(input("时"))
time_m = int(input("分"))
time_s = int(input("秒"))
print("距离0:0:0过了%s秒" % (time_t*3600 + time_m*60 + time_s))

09. 输入一个正整数,判断这个数是奇数还是偶数,打印出结果:

i = int(input("正整数:"))
if i % 2 == 0:
print("是偶数")
else:
print("是奇数")

10. 写一个程序:

01. 输入一个季度 1~4,输出这个季度有哪儿几个月,如果输入不是1~4的整数,则提示用户您输错了:
quarter = int(input("季度:") or '0')
if quarter == 1:
print("1月,2月,3月")
elif quarter == 2:
print("4月,5月,6月")
elif quarter == 3:
print("7月,8月,9月")
elif quarter == 4:
print("10月,11月,12月")
else:
print("输入有误")
02. 输入一年中的月份(1~12) 输出这个月在哪儿个季度,如果输入的是其它的数,则提示您输入有错:
mouth = int(input("月份") or '0')
if mouth in [1, 2, 3]:
print("春季")
elif mouth in [4, 5, 6]:
print("夏季")
elif mouth in [7, 8, 9]:
print("秋季")
elif mouth in [10, 11, 12]:
print("冬季")
else:
print("输入有误")

11. 写一个程序:

01. 输入一个数,用if语句计算并打印这个数的绝对值(注:不允许使用abs函数):
i = int(input("输入数字"))
if i >= 0:
print(i)
else:
print(-i)
02. 输入一个数,用条件表达式计算并打印这个数的绝对值:
i = int(input("输入数字"))
j = i if i >= 0 else -i
print(j)

12. 北京出租车计价器:

'''
收费标准:
3公里以内收费13元
超出3公里以外,每公里基本单价2.3元/公里
空驶费: 超过15公里后,每公里加收 1.15元空驶费
要求:
输入公里数,打印出费用金额(以元为单位四舍五入,保留2位小数)
'''
kilometer = int(input("输入公里数:"))
if 3 < kilometer <= 15:
# round()四舍五入, 第二个参数保留小数位数
money = round(kilometer * 2.3, 2)
print(money)
elif kilometer > 15:
money = round(15 * 2.3 + (kilometer - 15) * (2.3 + 1.15), 2)
print(money)
elif 0 < kilometer <= 3:
money = 13
print(money)
else:
print("输入有误")

13. 输入一个学生的三科成绩:

1) 打印出最高分是多少分
2) 打印出最低分是多少分
a = int(input("成绩a:"))
b = int(input("成绩b:"))
c = int(input("成绩c:"))
if a > b:
a, b = b, a # python独有语法序列赋值(术语:解构/解包)
if b > c:
b, c = c, b
if a > b:
a, b = b, a
print("最高分时%d,最低分时%d" % (c, a))

14. 给出一个年份,判断是否为闰年并打印:

闰年规则:每四年一闰,每百年不闰,四百年又闰,例如2016年闰年,2100年非闰年,2400年闰年
方法一:
year = int(input("输入年份"))
# if条件表达式实现: 成立执行 if 真值表达式 else 不成立执行
print("是闰年" if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0) else "不是闰年")
方法二:
year = int(input("输入年份"))
if year % 4 == 0 and year % 100 != 0:
print("是闰年")
elif year % 400 == 0:
print("是闰年")
else:
print("不是闰年")

15. BMI指数(Body Mass Index) 又称身体质量指数:

"""
BMI 值计算公式:
BMI = 体重(公斤)/ 身高的平方(米)
例如:
一个69公斤的人,身高是173公分,则:
BMI = 69/1.73**2 = 23.05
标准表
BMI < 18.5 体重过轻
18.5 <= BMI < 24 正常范围
BMI > 24 体重过重
输入身高和体重,打印BMI值并打印体重状态
"""
height = int(input("身高:"))
weight = int(input("体重:"))
bmi = weight/(height**2)
# if条件表达式嵌套实现: 成立执行 if 真值表达式 else '成立执行 if 真值表达式 else 不成立执行'
print("体重过轻" if bmi < 18.5 else "体重过重" if bmi > 24 else "正常范围")

16. 写一个程序,打印一个高度为4行的矩型方框:

'''
要求.输入一个整数数字,此整数代表矩形的宽度
请输入矩形宽度: 10 请输入矩形宽度: 5
########## #####
# # # #
# # # #
########## #####
输出此矩型
'''
width = int(input("请输入矩形宽度:"))
t = '%' + str(width-1) + 's'
for i in range(1, 5):
# 等同于 display = '#'*width if i == 1 or i == 4 else '#' + ' '*(width-2) + '#'
display = '#'*width if i == 1 or i == 4 else '#' + t % '#'
print(display)

17. 输入一个字符串:

'''
1. 打印这个字符串的第一个字符
2. 打印这个字符串的最后一个字符
3. 如果此字符串的长度为偶数,打印一个 '|',如果长度为奇数,打印中间的字符
注:
求字符串长度的函数len(x)
'''
s1 = input("请输入一个字符串:")
print("第一个字符是%s,最后一个字符是%s" % (s1[0], s1[-1]))
print('|' if len(s1)%2 == 0 else s1[len(s1)//2])

18. 输入任意一个字符串,判断这个字符串是否是回文:

'''
回文示例:
上海自来水来自海上
ABCCBA
回文是指中心对称的文字
提示:
把输入的字符串反转后判断与原输入的字符串是否一致
如果一致既为回文
'''
s1 = input("请输入一个字符串:")
print('是回文' if s1 == s1[::-1] else '不是回文')

19. 输入一段字符串,如果是字符串,则把第一个字符的UNICODE编码值打印出来,如果是整数值(0~65535),打印这个编码所对应的字符:

s1 = input("请输入字符串或正整数:") or '0'
print(ord(s1[0]) if s1.isalpha is True else chr(int(s1)))

20. 输入三行文字,让这三行文字在一个方框内居中显示(请不要输入中文):

'''
请输入第1行: hello tarena!
请输入第2行: my name is weimingze.
请输入第3行: today is sunday!
显示如下:
+-----------------------+
| hello tarena! |
| my name is weimingze. |
| today is sunday! |
+-----------------------+
注:max() 函数可以输入多个参数,最终返回最大的一个
'''
line = 3
temp_list = list(input("请输入字符串%d" % (i + 1)) for i in range(line))
for i in range(temp_list.count('')): temp_list.remove('')
length = max(len(i) for i in temp_list)
for i in range(len(temp_list) + 2):
print('+' + '-'*length + '+') if i == 0 or i == len(temp_list) + 1 else \
print('| ' + temp_list[i-1].center(length) + ' |')

21. 输入一个字符串:

'''
1. 判断您输入的字符串的有几个字符'e'
2. 判断您输入的有几个空格
3. 判断您输入的字符串是否以问号'?'结尾
'''
s = input("请输入字符串:")
print("有%s个字符e" % s.count('e'))
print("有%s个空格" % s.count(' '))
print("字符串%s以?结尾" % s.endswith('?'))

22. 输入三行文字,让这三行文字依次以最长个字符的宽度右对齐输出:

'''
请输入第1行: hello world
请输入第2行: abcd
请输入第3行: a
打印结果:
hello world
abcd
a
'''
line = 3
temp_list = list(input("请输入文字%d:" % (i + 1)) for i in range(line))
for i in range(temp_list.count('')): temp_list.remove('')
length = max(len(i) for i in temp_list)
temp_str = "%" + str(length) + "s"
for i in range(len(temp_list)): print(temp_str % temp_list[i])

23. 写程序输入一个整数n,打印n以内的全部大于0的偶数(不包含n):

i = 1
j = int(input("请输入一个正整数:"))
while i < j:
if i % 2 == 0: print(i)
i += 1
24. 打印从零开始的浮点数, 每个数增加0.5,打印出10以内所有这样的数:
i = 0.5
while i < 10:
print(i, end= ' ')
i += 0.5

25. 打印1~20的整数,打印在一行显示,每个数字之间用一个空格分隔1 2 3 4 5 6 7 .... 18 19 20:

i = 1
while i <= 20:
print(i, end=' ')
i += 1
26. 打印1~20的整数,每行5个数,打印四行:
i = 1
while i <= 20:
if i in [6, 11, 16]:
print()
print("%d\t" % i,end=' ')
i += 1
27. 用while 语句打印 10~1之间的整数:
i = 10
while i >= 1:
print(i)
i -= 1

28. 用while语句实现打印三角形,输入一个整数,表示三角形的宽度和高度,打印出相应的三角形:

'''
请输入三角形宽度: 4
打印结果如下:
*
**
***
****
'''
width = int(input("请输入三角形宽度:"))
i = 1
while i <= width:
j = 1
while j <= i:
print('*', end='')
j += 1
print()
i += 1

29. 输入一个数,打印指定宽度的正方形:

'''
请输入:5
打印正方形如下:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
'''
width = int(input("请输入:"))
i = 1
while i <= width:
j = 1
while j <= width:
print(j, end=' ')
j +=1
print()
i += 1

30. 用while语句实现打印三角形,输入一个整数,表示三角形的宽度和高度,依次打印相应的三角形:

'''
* * **** ****
** ** *** ***
*** *** ** **
**** **** * *
'''
width = int(input("请输入:"))
i = 1
while i <= width:
print('*'*i)
i += 1

width = int(input("请输入:"))

i = 1
while i <= width:
print(' '*(width-i) + '*'*i)
i += 1

width = int(input("请输入:"))

i = width
while i >= 0:
print('*'*i)
i -= 1

width = int(input("请输入:"))

i = width
while i >= 0:
print(' '*(width-i) + '*'*i)
i -= 1

31. 输入一个开始的整数值用变量begin绑定,结束的整数值用变量end绑定:

'''
请输入开始值: 8
请输入结束值: 30
打印结果:5个数一行
8 9 10 11 12 ...... 28 29 30
'''
begin = int(input('请输入开始值:'))
end = int(input('请输入结束值:'))
count = 0
while begin < end:
print('%s\t' % begin, end=' ')
count += 1
if count % 5 == 0:
print()
begin += 1
32. 用while 循环生成如下字符串'AaBbCcDdEeFf.....XxYyZz' 并打印:
i = 65
while i < 91:
print(chr(i) + chr(i + 32), end='')
i += 1
33. 任意输入一行字符串,打印这个符串内有多少个空格' '(要求用for再用while语句,不能用S.count方法):
s = input("请输入一个字符串:")
count = 0
for i in s:
if i == ' ':
count += 1
print(count)

s = input("请输入一个字符串:")

count = 0
i = 0
while i < len(s):
if s[i] == ' ':
count += 1
i += 1
else:
print(count)

34. 用 for 循环嵌套打印如下矩形:(输入一个数n(10以内) 代表矩形的宽度和高度):

'''
请输入: 5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
'''
num = int(input("请输入:"))
for i in range(1,num+1):
for j in range(i,num+i):
print(j, end='')
print()

35. 写一个程序,求1 ~ 100之间所有不能被 5,7,11整除的数的和:

count = 0
for i in range(1, 101):
if i % 5 == 0 or i % 7 == 0 or i % 11 == 0:
continue
count += i
else:
print(count)

36. 输入一个Unicode的开始值和结束值 用变量begin和stop绑定,之间的所有对应的文字,生成字符串并打印:

begin = int(input("begin:"))
stop = int(input('stop:'))
temp_list = list(chr(i) for i in range(begin, stop+1))
for i in temp_list:
print(i, end='')

37. 输入一个整数(代表树干的高度),打印如下:

'''
*
***
*****
*
*
*
'''
height = int(input("height:"))
for i in range(1, height + 1):
print('%s' % ('*' * (i * 2 - 1)).center(2 * height - 1))
for i in range(height):
print('*'.center(height * 2 - 1))

38. 输入一个整数(代表树干的高度),打印如下:

'''
1
222
33333
*
*
*
'''
height = int(input("height:"))
for i in range(1, height + 1):
print('%s' % (str(i) * (2 * i - 1)).center(2 * height - 1))
for i in range(height):
print('*'.center(2 * height - 1))

39. 输入一个正整数,打印从0到这个数的素数(prime),素数也叫质数,是只能被1和自身整数的整数:

num = int(input('正整数:') or '0')
if num >= 2: print(2, end= ' ')
for i in range(2, num + 1):
for j in range(2, i):
if i % j == 0:
break
else:
if i - j == 1:
print(i, end=' ')

40. 写一个程序,让用户输入很多个正整数,当输入小于零的数时结束输入:

'''
1) 输出这些数的和
2) 输出这些数的最大的数和第二大的数
3) 删除最小的一个数
4) 按原来输入的顺序打印出乘余的这些数
'''
temp_list = list()
while True:
num = int(input("小于0退出:") or '-1')
if num < 0:
break
else:
temp_list.append(num)
print( '%d %d' % (sum(temp_list), max(temp_list)))
temp_list.remove(max(temp_list))
print(max(temp_list))
temp_list.remove(min(temp_list))
for i in temp_list:
print(i)

41. 求100以内有哪儿些整数与自身+1 的乘积 再对 11求余的结果等于8:

temp_list = [x for x in range(100) if (x + 1) * x % 11 == 8]
print(temp_list) 1 1 2 3 5

42. 计算20个百斐波那契数(fabonacci数) 存于列表中并打印(从第三个数起,后一个数是前两个数之和):

temp_list = [1, 1]
a = 1
b = 1
for i in range(18):
a, b = b, a + b
temp_list.append(b)
print(temp_list, sum(temp_list))

43. 算出100~999以内的水仙花数,水仙花数是指百位的3次方加上十位的3次方加上个位的3次方等于原数的数字:

nums = [x
for x in range(100, 1000) if int(str(x)[0])**3 + int(str(x)[1])**3 + int(str(x)[2])**3 == x
]
print(nums)

44. 任意输入一些大于零数,存于列表中L,当输入-1时结束输入:

'''
L = [1, 3, 5, 3, 7, 9, 3, 7, 6, 5]
1) 打印出这些数
2) 打印出这些数的和
3) 去掉列表L中重复第二次或之后出现的数,再次存到另一个列表L2中
L2 = [1, 3, 5, 7, 9, 6]
打印这些数
4) 打印L2列表中的数据的和
5) 将 L列表中,出现两次的数存到另一个列表L3中
L3 = [5, 7]
'''
L = list()
while True:
num = int(input("请输入大于零的整数:") or '0')
if num == 0:
continue
if num == -1:
break
L.append(num)
for i in L:
print(i, end=' ')
count = 0
for i in L:
count += i
print("L1求和", count, sep=":")
L2 = list()
for i in L:
if i not in L2: L2.append(i)
for i in L2:
print(i, end=' ')
print("L2求和:%s" % sum(L2))
L3 = list()
for i in L:
if L.count(i) == 2 and i not in L3:
L3.append(i)
print(L3)

45. 任意输入字符串,打印这个字符串是否代表星期几,如果不是以上字符打印"字典内没有相应的数据":

data= {
'0':'星期天',
'1':'星期一',
'2':'星期二',
'3':'星期三',
'4':'星期四',
'5':'星期五',
'6':'星期六'
}
while True:
num = input("请输入0-6查询:") or '-1'
if num in data:
print(data[num])
else:
print("字典内没有相应的数据")

46. 列表L=['coco', 'angels', 'cat', 'mouse']用推导式生成字典,字典的值为键的长度:

L=['coco', 'angels', 'cat', 'mouse']
dic = {x:len(x) for x in L}
print(dic)

47. L1 = [1001, 1002, 1003, 1004],L2 = ['Coco', 'Angels', 'Cat', 'Mouse'],L1做键L2做值生成字典:

L1 = [1001, 1002, 1003, 1004]
L2 = ['Coco', 'Angels', 'Cat', 'Mouse']
dic = {L1[x]:L2[x] for x in range(4)}
print(dic)

48. 输入一段字符串,打印所有输入过的字符串,但重复的只打印一次:

se = {x for x in input("请输入字符串:")}
print(se)

49. 输入一段字符串,打印出这个字符串中出现过的字符及出现过的次数,字典存储:

s = input("请输入字符串:") or '-1'
dic = dict()
for i in s:
dic[i] = s.count(i)
print(dic)

50. 一只小猴子摘了很多桃,第一天吃了全部桃子的一半又多吃了一个,到第十天只剩下一个请问第一天多少个桃:

# 1 4 10 (n+1)*2
num = 1
for i in range(9):
num = (num + 1) * 2
print(num)

51. 求4~5个完全数,并打印,1+2+3=6(6为完全数),1,2,3都为6的因数(能被一个数x整除的数为y,则y为x的因数):

num = 0
for i in range(1, 10000):
for j in range(1, i):
if i % j == 0:
num += j
if num == i:
print(i, end=' ')
num = 0

52. 任意输入一个数n代表三角形的高度,如输入4打印一下菱形:

'''
1
121
12321
1234321
12321
121
1
'''
height = int(input("请输入高度:") or '输入有误')
temp_str = str()
for i in range(1, height + 1): # 打印菱形上部分(行数字符数增长部分)
for j in range(1, i):
temp_str += str(j)
for x in range(i, 0, -1):
temp_str += str(x)
print(temp_str.center(height * 2 - 1))
temp_str = ''
for i in range(height - 1, 0, -1): # 打印菱形下部分(行数字符数减少部分)
for j in range(1, i):
temp_str += str(j)
for x in range(i, 0, -1):
temp_str += str(x)
print(temp_str.center(height * 2 - 1))
temp_str = ''
53. 用for和while分别实现打印九九乘法表:
for i in range(1, 10):
for j in range(1, i+1):
print("%d*%d=%d" % (i, j, i*j), end="\t")
print()
i = 1
while i <= 9:
j = 1
while j <= i:
print('%d*%d=%d' % (i, j, i*j), end='\t')
j += 1
print()
i += 1
54. 有文件t1.txt里面的内容为:
'''
1,alex,22,13651054608,IT
2,wusir,23,13304320533,Tearcher
3,taibai,18,1333235322,IT
利用文件操作,将其构造成如下数据类型。
[{'id':'1','name':'alex','age':'22','phone':'13651054608', 'job':'IT'},......]
'''
result = []
with open("t1.txt", encoding="UTF-8") as f:
# 读取每一行数据
for line in f:
dic = {}
lst = line.split(",")
dic["id"] = lst[0].strip()
dic['name'] = lst[1].strip()
dic['age'] = lst[2].strip()
dic['phone'] = lst[3].strip()
dic['job'] = lst[4].strip()
result.append(dic)
print(result)

转载于:https://www.cnblogs.com/tangxuecheng/p/11216276.html

你可能感兴趣的文章
UVA 11137 - Ingenuous Cubrency
查看>>
js阻止事件冒泡的两种方法
查看>>
Java异常抛出
查看>>
CGRect知多少
查看>>
Android 开发环境安装配置手册
查看>>
Qt工程文件说明
查看>>
[SQL Server 系] T-SQL数据库的创建与修改
查看>>
WIN7下搭建CORDOVA环境
查看>>
74HC164应用
查看>>
变量声明和定义的关系
查看>>
300 多个免费网站和应用资源
查看>>
Oracle数据库备份还原工具之Expdp/IMPdp
查看>>
【来龙去脉系列】什么是区块链?
查看>>
Wpf 之Canvas介绍
查看>>
Java工程师学习指南 入门篇
查看>>
linux history
查看>>
rpm软件包类型
查看>>
除去内容中的空格与换行
查看>>
jQuery on(),live(),trigger()
查看>>
卡尔曼滤波的原理说明
查看>>