ex1.
#!/usr/bin/env Python3
##ex1._01helloworld.py
print("hello world")
ex2.
#!/usr/bin/env Python3
##ex2. _02Sum.py
#用户输入
num1 = input('输入第一个数字')
num2 = input('输入第二个数字')
#求和
sum = float(num1) + float(num2)
#显示计算结果
print('数字 {0} 和 {1} 相加结果为:{2}'.format(num1, num2, sum))
ex3.
#!/usr/bin/env Python3
##ex3. _03Sqrt.py
import cmath
num = float(input('请输入一个数字:'))
num_sqrt = num ** 0.5
print('%0.3f的平方根为 %0.3f' %(num, num_sqrt))
#计算负数
num = int(input("请输入一个数字:"))
num_sqrt = cmath.sqrt(num)
print('{0}的平方根为{1:0.3f} + {2:0.3f}j'.format(num,
num_sqrt.real,
num_sqrt.imag))
ex4.
#!/usr/bin/env Python3
##ex4. _04RootCalc.py
import cmath
a = float(input('输入a:'))
b = float(input('输入b:'))
c = float(input('输入c:'))
#计算
d = (b ** 2) - (4 * a * c)
mol1 = (-b + cmath.sqrt(d)) / (2 * a)
mol2 = (-b + cmath.sqrt(d)) / (2 * a)
print('结果为{0} 和 {1}'.format(mol1, mol2))
ex5.
#!/usr/bin/env Python3
##ex5. _05TrangleArea.py
a = float(input('请输入三角形第一边长:'))
b = float(input('请输入三角形第二边长:'))
c = float(input('请输入三角形第三边长:'))
s = (a + b + c) / 2
area = (s * (s - a) * (s - b) * (s -c)) ** 0.5
print('三角形面积为%0.2f' %area)
ex6.
#!/usr/bin/env Python3
##ex6. _06RandNum.py
import random
print(random.randint(0, 9))
ex7.
#!/usr/bin/env Python3
##ex7. _07SwitchTemperature.py
celsius = float(input('输入设施温度:'))
fahrenheit = (celsius * 1.8) + 32
print('%0.1f 摄氏度转华氏度为 %0.1f' %(celsius, fahrenheit))
ex8.
#!/usr/bin/env Python3
##ex8. _08SwapVal.py
x = input('输入 x 值:')
y = input('输入 y 值:')
temp = x
x = y
y = temp
print('交换后 x 的值为:{}'.format(x))
print('交换后 x 的值为:{}'.format(y))
#不使用临时变量
x = input('输入 x 值:')
y = input('输入 y 值:')
x, y = y, x
print('交换后 x 的值为:{}'.format(x))
print('交换后 x 的值为:{}'.format(y))
#!/usr/bin/env Python3
##ex9. _09IfDemo.py
num = float(input("输入一个数字:"))
if num > 0:
print("正数")
elif num == 0:
print("零")
else:
print("负数")
num = float(input("输入一个数字:"))
if num >= 0:
if num == 0:
print("零")
else:
print("正数")
else :
print("负数")
ex10.
#!/usr/bin/env Python3
##ex10. _10IsNum.py
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
print(is_number('foo'))
print(is_number('1'))
print(is_number('1.3'))
print(is_number('-1.37'))
print(is_number('1e3'))
print(is_number('foo'))
##isdiqit()方法检测字符串是否只由数字组成
##isnumeric()方法检测字符串是否只由数字组成,这种只针对unicode对象
ex11.
#!/usr/bin/env Python3
##ex11. _11IsNumTwo.py
num = int(input("请输入一个数字:"))
if (num % 2) == 0:
print("{0} 是偶数".format(num))
else:
print("{0} 是奇数".format(num))
ex12.
#!/usr/bin/env Python3
##ex12. _12IsYear.py
year = int(input("输入一个年份:"))
if (year % 4) == 0:
if(year % 100) == 0:
if(year % 400) == 0:
print("{0}是润年:".format(year))
else:
print("{0}不是润年:".format(year))
else:
print("{0}是润年:".format(year))
else:
print("{0}不是润年:".format(year))
ex13.
#!/usr/bin/env Python3
##ex13. _13GetMax.py
print(max(1, 2))
print(max('a', 'b'))
print(max([1, 2]))
print(max((1, 2)))
print("80, 100, 1000最大值为:", max(80, 100, 1000))
print("-20, 100, 400最大值为:", max(-20, 100, 400))
print("-80, -20, -10最大值为:", max(-80, -20, -10))
print("0, 100, -400最大值为:", max(0, 100, -400))
ex14.
#!/usr/bin/env Python3
##ex14. _14Prime.py
##循环语句可以有 else 子句,
##它在穷尽列表(以for循环)或条件变为 false
##(以while循环)导致循环终止时被执行,
##但循环被break终止时不执行。
num = int(input("请输入一个数字:"))
if num > 1:
for i in range(2, num):
if (num % i) == 0:
print(num, "不是质数")
print(i, "乘与", num // i, "是", num)
break
else:
print(num, "是质数")
else:
print(num, "不是质数")
ex15.
#!/usr/bin/Python3
##ex15. _15PrimePrint.py
lower = int(input("输入区间最小值:"))
upper = int(input("输入区间最大值:"))
for num in range(lower, upper + 1):
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
ex16.
#!/usr/bin/python3
##ex16. _16Factorial.py
num = int(input("请输入一个数字"))
factorial = 1
if num < 0:
print("抱歉,负数没有阶乘")
elif num == 0:
print("0 的阶乘为1")
else:
for i in range(1, num + 1):
factorial = factorial * i
print("%d 的阶乘为 %d" %(num, factorial))
ex17.
#!/usr/bin/ python3
##ex17. _17NineNine.py
for i in range(1, 10):
for j in range(1, i + 1):
print('{} x {} = {} \t'.format(i, j, i * j), end='')
print()
##通过指定end参数的值,可以取消在末尾输出回车符,实现不换行
ex18.
#!/usr/bin/python3
##ex18. _18FebNumList.py
nterms = int(input("你需要几项"))
n1 = 0
n2 = 1
count = 2
if nterms <= 0:
print("请输入一个正数")
elif nterms == 1:
print("斐波那契数列:")
print(n1)
else:
print("斐波那契数列:")
print(n1, ",", n1, end=" , ")
while count < nterms:
nth = n1 + n2
print(nth, end=" , ")
n1 = n2
n2 = nth
count += 1
ex19.
#!/usr/bin/python3
##ex19. _19AmstlNum.py
##如果一个n位正整数等于其各位数字的n次方之和,
##则称该数为阿姆斯特朗数
num = int(input("请输入一个数字:"))
sum = 0
n = len(str(num))
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
if num == sum:
print(num, "是阿姆斯特朗数")
else:
print(num, "不是阿姆斯特朗数")
ex20.
#!/usr/bin/python3
##ex20. _20DecToBinOctHex.py
dec = int(input("输入数字:"))
print("十进制数:", dec)
print("转二进制数:", bin(dec))
print("转八进制数:", oct(dec))
print("转十六进制数:", hex(dec))
ex21.
#!/usr/bin/python3
##ex21. _21ASCIIToChar.py
c = input("请输入一个字符:")
a = int(input("请输入一个Ascii码:"))
print(c + "的ascii 码为", ord(c))
print(a, "的字符为", chr(a))
ex22.
#!/usr/bin/python3
##ex22. _22BigNum.py
def hcf(x, y):
if x > y:
smaller = y
else:
smaller = x
for i in range(1, smaller + 1):
if ((x % i == 0) and (y % i == 0)):
hcf = i
return hcf
num1 = int(input("输入第一个数字:"))
num2 = int(input("输入第二个数字:"))
print(num1, "和", num2, "的最大公约数为", hcf(num1, num2))
ex23.
#!/usr/bin/python3
##ex23. _23MinNum.py
def lcm(x, y):
if x > y:
greater = x
else:
greater = y
while (True):
if((greater % x == 0) and (greater % y == 0)):
lcm = greater
break
greater += 1
return lcm
num1 = int(input("输入第一个数字"))
num2 = int(input("输入第二个数字"))
print(num1, "和", num2, "的最小公倍数为", lcm(num1, num2))
ex24.
#!/usr/bin/python3
##ex24. _24Calc.py
def add(x, y):
return x + y
def substract(x, y):
return x - y
def miltiply(x, y):
return x * y
def divide(x, y):
return x / y
print("选择运算:")
print("1.相加:")
print("2.相减:")
print("3.相乘:")
print("4.相除:")
choice = input("输入你的选择1,2,3,4:")
num1 = int(input("输入第一个数字:"))
num2 = int(input("输入第二个数字:"))
if choice == '1':
print(num1, "+", num2, "=", add(num1, num2))
elif choice == '2':
print(num1, "-", num2, "=", substract(num1, num2))
elif choice == '3':
print(num1, "*", num2, "=", miltiply(num1, num2))
elif choice == '4':
print(num1, "/", num2, "=", divide(num1, num2))
else:
print("非法输入")
ex25.
#!/usr/bin/python3
##ex25. _25Date.py
import calendar
yy = int(input("输入年份:"))
mm = int(input("输入月份:"))
print(calendar.month(yy, mm))
ex26.
#!/usr/bin/python3
##ex26. _26FebNum.py
def recur_fibo(n):
if n <= 1:
return n
else:
return (recur_fibo(n - 1) + recur_fibo(n - 2))
nterms = int(input("您要输出几项?"))
if nterms <= 0:
print("输入正数")
else:
print("斐波那契数列:")
for i in range(nterms):
print(recur_fibo(i))
ex27.
#!/usr/bin/python3
##ex27. _27FIleRW.py
with open("test.txt", "wt") as out_file:
out_file.write("写入文本")
with open("test.txt", "rt") as in_file:
text = in_file.read()
print(text)
ex28.
#!/usr/bin/python3
##ex28. _28StringTest.py
print("测试一")
str = "y0n"
# 判断所有字符都是数字或者字母
print(str.isalnum())
# 判断所有字符都是字母
print(str.isalpha())
# 判断所有字符都是数字
print(str.isdigit())
# 判断所有字符都是小写
print(str.islower())
# 判断所有字符都是大写
print(str.isupper())
# 判断所有单词都是首字母大写,像标题
print(str.istitle())
# 判断所有字符都是空白字符、\t、\n、\r
print(str.isspace())
print("------------------")
print("测试二")
str = "stringTest"
# 判断所有字符都是数字或者字母
print(str.isalnum())
# 判断所有字符都是字母
print(str.isalpha())
# 判断所有字符都是数字
print(str.isdigit())
# 判断所有字符都是小写
print(str.islower())
# 判断所有字符都是大写
print(str.isupper())
# 判断所有单词都是首字母大写,像标题
print(str.istitle())
# 判断所有字符都是空白字符、\t、\n、\r
print(str.isspace())
ex29.
#!/usr/bin/python3
##ex29. _29UpToLow.py
str = "y0n"
# 把所有字符中的小写字母转换成大写字母
print(str.upper())
# 把所有字符中的大写字母转换成小写字母
print(str.lower())
# 把第一个字母转化为大写字母,其余小写
print(str.capitalize())
# 把每个单词的第一个字母转化为大写,其余小写
print(str.title())
ex30.
#!/usr/bin/python3
##ex30. _30CalcDayOfMomth.py
import calendar
monthRange = calendar.monthrange(2016, 9)
print(monthRange)
##输出的是一个元组,
# 第一个元素是所查月份的第一天对应的是星期几(0-6),
# 第二个元素是这个月的天数。
# 以上实例输出的意思为 2016 年 9 月份的第一天是星期四,
# 该月总共有 30 天。
ex31.
#!/usr/bin/python3
##ex31. _31GetYesterday.py
import datetime
def getYesterday():
today = datetime.date.today()
oneday = datetime.timedelta(days=1)
yesterday = today - oneday
return yesterday
print(getYesterday())
ex32.
#!/usr/bin/python3
##ex32. _32ListOperator.py
li = ["a", "b", "mpilgrim", "z", "example"]
print(li)
print(li[1])
print(li[-1])
print(li[-3])
print(li[1:3])
print(li[1:-1])
print(li[0:3])
li.append("new")
print(li)
li.insert(2, "new")
print(li)
li.extend(["two", "elements"])
print(li)
print(li.index("example"))
print(li.index("new"))
print("c" in li)
li.remove("z")
print(li)
li = li + ["sss", 'sd']
print(li)
'''
7.使用join链接list成为字符串
>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> ["%s=%s" % (k, v) for k, v in params.items()]
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> ";".join(["%s=%s" % (k, v) for k, v in params.items()])
'server=mpilgrim;uid=sa;database=master;pwd=secret'
join 只能用于元素是字符串的 list; 它不进行任何的类型强制转换。
连接一个存在一个或多个非字符串元素的 list 将引发一个异常。
8.list 分割字符串
>>> li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s = ";".join(li)
>>> s
'server=mpilgrim;uid=sa;database=master;pwd=secret'
>>> s.split(";")
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s.split(";", 1)
['server=mpilgrim', 'uid=sa;database=master;pwd=secret']
split 与 join 正好相反, 它将一个字符串分割成多元素 list。
注意, 分隔符 (";") 被完全去掉了, 它没有在返回的 list 中的任意元素中出现。
split 接受一个可选的第二个参数, 它是要分割的次数。
9.list 的映射解析
>>> li = [1, 9, 8, 4]
>>> [elem*2 for elem in li]
[2, 18, 16, 8]
>>> li
[1, 9, 8, 4]
>>> li = [elem*2 for elem in li]
>>> li
[2, 18, 16, 8]
10.dictionary中的解析
>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> params.keys()
['server', 'uid', 'database', 'pwd']
>>> params.values()
['mpilgrim', 'sa', 'master', 'secret']
>>> params.items()
[('server', 'mpilgrim'), ('uid', 'sa'), ('database', 'master'), ('pwd', 'secret')]
>>> [k for k, v in params.items()]
['server', 'uid', 'database', 'pwd']
>>> [v for k, v in params.items()]
['mpilgrim', 'sa', 'master', 'secret']
>>> ["%s=%s" % (k, v) for k, v in params.items()]
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
11.list 过滤
>>> li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"]
>>> [elem for elem in li if len(elem) > 1]
['mpilgrim', 'foo']
>>> [elem for elem in li if elem != "b"]
['a', 'mpilgrim', 'foo', 'c', 'd', 'd']
>>> [elem for elem in li if li.count(elem) == 1]
['a', 'mpilgrim', 'foo', 'c']
'''