运行.py文件
运行环境:Mac
软件:IDLE
方法/步骤
直接使用IDLE
可以直接在IDLE shell中编写python代码,但是不建议
- 使用 IDLE shell,利用菜单栏open -> 打开.py 文件
- 打开.py文件,选中.py文件,直接点击F5 || 运用菜单栏 Run -> Run Module
使用Sublime Text
- 使用 IDLE shell,利用菜单栏open -> 打开.py 文件
- 打开.py文件,选中.py文件,直接点击F5 || 运用菜单栏 Run -> Run Module
你可以直接在Sublime Text 编写代码,直接选中.py文件,直接点击F5,可以不用关心打开的.py文件的内容
终端执行python脚本 (for Mac)
- cd 到文件夹目录
- 在文件首行添加#!/usr/bin/env python
- 添加权限 chmod 777 filename.py
- 执行脚本./filename.py
注意: input() 在终端输入字符串时需要用'adfjakd'或"adfad"格式
Mac 自带Python
在系统10.13.4 下,python版本为2.7.10
- 在终端直接输入python,终端会直接输出Mac自带Python版本信息,同时进入python 编辑模式,>>>
输入exit() 推出Python编辑模式 - 在终端输入IDLE,打开 Python IDLE软件 Python shell编辑器
编辑器
# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : sjw
#### output Hello World!
print('Hello World')
number sum
num1 = input('input first number:')
num2 = input('input second number:')
sum = float(num1) + float(num2)
print('num {0} add {1} = sum {2}'.format(num1, num2, sum))
print('sum of two numbers is %.1f' %(float(input(' first number:'))+float(input('second :'))))
get num sqrt
num = float(input('num sqrt number:'))
num_sqrt = num ** 0.5
print('%0.3f sqrt is %0.3f'%(num, num_sqrt))
import cmath
num = int(input('input number:'))
num_sqrt = cmath.sqrt(num)
print('{0} sqrt num:{1:0.3f}+{2:0.3f}j'.format(num, num_sqrt.real, num_sqrt.imag))
ax**2 + bx + c = 0
import cmath
a = float(input('a:'))
b = float(input('b:'))
c = float(input('c:'))
d = (b**2)-(4*a*c)
sol1 = (-b-cmath.sqrt(d))/(2*a)
sol2 = (-b+cmath.sqrt(d))/(2*a)
print('sol:{0} and {1}'.format(sol1,sol2))
triangle area
a = float(input('a:'))
b = float(input('b:'))
c = float(input('c:'))
s = (a+b+c)/2
area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
print('triangle area:%.2f' %area)
random
import random
print(random.randint(0,9))
temperature
celsius = float(input('celsius:'))
fahrenheit = (celsius * 1.8) + 32
print('celsius:%0.1f to fahreneit:%0.1f'%(celsius, fahrenheit))
change a and b
x = input('x:')
y = input('y:')
temp = x
x = y
y = temp
print('x:{0} y:{1}'.format(x, y))
x, y = y, x
print('x:{0} y:{1}'.format(x, y))
if elif else
num = float(input('number:'))
if num > 0:
print("num is 整数")
elif num == 0:
print('num is 0')
else :
print('num is 负数')
num = float(input('输入数字:'))
if num >= 0:
if num > 0:
print('num is 正数')
else:
print('num is 0')
else:
print('num is 负数')
判断字符字符串还是数字
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('sdjf'))
print(is_number(-32.9))
判断奇数偶数
num = input('输入数字:')
if (num%2) == 0:
print('{0} 是偶数'.format(num))
else:
print('{0} 是奇数'.format(num))
判断闰年
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))
获取最大值函数
# 最简单的
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))
质数判断
# 用户输入数字
num = int(input("请输入一个数字: "))
# 质数大于 1
if num > 1:
# 查看因子
for i in range(2,num):
if (num % i) == 0:
print(num,"不是质数")
print(i,"乘于",num//i,"是",num)
break
else:
print(num,"是质数")
# 如果输入的数字小于或等于 1,不是质数
else:
print(num,"不是质数")
输出指定范围内的素数
#!/usr/bin/python3
# 输出指定范围内的素数
# take input from the user
lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))
for num in range(lower,upper + 1):
# 素数大于 1
if num > 1:
for i in range(2,num):
if (num % i) == 0:
break
else:
print(num)
阶乘实例
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))
九九乘法表
for i in range(1,10):
for j in range(1,i):
print('{}x{}={}\t'.format(i, j, i*j))
print()
斐波那契数列
nterms = int(input('你需要几项'))
n1 = 0
n2 = 1
count = 2
if nterms <= 0:
print('输入一个整数')
elif nterms == 1:
print('斐波那契数列:')
print(n1)
else:
print("斐波那契数列:")
print(n1, ',', n2, end=",")
while count < nterms:
nth = n1 + n2
print(nth, end=",")
n1 = n2
n2 = nth
count += 1
阿姆斯特朗数
# 获取用户输入的数字
num = int(input("请输入一个数字: "))
# 初始化变量 sum
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,"不是阿姆斯特朗数")
获取指定期间内的阿姆斯特朗数
# Filename :test.py
# author by : www.runoob.com
# 获取用户输入数字
lower = int(input("最小值: "))
upper = int(input("最大值: "))
for num in range(lower,upper + 1):
# 初始化 sum
sum = 0
# 指数
n = len(str(num))
# 检测
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
if num == sum:
print(num)
十进制转二进制、八进制、十六进制
dec = int(input("输入数字:"))
print('十进制为:',dec)
print("二进制为:",bin(dec))
print("八进制为:",oct(dec))
print("十六进制为:",hex(dec))
ASCII码与字符相互转换
c = input('请输入一个字符:')
print(c + '的ASCII码为', ord(c))
a = int(input('请输入一个ASCII码:'))
print(a ,'对应的字符为', chr(a))
最大公约数算法
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))
最小公倍数算法
# 定义函数
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))
简单计算器实现
# 定义函数
def add(x, y):
"""相加"""
return x + y
def subtract(x, y):
"""相减"""
return x - y
def multiply(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,"=", subtract(num1,num2))
elif choice == '3':
print(num1,"*",num2,"=", multiply(num1,num2))
elif choice == '4':
print(num1,"/",num2,"=", divide(num1,num2))
else:
print("非法输入")
Python 生成日历
import calendar
yy = int(input("输入年份:"))
mm = int(input('输入月份:'))
print(calendar.month(yy,mm))
使用递归斐波那契数列
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))
文件 IO
##encoding='utf8'
# 写文件
with open("test.txt", "wt",encoding='utf8') as out_file:
out_file.write("kajdfkjadkfjkladjfka")
s = "该文本会写入到文件中\n看到我了吧!"
out_file.write(s)
# Read a file
with open("test.txt", "rt",encoding='utf8') as in_file:
text = in_file.read()
print(text)
字符串判断
str = "测试"
print(str.isalnum()) # 判断所有字符都是数字或者字母
print(str.isalpha()) # 判断所有字符都是字母
print(str.isdigit()) # 判断所有字符都是数字
print(str.islower()) # 判断所有字符都是小写
print(str.isupper()) # 判断所有字符都是大写
print(str.istitle()) # 判断所有单词都是首字母大写,像标题
print(str.isspace()) # 判断所有字符都是空白字符、\t、\n、\r
字符串大小写转换
str = "qwertyuiop"
print(str.upper()) # 把所有字符中的小写字母转换成大写字母
print(str.lower()) # 把所有字符中的大写字母转换成小写字母
print(str.capitalize()) # 把第一个字母转化为大写字母,其余小写
print(str.title()) # 把每个单词的第一个字母转化为大写,其余小写
计算每个月天数
import calendar
monthRange = calendar.monthrange(2016,9)
print(monthRange)
获取昨天日期
# 引入 datetime 模块
import datetime
def getYesterday():
today=datetime.date.today()
oneday=datetime.timedelta(days=1)
yesterday=today-oneday
return yesterday
# 输出
print(getYesterday())