Python基础语法习题

1、~12为什么是-13?
解1:12 二进制:0000 1100
补码: 0000 1100
按位取反 :1111 0011
求这个原码,即负数求补码的逆过程:先减1,再取反 (符号位不变)
-1 1111 0010
取反 1111 1101 还原成十进制-13

2、10^9等于?10^-9等于?
解:(1)10^9
10的二进制:0000 1010
9的二进制: 0000 1001
异或(同为1,异为0)结果:
0000 0011 为十进制3

(2)10^-9
10的二进制补码:0000 1010
-9的二进制为其补码:
1000 1001
取反 1000 0110
加1 1000 0111 此即补码
异或:0000 1001
1000 0111
结果:1000 1110 然后求其原码
减1 :1000 1101
取反: 1000 0010 即十进制-2

3、输入两个数字,输出最大数
解答: a = int(input(‘请输入数字1:’))
b = int(input(‘请输入数字2:’))
print(a,b)
if a>=b:
print(a)
else:
print(b)

4、给定一个不超过5位的正整数,判断其有几位
(使用input函数)
解:
a = int(input(‘请输入不超过五位数的正整数:’))
print(a)
if a > 999:
if a > 9999:
print(‘位数是5’)
else:
print(‘位数是4’)
elif a > 9:
if a > 99:
print(‘位数是3’)
else:
print(‘位数是2’)
else:
print(‘位数是1’)

5、计算10以内的偶数(for循环)
解答:
(1) for i in range(0,10,2):
print(i)

(2) for i in range(10):
if i & 0b1:
continue
print(i)

6、计算1000以内的被7整除的前20个数(for循环)
解答:
count = 0
for i in range(0,1000,7):
print(i)
count += 1
if count >= 20:
break

7、给定一个不超过5位的正整数,判断该数的位数,依次打印出个位、十位、百位、千位、万位的数字。或者,依次打印出万位到个位的数字。
解答:
val = int(input(‘Please input a int > 0 & < 100000:>>>’))
print(val)
#查看位数
if val >= 1000:
if val >= 10000:
num = 5
else:
num = 4
else:
if val >= 100:
num = 3
elif val >= 10:
num = 2
else:
num = 1
print(num)
#打印个位、十位、百位、千位、万位
a = 1
while a:
a = val % 10
print(a)
val //= 10
if val < 1:
break
# 另一种方法
for i in range(num):
n = val // 10
print(val – n*10)
val = n
#倒序打印
for j in range(num,0,-1):
b = val // 10**(j-1)
print(b)
val = val – b*10**(j-1)
#另一种方法
pre = 0
for j in range(num,0,-1):
c = val // 10**(j-1)
print(c – pre*10)
pre = c

8、打印一个边长为n的正方形
解答:
n = int(input(‘Please input the length of square: ‘))
for i in range(1,n+1):
if i == 1 or i == n:
print(‘*’*n)
else:
print(‘*’+’ ‘*(n-2)+’*’)

9、求100内所有奇数的和
解答:
sum = 0
for i in range(1,100,2):
sum += i
print(sum)

10、判断学生成绩,成绩等级A~E。其中,90分以上为A,80~89分为B,70~79为C,60~69为D,60分以下为E。
解答:
score = float(input(‘Please input the score: ‘))
if score >= 80:
if score >= 90:
level = ‘A’
else:
level = ‘B’
elif score >= 70:
level = ‘C’
elif score >= 60:
level = ‘D’
else:
level = ‘E’
print(level)

11、求1到5阶乘之和
解答:
n = int(input())
sum = 0
for i in range(1,n+1):
a = 1
for j in range(1,i+1):
a *= j
sum += a
print(sum)

12、给一个数,判断它是否是素数(质数:一个大于1的自然数只能被1和它本身整除)
解答:
#方法1,数n本身与2到(n-1)整除
num = int(input(‘请输入大于1的数’))
i = int()
for i in range(2,num):
if num%i == 0:
print(‘这不是一个素数’)
break
else:
print(‘这是一个素数’)
#方法2,优化范围(1,sqrt(n)),平方根两边只用检查一遍
flag = False
for i in range(2,int(n**0.5)+1):
if n % i == 0:
print(n,’is not a prime number’)
break
else:
print(n,’is a prime number’)
#方法3,

13、打印九九乘法表
解答:
for i in range(1,10):
for j in range(1,i+1):
product = i*j
if j > 1 and j * i < 10:
product = str(product) + ‘ ‘
else:
product = str(product)
print( ‘{}*{}={}’.format(j,i,product),end=’ ‘)
print()

14、打印下图菱形

解答: 下面代码输入7即可
n = int(input())
e = n // 2
for i in range(-e,e+1):
print(‘ ‘*abs(i)+”*”*(n-2*abs(i)))

15、打印100以内的斐波那契数列
解答:
print(0)
print(1)
a = 0
b = 1
while True:
c = a + b
if c > 100: break
a = b
b = c
print(c)

16、求斐波那契数列第101项
解答:
a = 0
b = 1
for i in range(2,102):
c = a + b
a = b
b = c
print(b)

17、求10万内的所有素数
解答:
方法1:
count = 1
for x in range(3,100000,2):
if x > 10 and x // 10 == 5:
continue
for i in range(3,int(x**0.5)+1,2):
if x % i == 0:
break
else:
count +=1
print(x)

方法2:考虑下计数,引入时间
import datetime
start = datetime.datetime.now()
count = 0
sum = 0
for i in range(3,100000,2):
for j in range(3,int(i**0.5+1),2):
sum += 1
if not i % j:
break
else:
count += 1
print(count)
print(sum)
delta = (datetime.datetime.now()-start).total_seconds()
print(delta)

18、给一个半径,求圆的面积和周长。圆周率3.14
解答:
r = int(input(‘r=’))
print(‘area=’+str(3.14*r*r))
print(‘circumference=’+str(2*3.14*r))

19、输入两个数字,比较大小后,从小到大升序打印
解答:
a = input(‘first: ‘)
b = input(‘second: ‘)
if a > b:
print(b,a)
else:
print(a,b)
#采用三元表达式
a = input(‘first: ‘)
b = input(‘second: ‘)
print(b,a) if a > b else print(a,b)

20、获取最大值,请输入若干个整数,打印出最大值
解答:
#以空输入结束循环
n = int(input(‘Input first number:’))
while True:
m = input(‘Input second number:’)
if m:
m = int(m)
if m > n:
n = m
print(‘Max is’, n)
else:
break

21、输入若干个数,求每次输入后的算数平均数
解答:
n = 0
sum = 0
while True:
a = input(‘>>’)
if a == ‘quit’:
break
n +=1
sum += int(a)
print(‘arithmetic average is ‘,sum / n)

22、解决猴子吃桃问题
若干个桃子,第一天吃掉一半零一个,每天如此,第10天只剩1个,问总共有多少桃子?
解答:
n = 1
for i in range(2,11):
b = 2 * (n + 1)
n = b
print(n)
print(‘———————-‘)
n = 1534
for i in range(2,11):
b = n/2 – 1
n = b
print(int(n))

23、使用右对齐打印九九乘法表

解答:
for i in range(1,10):
s = ”
for j in range(i,10):
s += ‘{}*{}={:<{}} ‘.format(i,j,i*j,2 if j < 4 else 3)
print(‘{:>70}’.format(s))

24、打印对顶三角形

解答:
n = int(input(‘Input the number:’))
e = n // 2
for i in range(-e,e+1):
print(‘ ‘*(e-abs(i))+’*’*(2*abs(i)+1))

25、打印闪电

解答:
n = 7
for i in range(-3,4):
if i < 0:
print(“{:>4}”.format(‘*’*(4+i)))
elif i == 0:
print(‘*’*7)
else:
print(” ” * 3 + “*” *(4-i))

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92858

(1)
JacoJaco
上一篇 2018-03-24 17:56
下一篇 2018-03-25 10:16

相关推荐

  • lamp简介

    lamp 构建一个有着动态服务器端技术的网站 LAMP基础 1)开源领域LAMP组成: L:Linux;A:apache (httpd);M:mysql, mariadb;P:php, perl, python httpd:接收用户的web请求;静态资源则直接响应;动态资源为php脚本交由php来运行; php:运行p…

    Linux干货 2016-11-07
  • Mysql 多表联合查询效率分析及优化

    1. 多表连接类型 1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用','  如:  SELECT * FROM table1 CROSS JOIN table2  &nb…

    Linux干货 2015-04-13
  • 三步走进行IP大揭秘

    跟随博主三步走进行IP大揭秘! 一、IP简介 1.ip地址:可以分为合法ip地址(公网ip地址)和私有ip地址, 合法ip地址主要应用于internet上的主机访问,而私有ip地址应用于局域网中计算机的相互通信。 2.ip地址的表示形式:分为二进制表示和点分十进制表示。 一般使用点分十进制表示,现在通常使用的ip地址长度均为32位,由四个八位域组成,可称为八…

    2017-09-02
  • Liunx权限的管理

    一、权限 获取某种资源的能力。对于Liunx而言,一切皆文件。所以,对于Liunx的权限定义,也就是定义文件被不同用户访问能力的过程。 权限分为三种:r、w、x 文件 r:查看文件内容 w:修改文件内容 x:可以将文件启动运行 目录 r:可以使用ls命令查看目录中的文件名 w:可以在目录中创建或删除文件(能否删除文件,取决于用户对目录的写权限 x:可以cd到…

    Linux干货 2015-04-03
  • 2016-10-17作业

    1 生产环境发现一台服务器系统时间产生偏差,造成服务异常,请帮忙校正。 答:hwclock -s 2 生产有一个数据同步脚本需要执行很长时间,怎样做到无人值守,在管理工具退出的情况下,脚本依然能正常运行。 答:screen -S work  进去后开始做工作,暂时离开时可使用 ctrl+a,d 剥离当前会话。 3 Linux系统中命令共分为内建命令…

    Linux干货 2016-10-18
  • zabbix报警信息提取

    zabbix报警信息提取     在日常的监控中,我们除了日常的zabbix操作外,我们有的时候还涉及到与其他公司进行数据对接。由于别的公司的数据对接很多时候并不是按照zabbix的数据结构(尤其是大型厂家,或是专业监控厂家,并不会直接使用zabbix,多数是自己开发或是对其他监控软件进行二次开发之类),在这种需求基础…

    Linux干货 2015-12-19